A CLI scaffolder for a Bun + SvelteKit + ElysiaJS fullstack starter.
bunx create-stelle
# or
npx create-stelleYou'll be prompted for a project name and features.
- SvelteKit for pages & SSR (port 5173 in dev)
- ElysiaJS in
src/server.tsas a separate Bun process (port 3000 in dev), serving HTTP + WebSockets natively - Vite proxy forwards
/api(including WebSocket upgrades viaws: true) to Elysia, so frontend code calls same-origin - Eden Treaty pre-wired in
src/lib/api.tsfor end-to-end type safety - A landing page with a working CRUD demo (in-memory
Map) and a realtime broadcast chat demo (open two tabs to chat with yourself) - Colored HTTP + WebSocket request logging on the Elysia server
- Optional: Tailwind v4, better-auth, Drizzle (SQLite/Postgres) or MongoDB
| Feature | Default |
|---|---|
| Tailwind v4 | on |
| better-auth | on |
| Database setup (SQLite / Postgres / MongoDB) | on |
Database choice only scaffolds the client, schema, and config — the landing-page CRUD demo always uses an in-memory Map so the starter runs out of the box.
The generated project runs both processes together:
bun run dev # vite (5173) + elysia (3000) via concurrentlyTwo deploy shapes, your choice:
- Two processes behind a reverse proxy — standard fullstack setup.
- Single Bun process — have Elysia own the port and mount SvelteKit's built handler, so SSR, API, and WebSockets all share one server. One app container, plus your database. The generated README walks through this.
