v0.1.0 is now live!

Write Less Code,
Build More Features.

The Productive Framework. Developer-friendly, lightning fast, and designed for rapid development.

Nim Lang
Native Speed
Async I/O
user_controller.nim
|

Everything you need to ship it.

🚀 The 1-Minute Challenge: From jazzy new to a secured API in less than 60 seconds.
Built-in Authentication
Tired of writing Auth? Registration, login, and profile management ready out-of-the-box. Secure JWT included.
Automatic Data Validation
Secure data, clean code. Auto-validate JSON/Form requests before they even reach your controller.
Integrated SQLite
Focus on data, not config. Zero-setup SQLite support with built-in connection tools and CRUD operations.
Scaffolding CLI
Your coding assistant. Run `jazzy make:controller` and let the CLI generate standard-compliant boilerplate for you.
High-Performance Async
Security at speed. Powered by Mummy, featuring fully async middleware for CORS, Logging, and custom guards.
Developer-First Errors
Debug without the pain. Standardized, cleaner JSON error responses that your frontend developers will love.

Authentication? It's built-in.

Secure, session-less JWT authentication built right into the core. No external libraries needed.

AuthController.nim
proc login(ctx: Context) {.async.} =
  let body = await ctx.body(LoginCredentials)

  # Built-in Auth Helper
  if await ctx.auth.attempt(body.email, body.password):
    return await ctx.json(%*{
      $1: ctx.auth.generateToken(),
      $1: $1
    })

  await ctx.status(401).json(%*{$1: $1})

Member Login

Email
Password

Validation? Just define rules.

Laravel-style validation syntax. Define your rules, let Jazzy handle the rest.

PostController.nim
proc createPost(ctx: Context) {.async.} =
  let data = ctx.validate(%*{
    "title": "required|min:3",
    "status": "in:draft,published"
  })
  
  # Logic...
  echo data["title"].getStr

New Post

Title
required|min:3

Database access? Fluent & Typosafe.

Zero configuration query builder. Insert, Select, Delete with ease.

DatabaseController.nim
await DB.table("users").all()
users
Database Ready
ID
Name
Role
1
Alice Smith
user
2
Bob Jones
user
2 recordsSQLite
RESERVED
👋

Your quote here?

"Jazzy is in early alpha. We are looking for pioneer developers to build the future of Nim web development. Build something, tell us what you think, and get featured here."