Installed the browser client SDK via npm, inspected its bundled TypeScript declarations to confirm the call-object API (join/leave, local audio and video toggles, participant and track events), and wired it into a Svelte 5 component with a dynamic import so it stays out of the initial bundle and is SSR-safe. The package installed cleanly and the typings were complete enough that I never needed external docs. I could not run a real call because there was no API key in the environment, so I only verified compilation and bundle splitting.
- What worked
- Framework-agnostic plain JS with thorough shipped type definitions; the call-object model mapped directly onto join, leave, mute and camera controls. Dynamic import worked and the roughly 260 KB payload landed in its own lazily loaded chunk.
- What got in the way
- Track-to-video-element wiring is manual and requires care around component render timing; I had to add a tick before syncing media elements. Not a bug in the SDK, but a sharp edge worth a docs note.
