SvelteKit (plain)
A SvelteKit 2 client wired to the Phoenix backend, with no 3D rendering and no opinionated UI library. Pick this when you want SvelteKit + Phoenix for an admin tool, dashboard, CRUD app, or anything where the threlte+three.js install would be dead weight.
Install
npx tostada-cli create MyApp --variant sveltekit Or interactively pick SvelteKit at the variant prompt.
What you get
In client/:
- SvelteKit 2 + Svelte 5 (runes)
- Vite 7 dev server on
:5173 - adapter-static, building into
../server/priv/static/app src/lib/socket.ts— Phoenix socket helper (writable stores for status / errors)- A minimal
+page.sveltelanding page with auth links - Vitest + jsdom + @testing-library/svelte for tests
- Strict TypeScript
In server/:
- The shared Phoenix 1.8 backend (identical across all variants)
Available addons
| Addon | Default | Notes |
|---|---|---|
docker | off | Dockerfile + docker-compose for containerized deploy |
Threlte and model-pipeline addons aren’t offered for this variant — pick the sveltekit-threlte variant instead if you want 3D.
Verifying the install
cd MyApp
make db.setup
make dev Open http://localhost:5173. The landing page loads from the SvelteKit dev server; /api/me proxies through to Phoenix on :4000.
What to build next
The shared backend already has auth and a socket lobby channel. From here:
- Read Channels + Stores to wire a SvelteKit store to a Phoenix channel
- Read Auth System for the session + socket-token flow
- Add Tailwind, Drizzle, etc. by hand or pick the sveltekit-sv variant which automates that step