Why Kyrin?
Kyrin is a TypeScript framework for Bun. It's designed to help you ship fast without sacrificing type safety or flexibility.
The Problem
Setting up a new backend project shouldn't take hours. You don't want to wire up routers, validators, and configs from scratch every time. But you also don't want a bloated framework that forces you into patterns you don't need.
What Kyrin Does
Kyrin gives you a solid foundation with sensible defaults. Everything just works out of the box, but nothing is locked in. Use what you need, ignore what you don't.
import { Kyrin, cors } from "kyrin";
const app = new Kyrin();
app.get("/", () => ({ message: "Hello Kyrin!" }));
app.listen(3000);That's it. No boilerplate, no ceremony.
Type Safety Without the Hassle
Types flow through your entire app automatically. Request params, body, response — all typed. No more as any or runtime surprises.
Built for Bun
Kyrin is optimized for Bun from day one. Fast startup, fast requests, fast everything.
What's Next?
Head over to Core Concepts to see how it all works.