Build APIs.
Stay in the Sponge Zone.

A fun and fast framework powered by Bun and TypeScript, bringing simplicity and a fresh perspective to backend development. Stay in the Sponge Zone!

Fast•Simple•Powerful
Get Started
$bun create riser-bob my-app
  • Bun logoBunFast runtime
  • TypeScript logoTypeScriptType safe
  • CLICode generators
  • ArchitectureModular & scalable

Fast & Lightweight

Built with Bun for blazing fast performance and minimal overhead.

Type Safe

Written in TypeScript for a better developer experience.

Modular Architecture

Organize your application with clean and scalable modules.

Powerful CLI

Generate modules, routes and boilerplate code in seconds.

Everything in one small framework

Six things RiserBob gives you out of the box.

Modular Structure

Organize your application into clean, reusable modules that keep your codebase structured and easy to maintain.

Ready-to-Use Middleware

Protect routes and handle common request workflows with built-in middleware, without reinventing the wheel.

Blazing-Fast Performance

Built for Bun and TypeScript to deliver a lightweight HTTP core with speed at its foundation.

Built-in Validation

Validate incoming data with a simple, developer-friendly API—without the hassle of building validation from scratch.

Integrated CLI

Generate modules in seconds with commands like `bun run riser-bob g module users` and keep your development workflow moving.

Fun Sponge Zone

Enjoy playful SpongeBob-inspired messages and errors that make debugging feel like a trip to the bottom of the sea.

Readable by design

Every Sponge method returns the app, so routes chain naturally. Middleware sits right next to the handler it protects.

app.ts
1import { RiserBob } from "riser-bob";2 3const bob = new RiserBob();4 5// Chain routes, add middleware per route6bob.spongGet("/users", listUsers)7   .spongPost("/users", createUser)8   .spongGet("/me", me, auth.middleware);

Errors, handled

One central error handler gives every failure a predictable response.

SituationResponse
No matching route404 Not Found
Path exists, method does not405 Method Not Allowed + Allow header
Handler throws an HttpErrorThe error's status and message
Handler throws any other error500 — details are never exposed
Handler returns no Response500

RiserBob is a good fit if

  • You want a fast, lightweight HTTP framework built for Bun.
  • You want modular architecture without sacrificing flexibility.
  • You prefer simple routing, middleware, and validation APIs.
  • You enjoy playful, SpongeBob-inspired error messages and responses.
  • You want freedom to use and customize the framework for personal or commercial projects.

Not for you if

  • You prefer a strictly professional framework without playful, SpongeBob-inspired responses.
  • You need support for runtimes other than Bun.
  • You prefer a highly opinionated framework with strict architectural conventions.

RiserBob is released under the MIT License. You may use, copy, modify, merge, publish, distribute, sublicense, and sell copies of the framework, subject to the license terms. You must include the original copyright notice and license text in all copies or substantial portions of the software. Your applications and code remain yours.

Modular architecture

Simple API, Powerful Structure

Every feature in RiserBob is a module made of three focused files: a controller for the logic, a router for the paths, and a module that wires them together. Here is what a users feature looks like.

Explore the docs
users.module.ts
import { RiserBob } from "riser-bob";import { AuthMiddleware } from "riser-bob";import { UsersController } from "./users.controller";import { UsersRouter } from "./users.route"; export class UsersModule {  register(bob: RiserBob): void {    const controller = new UsersController();     const authMiddleware = new AuthMiddleware((token) =>      controller.verifyToken(token),    );     const router = new UsersRouter(      bob,      controller,      authMiddleware,    );     router.register();  }}
Performance

Fast APIs.
Less waiting.

Powered by Bun and built with TypeScript, RiserBob brings performance and a playful developer experience together, making API development more enjoyable.

Preliminary results. Results come from one reported benchmark run. Performance can vary by runtime, hardware, and test conditions. Repeat testing is needed before drawing general conclusions.

Throughput comparison

Requests handled per second

100 connections
  1. Elysia.jsBun
    62,155.61
    Avg latency: 0.314 msP99 latency: 0.7078 ms
  2. RiserBobRiserBobBun
    52,515.2
    Avg latency: 1.36 msP99 latency: 4 ms
  3. Express.jsNode.js
    24,581.6
    Avg latency: 3.27 msP99 latency: 8 ms
  4. NestJSNode.js
    22,543.2
    Avg latency: 4 msP99 latency: 12 ms

GET /hello — JSON response: { message: "Hello World" }

Test methodology
Tool: AutocannonDuration: 20 seconds per frameworkMachine: Local Windows machine · Hardware details not recordedDate: October 21, 2026
ERRORS, BUT MAKE THEM FUN

Even errors have a personality.

Debugging is serious business. The messages don't have to be boring. Meet the friendliest errors under the sea.

Developer-friendly errors

Clear status codes. Helpful context. A little SpongeBob energy.

riserbob / error-playground
Interactive preview

Choose a response

01 / 05

Fun messages are for humans. HTTP status codes still do the serious work.

HTTP 404Client error

Not Found

Lost in Bikini Bottom

A message from Bikini Bottom

“I checked my pineapple, but the endpoint isn't there!”

HTTP response bodyapplication/json
{
  "error": "Not Found"
}
Console output
[RiserBob] 🧽😂 Welcome to Bikini Bottom!
🔎 Requested Method: GET
🛣️ Requested Path: /api/krabby-patty
🤷 Route not found! Did Patrick register it?
🍍 SpongeBob: "I checked my pineapple, but the endpoint isn't there!"
🦀 Mr. Krabs: "NO ROUTE, NO MONEY!"

Built with RiserBob's developer-first error philosophy.

Get started with RiserBob
RiserBob logoThe Creator Behind RiserBob
Zen Allaham, creator of RiserBob

Zen Allaham

Software Engineer · Creator of RiserBob

I engineer scalable backend systems and developer tools, and created RiserBob: a lightweight, fully tested, fun HTTP framework for Bun and TypeScript, inspired by the world of SpongeBob SquarePants, built for modularity, flexibility, and a better developer experience.

Age
18 years old
Focus
Backend Engineering
Stack
Bun & TypeScript
Community

A framework grows with the people who build on it

Star the repo, report a rough edge, or show us what you are building. Every idea shared makes the next project a little easier for someone else.