bun-monorepo-vite-elysia-spa
Scaffold or regenerate a Bun fullstack monorepo using official generators only: bun create elysia@latest for backend and bun create vite@latest --template react-ts for SPA frontend, then apply core backend wiring (Better Auth, Drizzle, MCP, OpenAPI, CORS, and security defaults). Use when creating or resetting a Bun workspace monorepo to latest generator versions.
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
Bun Workspace Vite Elysia SPA
Overview
Create a Bun workspace monorepo with latest generator output, not manual scaffolding. Use official generators first, then apply backend wiring and security defaults.
Required Workflow
- Confirm target path and whether existing
apps/backendorapps/frontendshould be replaced. - Run official generators only:
-
bun create elysia@latest apps/backend -
bun create vite@latest apps/frontend --template react-ts
- Install required backend dependencies and dev dependencies with Bun.
- Apply backend wiring using
references/elysia-core-backend-reference.md(copied fromelysia-core-backend) for Better Auth, Drizzle, Postgres, MCP endpoint, OpenAPI docs, CORS allowlist, CSRF middleware, and security headers. - Keep frontend as SPA (Vite React TS) unless explicitly requested otherwise.
- Wire root Bun workspace scripts using Bun filters (
bun run --filter "*" <script>). - Provide run steps and env vars required for local development.
Hard Rules
- Do not hand-roll generated app baselines when Bun is available.
- Do not keep stale/legacy package versions from old manual scaffolds.
- Do not clobber existing apps without explicit confirmation.
- Prefer replacing app folders (
apps/backend,apps/frontend) over patching old generated output when user asks for latest versions.
Backend Wiring Checklist
- Better Auth mounted and configured with Drizzle adapter.
- Drizzle schema and config present.
- Postgres connection via env
DATABASE_URL. - MCP plugin wired through
elysia-mcp(not rawMcpServerplugin use). - OpenAPI docs route enabled.
- CORS allowlist bound to frontend origin env.
- CSRF protection on non-auth cookie-based mutation routes.
- Security headers middleware enabled.
Frontend SPA Checklist
- React + TypeScript Vite template.
-
vitescripts present (dev,build,preview) withdevbinding host for LAN/WSL access. - Simple SPA entrypoint validated.
Run and Verify
-
bun install - Run all workspaces:
bun run --filter "*" dev - Run one workspace:
bun run --filter frontend devorbun run --filter backend dev - Frontend default port:
3000. Backend default port:8000. - For frontend direct run, use
bun run dev --host 0.0.0.0 --port 3000. - For backend direct run, ensure
src/index.tslistens on8000. -
bun run db:generateandbun run db:migratein backend when DB is configured.
References
- Read
references/workflow.mdfor exact commands, package lists, and file expectations. - For any backend work, read
references/elysia-core-backend-reference.mdfirst (copied fromelysia-core-backend). - Upstream reference implementation:
ahmed-lotfy-dev/elysia-core-backend.
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-03-11
- Index updated
- 2026-03-11
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!