The Fullstack JavaScript Toolkit

Blitz is a framework-agnostic toolkit. It features a "Zero-API" data layer abstraction that eliminates the need for REST/GraphQL, new app scaffolding and a Blitz Auth plugin — a powerful alternative to next-auth.

// app/projects/mutations/createProject.ts
import { resolver } from "blitz"
import db from "db"
import * as z from "zod"

// This provides runtime validation + type safety
export const CreateProject = z
  .object({
    name: z.string(),
  })

// resolver.pipe is a functional pipe
export default resolver.pipe(
  // Validate the input data
  resolver.zod(CreateProject),
  // Ensure user is logged in
  resolver.authorize(),
  // Perform business logic
  async (input) => {
    const project = await db.project.create({ data: input })
    return project
  }
)

“Zero-API” data layer lets you import server code directly into your components instead of having to manually add API endpoints and do client-side fetching and caching.

New Blitz apps come with all the boring stuff already set up for you! Like ESLint, Prettier, Jest, user sign up, log in, and password reset.

Provides helpful defaults and conventions for things like routing, file structure, and authentication while also being extremely flexible.

Everything You Need For Production Apps

Fullstack & Monolithic

Includes everything from the database to your frontend all inside a single app. Only one thing to develop. Only one thing to deploy.

And you can deploy to a server or serverless.

API Not Required

Instead of fetching data from the backend, you import your server code directly into your components. At build time, that function import is swapped out with an auto generated HTTP API.

The generated API can also be used by apps & third-parties.

Loose Opinions

The out-of-the-box experience guides you on a path perfect for most applications. But when you need to go off the beaten path, you are totally free to do so.

And nearly everything is pluggable. For example, we don't mandate which styling or form libraries you use.

Convention over Configuration

Blitz does all the boring set up and configuration for you. The common project structure and architectural patterns make it easy to move from one Blitz app to another and immediately feel at home.

Easy to Start, Easy to Scale

Easy for beginners and easy to migrate existing Next.js apps to Blitz.

Easy to scale in all forms: lines of code, number of people working in the codebase, and code execution.

Stability

Once we reach version 1.0, we'll switch to a stable, predictable release cycle with multiple channels like stable, LTS, and beta.

We are taking a lot inspiration from Ember in this regard.


The Blitz Community - Our Most Important Aspect

Giel
David Mazza
Rafael Nunes
Adam Markon
Maciej Kasprzyk
Mat Milbury
0xflotus
JuanM04
Piotrek Tomczewski
Karan Kiri
Alex Johansson
Aviv Keller
Ashikka Gupta
Dillon Raphael
Siddharth Suresh
Jack Zhao
kivi
robertgrzonka
Denise Yu
Sergey
Alex Dolan
Kevin Langley Jr.
Shinobu Hayashi
Steven
Robert Malko
Peter Shih
Nick Warren
Chris Johnson
Andrea Rizzello
usamaster

Our community is warm, safe, inclusive, and fun!

Please read our Code of Conduct.

Join our Discord Community

We are all in this together, from the youngest to the oldest. We are all more similar than we are different. We love to work together.

We invite you to help make Blitz the best framework we've ever had!

Learn How to Contribute

Architecture Diagram

Architecture diagram

Everything End-to-End From the Database to the Frontend

Authentication & Authorization

Built-in authentication is super easy and very secure. Works with any identity provider, including self-hosted username and password and third-parties like Auth0.

Database Agnostic

You can use any database you want. Prisma is the default database client, but you can remove that and use anything else like Fauna or DynamoDB.

Recipes

One command to install code and/or packages into your blitz app. Examples: `blitz install tailwind` or `blitz install chakra-ui`. Recipes can be created by anyone.

Backend Architecture

Blitz is set up for server intensive tasks like sending emails, cron jobs, background processing, generating PDFs, etc. Currently we have minimal backend guides, but are working on developing more patterns and adding more docs.

First Class TypeScript Support

Blitz is built with TypeScript and the Blitz data layer is fully end-to-end typesafe. All types are completely static without needing a separate type generation process!

Code Scaffolding

It’s early days, but Blitz code scaffolding is going to be extremely powerful. Great for both prototyping and for building real apps. Will be able to override any template and customize for your project.

Our Sponsors

Your financial contributions help ensure Blitz continues to be developed and maintained! We have monthly sponsorship options starting at $5/month.