v0.3.0 is now live!

Write Less Code,
Build More Features.

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

Nim Lang
Type Safe
Batteries Included
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 user = DB.table("users").where("email", ctx.input("email")).first()

  if not user.isNull() and verifyPassword(ctx.input("password"), user.getString("password")):
    let token = ctx.login(user)
    ctx.json(%*{"token": token, "message": "Welcome!"})
  else:
    ctx.status(401).json(%*{"error": "Invalid credentials"})

Member Login

Email
Password

Validation? Just define rules.

Expressive and modern 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.getString("title")

New Post

Title
required|min:3

Database access? Fluent & Typosafe.

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

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

Built with Jazzy

See what our community is building.