Frameworks
Svelte
Svelte 4 and 5
terminalbash
bun add @iconical/presencekitUse the SDK's readable stores in .svelte components.
One person
Presence.sveltesvelte
<script lang="ts">
import { createPresenceStore } from "@iconical/presencekit/svelte";
const presence = createPresenceStore({
userId: "123456789012345678",
transport: "auto",
});
</script>
{#if $presence.loading}
<p>Connecting…</p>
{:else if $presence.error}
<p>Presence unavailable.</p>
{:else if $presence.data}
<p>{$presence.data.profile.displayName}: {$presence.data.presence?.status ?? "Pending"}</p>
{/if}Svelte automatically subscribes to the store when $presence is referenced and unsubscribes when the component is disposed. The SDK avoids opening an SSE connection during SSR.
Multiple people and connection health
multi-user.tstypescript
import {
createPresencesStore,
createConnectionDiagnosticsStore,
} from "@iconical/presencekit/svelte";
const roster = createPresencesStore({
userIds: ["123456789012345678", "234567890123456789"],
});
const connection = createConnectionDiagnosticsStore();roster exposes readable state { data, loading, error }; data is a PresenceBatchResult with a presences map keyed by user ID. connection exposes ConnectionDiagnostics.
Was this page helpful?