MossKit is an opinionated Bun-first starter generator for full-stack apps built with Vite + React, Hono, Drizzle, and a shared TypeScript package.
Created by Joel Thompson.
bunx @joelthompson/create-mosskit my-appMossKit is for solo builders and small teams who want a batteries-included full-stack monorepo without committing to a deployment platform up front.
It is a good fit if you want shared contracts, sensible defaults, and a starter you can actually shape into your own app instead of working around a hosted framework's assumptions.
MossKit is for teams that want a clean monorepo with the frontend, backend, and shared contracts wired up from the start.
- Shared TypeScript + Zod contracts between frontend and backend
- Bun workspaces and Bun-first local tooling
- Vite + React with TanStack Router and TanStack Query
- Hono backend with Drizzle and PostgreSQL
- Optional Clerk auth and shadcn/ui
- No deployment platform required, with optional Railway example assets included in generated apps
Always included:
- Bun workspaces monorepo
frontend,backend, andsharedpackages- Vitest, Oxlint, and Prettier
- Zod validation and shared types
- Docker Compose for local Postgres
- Seeded example tests in all workspaces
Optional features:
auth: Clerk integration for frontend and backendshadcn: shadcn/ui setup with a small starter component set
- Create a new app:
bunx @joelthompson/create-mosskit my-app- Enter the project:
cd my-app- Start the local database:
bun run db:start- Run the app:
bun run devThe frontend runs on http://localhost:5173.
The backend runs on http://localhost:3000.
Generated apps include a root mosskit.json manifest. MossKit uses that file for project info and feature management.
bunx @joelthompson/create-mosskit info
bunx @joelthompson/create-mosskit features
bunx @joelthompson/create-mosskit add auth
bunx @joelthompson/create-mosskit add shadcnmy-app/
├── frontend/ # Vite + React app
├── backend/ # Hono + Drizzle API
├── shared/ # shared types, schemas, and utilities
└── mosskit.json
MossKit chooses the local architecture and tooling for you:
- Bun as the runtime and workspace manager
- Vite + React on the frontend
- Hono on the backend
- Drizzle + PostgreSQL for the database layer
- shared contracts in a dedicated
sharedpackage
MossKit leaves these choices to you:
- deployment platform, even if you start from the optional Railway examples
- production hosting topology
- whether to include auth
- whether to include shadcn/ui
MossKit is early-stage, but the generator is already scaffoldable and verified against fresh generated apps with install, dev, typecheck, test, and build checks.
The generator package lives in packages/create-mosskit.
Generated app dependency versions are maintained from a single source:
Update workflow:
- Change versions in
packages/create-mosskit/src/dependency-versions.js - Sync template manifests:
node ./scripts/sync-template-package-versions.mjs- Refresh the packaged template copy:
node ./scripts/sync-templates.mjs- Run framework smoke tests:
node --test tests/*.test.mjs- Run full generated-app verification:
node ./scripts/verify-generated-apps.mjsVerification layers:
node --test tests/*.test.mjs: generator shape, overlays, manifests, and expected filesnode ./scripts/verify-generated-apps.mjs: fresh scaffold install, dev, typecheck, test, and build verification