I've been working on Shokupan
โ a type-safe web framework designed specifically for Bun that brings back the joy of building APIs.
Why I built it:
I love the speed and DX of Bun, but missed having a batteries-included framework with decorator support, auto-generated OpenAPI specs, and a built-in debug dashboard. Shokupan aims to give you the power of NestJS-style decorators with Express-like simplicity, while staying blazingly fast on Bun.
Key features:
- ๐ฏ TypeScript-first with full end-to-end type safety
- ๐ Zero config โ works out of the box
- ๐ Visual debug dashboard to inspect routes and middleware
- ๐ Auto-generated OpenAPI specs from your TS types and interfaces
- ๐ Rich plugin ecosystem CORS, sessions, OAuth2 (GitHub, Google, etc.), validation (Zod/TypeBox/Ajv/Valibot), rate limiting, compression
- ๐ Express-compatible Express middleware support for easy migration experimental
- โก Optimized for Bun Competitive performance with Hono and Elysia
Quick example:
import { Shokupan, ScalarPlugin } from 'shokupan';
const app = new Shokupan();
app.get('/', (ctx) => ({ message: 'Hello, World!' }));
app.mount('/docs', new ScalarPlugin({ enableStaticAnalysis: true }));
app.listen(); // That's it! ๐
Current status:
Shokupan is in alpha (v0.5.0). The core is stable and fast, but I'm actively adding features and would love your feedback before hitting v1.0.
What I'd love feedback on:
- What features would you want in a Bun-first framework?
- Any pain points when migrating from Express/NestJS/Fastify?
- Is decorator-based routing something you'd use, or prefer functional approaches?
GitHub: https://github.com/knackstedt/shokupan
Docs: https://knackstedt.github.io/shokupan/
Would love to hear your thoughts!