Serverless-first Deno framework

Build type-safe APIs at the speed of thought

Thunder is a serverless-first, full-stack framework for Deno with file-based routing, Zod-validated schemas, a powerful hooks system, and instant CRUD - so you can focus on your product, not boilerplate.

terminal
git clone https://github.com/Huruf-Tech/thunder.git my-appcd my-app && deno task initdeno task dev

Less boilerplate. More shipping.

Define a validated route, generate a full CRUD API, or intercept requests with hooks - all with end-to-end type safety.

routes/users.ts

A fully validated route

import { Router } from "@/core/http/router.ts";import { bodyAsJson } from "@/core/http/utils.ts";import z from "zod";export default new Router("/api", function users(router) {  router.post("/users", function createUser() {    const $body = z.object({      name: z.string().min(1),      email: z.string().email(),    });    const $return = z.object({ id: z.string() });    return {      shape: () => ({ body: $body, return: $return }),      handler: async (req) => {        const body = $body.parse(await bodyAsJson(req));        return Response.created({ id: "123" });      },    };  });}).group("Users");
routes/todos.ts

A complete CRUD API in one call

import { Router } from "@/core/http/router.ts";import { createCRUD } from "@/core/utils/createCRUD.ts";import { todoModel, $todo, $todoInput } from "@/schemas/todo.ts";export default new Router("/", function todos(router) {  createCRUD({    router,    schema: $todo,    model: todoModel,    insertSchema: $todoInput,  });}).group("Todos");
hooks/auth.ts

Intercept requests with hooks

import type { THook } from "@/core/http/hooks.ts";import { Response } from "@/core/http/response.ts";export default {  priority: 100, // higher runs first  pre: async ({ req }) => {    const token = req.headers.get("Authorization");    if (!token) return Response.unauthorized();  },} satisfies THook;

Everything you need, nothing you don't

File-based Routing

Drop a file in routes/ and it becomes an endpoint. Convention over configuration, with zero wiring.

End-to-end Type Safety

Zod validates params, query, body, and response - and TypeScript enforces your return shape at compile time.

Serverless-first

Stateless requests, fast cold starts, and predictable performance designed for serverless from day one.

Powerful Hooks

Pre and post interceptors with priorities for auth, logging, and rate limiting - no tangled middleware.

Instant CRUD

Generate create, read, update, delete, and count endpoints for any model with a single createCRUD call.

Plugin Ecosystem

Any Thunder project is a plugin. Install thunder-core for auth, RBAC, and security in one command.

© 2026 Thunder. All rights reserved.