Skip to main content
zerotal
Zerotal v1.15 is now available

Zero to total.
The full-stack framework for Bun.

Full-stack productivity with native Bun performance. Everything you need to build robust web applications in one cohesive package. No glue code required.

$ bun create zerotal my-app

What's in the box

24
First-party packages
5,670
Tests passing
100%
TypeScript, no build step
1
Runtime to install — Bun

Everything you need to ship faster

Focus on building your product, not stitching together libraries. Zerotal gives you a cohesive ecosystem out of the box.

Bun-native

Built directly on Bun — native SQL client, native file system, native HTTP server. No wasted layers between your code and the metal.

Ergonomic DX

Active Record ORM, fluent middleware, file-based routing, and Flow reactive components — everything designed to feel natural from day one.

Batteries included

Auth, roles, 2FA, social login, queues, cache, storage, mail, audit logging, multi-tenancy — all in one coherent package with no glue code.

Beautiful, expressive code

Zerotal provides elegant APIs that make writing business logic a joy, without sacrificing type safety or performance.

app/models/Post.ts
// app/models/Post.ts
@table('posts')
export class Post extends Model.using(SoftDeletes) {
  @column()        title!:  string;
  @column('text')  body!:   string;
  @column()        slug!:   string;
  @belongsTo()     author!: User;

  static recent = Post.query().latest().limit(10);
}

// app/controllers/PostController.ts
export class PostController extends Controller {
  async index(http: HttpContext) {
    const posts = await Post.query()
      .with('author')
      .latest()
      .paginate();

    return http.json({ posts });
  }

  async store(http: HttpContext) {
    const data = await StorePostRequest.validate();
    const post  = await Post.create({ ...data, authorId: http.user.id });
    return redirect(`/posts/${post.slug}`);
  }
}

Batteries absolutely included

Explore the rich ecosystem of first-party packages designed specifically for Zerotal. Perfectly integrated, incredibly powerful.

Ready to build your
next big idea?

One command scaffolds a working app — routing, models, auth, and a frontend of your choosing. Read the guide and ship something today.

Read the Documentation