tostada

Scaffold a Phoenix + Vite project — pick your client framework, get real-time channels and auth wired in, and start building.

npx tostada-cli create MyApp

A full-stack boilerplate with a headless Phoenix backend, a JSON + WebSocket auth flow, and four ready-to-ship client variants.

What you get

  • Phoenix backend — JSON API, WebSocket channels, HttpOnly session cookies, password reset
  • Four client variants — pick at scaffold time:
    • sveltekit-threlte (default) — SvelteKit + Threlte 3D, the original Tostada stack
    • sveltekit — plain SvelteKit + Phoenix
    • sveltekit-sv — SvelteKit via npx sv create + Phoenix overlay
    • react-shadcn — Vite + React + Tailwind + shadcn/ui
  • Shared backend across all variants — auth, sockets, Makefile orchestration are identical
  • Per-variant /login + /register SPA routes — auth UI is the client’s job; Phoenix stays headless
  • One command to scaffold, install, and start coding

Quick start

# Interactive — pick variant + addons from prompts
npx tostada-cli create

# Or non-interactive:
npx tostada-cli create MyApp --variant react-shadcn
cd my_app
make install
make db.setup
make dev

Vite serves your client on localhost:5173; Phoenix runs on localhost:4000 and gets the proxied /api/* + /socket traffic. Open the dev URL and click the login icon — the form POSTs to /api/auth/login, Phoenix sets an HttpOnly session cookie, and you’re in.

Next steps