Fastify
Lean request path and explicit plugin registration to keep latency predictable.
Purpose-built backend for a blog platform with a focus on speed, correctness, and a clean developer story. It is intentionally small, highly typed, and safe to extend.
src/server.ts loads env config and builds a Fastify instance with Zod type providers.registerPlugins() wires CORS, database, auth, and routes under /api/v1.0.0.0.0:${PORT} (default 51214).NODE_ENV=test), the server does not auto-start.Client -> /api/v1 -> routes -> controllers -> services -> db (Drizzle -> Turso)Fastify
Lean request path and explicit plugin registration to keep latency predictable.
Clerk
Auth is delegated so the API never stores passwords and stays stateless.
Zod
Typed input/output contracts keep validation consistent at every boundary.
Turso + Drizzle
Edge-friendly SQLite with a type-safe query layer that is safe to evolve.
High-level endpoints and example requests live in the API surface page.
GET /api/v1/posts list posts with query supportGET /api/v1/posts/:slug fetch a post by slugPOST /api/v1/posts create a post (auth required)GET /api/v1/categories list categoriesGET /health health checknpm installnpm run devSee Run it locally for env vars, database tasks, and tests.