A small full stack starter. See AGENT.md for the philosophy.
apps/
api/ Hono API, Bun and Deno entry points
web-next/ Next.js app (port 3001)
web-svelte/ SvelteKit app (port 3002)
packages/
db/ Drizzle schema, migrations, client
shared/ env loader and shared types
tooling/
tsconfig/ base TS configs
cp .env.example .env
bun install
docker compose up -d postgres
bun run db:generate
bun run db:migrate
bun run dev
That starts the API on 3000, Next on 3001, Svelte on 3002.
bun run dev # all apps
bun run build # build all apps
bun run typecheck # typecheck all
bun run db:generate # create a new migration from schema changes
bun run db:migrate # apply migrations
bun run db:studio # open Drizzle Studio
curl http://localhost:3000/health
curl -X POST http://localhost:3000/users \
-H 'content-type: application/json' \
-d '{"email":"[email protected]","name":"A"}'
curl http://localhost:3000/users
From apps/api:
bun run start:deno
Same routes, same behavior, different runtime.
docker compose up --build
Brings up Postgres, runs the migration job, then starts the API. Frontends still run on the host.
Each top level folder is independent. Examples:
rm -rf apps/web-nextrm -rf apps/web-svelteapps/api/deno.ts and the start:deno scriptdocker-compose.yml and apps/api/Dockerfile