A pnpm monorepo containing a SvelteKit frontend and Hono backend with OpenAPI-based type-safe API communication.
kelner_akum/
├── package.json # Root workspace configuration
├── pnpm-workspace.yaml # pnpm workspace configuration
├── packages/
│ ├── frontend/ # Svelte SPA application
│ └── backend/ # Hono backend application (multi-target)
Install all workspace dependencies:
pnpm install
Run both applications in development mode:
pnpm run dev
Run frontend only:
pnpm run dev:frontend
Run backend only:
pnpm run dev:backend
Build all applications:
pnpm run build
Build frontend only:
pnpm run build:frontend
Build backend only:
pnpm run build:backend
The backend is platform-agnostic and can be deployed to multiple environments:
src/entry-node.tssrc/entry-cloudflare.tssrc/entry-vercel.tsThis monorepo uses an OpenAPI-first approach for frontend-backend communication:
hono-openapiopenapi-typescript + openapi-fetchhttp://localhost:3000/docs/openapi/ui✅ Full type safety - End-to-end type safety without tight coupling ✅ Decoupled architecture - Frontend only depends on OpenAPI spec URL ✅ Auto-sync - Types regenerate automatically when backend changes ✅ Standard tooling - Compatible with Postman, Insomnia, and other OpenAPI tools
See MIGRATION_OPENAPI.md for detailed usage and patterns.
packages/frontend)SvelteKit SPA application with type-safe API client. See packages/frontend/README.md for more details.
Key features:
packages/backend)Hono backend application with OpenAPI documentation. See packages/backend/README.md for more details.
Key features:
/docs/openapi/docs/openapi/uiThis monorepo uses pnpm workspaces. All packages are located in the packages/ directory.
To add a dependency to a specific workspace:
pnpm --filter frontend add <package-name>
Or navigate to the package directory:
cd packages/frontend
pnpm add <package-name>
To add a workspace dependency:
pnpm --filter frontend add backend@workspace:*