Type Safe
End-to-end type safety with decorators. Pass data around without ever losing your types.
Type Safe
End-to-end type safety with decorators. Pass data around without ever losing your types.
Zero Config
Stop configuring build tools. Shokupan just works, letting you focus on your product.
Debug Dashboard
Visualize your routes and debug requests with a beautiful built-in dashboard.
Snappy Performance
Built on Bun for instant startup times and low-latency responses.
Auto OpenAPI
Generate OpenAPI specs automatically from your routes
Rich Plugin System
CORS, Sessions, Auth, Validation, Rate Limiting, and more out of the box
Flexible Routing
Express-style routes and decorator-based controllers - fully interoperable and first-class
WebSocket Support
First-class WebSocket support with routers, controllers, and decorators for real-time apps
Express Compatible
Works with Express middleware patterns you already know
Built-in Telemetry
OpenTelemetry instrumentation out of the box
OAuth2 Support
GitHub, Google, Microsoft, Apple, Auth0, Okta ready to go
Multi-validator Support
Zod, Ajv, TypeBox, Valibot - use what you prefer
Beautiful Docs
Beautiful OpenAPI documentation with Scalar
Easy Migration
import { Shokupan } from 'shokupan';
const app = new Shokupan({ port: 3000, development: true});
app.get('/', (ctx) => { return { message: 'Hello, World!' };});
app.listen();That’s it! Your server is running securely at https://localhost:3000 🎉
Shokupan (食パン - Japanese for “white bread”) provides the foundation for your web applications - simple, reliable, and essential. It combines:
Shokupan makes a fundamental design decision: both functional routers and decorative controllers are first-class citizens and fully interoperable.
You can freely mix and match routing styles:
app.get(), app.post()) for simple APIs and rapid prototyping@Get(), @Post()) for structured, enterprise applicationsFor large applications, choose whichever style your team prefers and stick with it for consistency. If you encounter gaps or limitations, file an issue - Shokupan solves problems at the fundamental level, not through monkeypatches.
Installation
Install Shokupan and set up your first project
Core Concepts
Learn about routing, controllers, and middleware
WebSockets
Build real-time apps with WebSocket routers and controllers
Plugins
Explore the plugin system for adding features
Migration