Blitz 尚在 beat 阶段! 🎉 预计会在今年的 Q3 季度发布 1.0

React 全栈框架

Blitz 是一个基于 Next.js、功能齐备,并提供一个能消除 REST/GraphQL 依赖的零 API 数据抽象层的框架,受到了 Ruby on Rails 的启发。

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

// 这里提供运行时验证 + 类型安全
export const CreateProject = z
  .object({
    name: z.string(),
  })

// resolver.pipe 是一个函数式管道
export default resolver.pipe(
  // 验证输入数据
  resolver.zod(CreateProject),
  // 确保用户已经登陆
  resolver.authorize(),
  // 执行业务逻辑
  async (input) => {
    const project = await db.project.create({ data: input })
    return project
  }
)

“零 API” 数据层允许你 直接导入服务端代码到你的组件中 而无需手动增加 API 端口和在客户端上请求与缓存。

新的 Blitz 应用为你解决了所有枯燥繁琐的事务!比如 ESlint、Prettier、Jest、用户注册、登陆和密码重置。

为路由、文件结构和身份验证等提供有用的默认值和约定,同时还非常灵活。

你想要在生产环境上所用到的一切

全栈 & 一体化

在一个单独的应用中包含了从数据库到前端的一切内容。只需在一处开发,只需在一处部署。

并且你可以部署到一个服务器或 Serverless 上。

API 不再必须

不同于从后端读取数据,你可以直接导入你的服务端代码到你的组件中。在构建时,导入的该函数会被一个自动生成的 HTTP API 所包裹。

自动生成的 API 也可被其它应用和第三方库所使用。

宽松的限制

开箱即用的体验将引导你走上适合大多数应用的完美路线。哪怕当你需要偏离常规路线时,你也可以完全自由地进行转换。

同时几乎任何东西都是可插拔的。例如,我们不强制要求你使用哪种样式或表单库。

约定大于配置

Blitz 为你处理了所有繁琐的设置和配置。通用的项目结构和架构模式可以让你轻松地从一个 Blitz 应用移动宾至如归地移动到另一个应用上。

易于开始,便捷拓展

对初学者友好,也很容易将现有的 Next.js 应用程序迁移到 Blitz。

易于以各种形式拓展:代码行数、在代码库中协同的人数以及执行代码。

稳定性

一旦我们发布 1.0 版,我们将切换为稳定、可预测的发布周期,包括稳定版、LTS 版和测试版等多种渠道。

在这方面,我们从 Ember 那里获得了很多灵感。


Blitz 社区 - 我们最重要的组成部分

Lori Karikari
meepdeew
Lachlan Campbell
Hashim Warren
Dawid Urbaniak
Gary
acornellier
Tsuyoshi Osawa
Basil Khan
Jan Baykara
Nick Warren
Justin Smid
Sergio Xalambrí
Kotaro Chikuba
Matsumoto Toshi
Steven
Muhammad Ubaid Raza
Alistair Smith
Sofiane Djellouli
Hikmat Jafarli
Michael Ford
Fran Zekan
Gabe O'Leary
Felipe Milani
Benjamin Bender
Michael Edelman
kimngan-bui
Luke Bennett
Pankaj Patil
meehawk

我们的社区温暖、安全、多样化、包容性强也很有趣!LGBTQ+、女性和少数民族尤其受欢迎。

请阅读我们的 行为准则.

加入我们的 Discord 社区

我们此刻携手共进,无论年轻还是年长。我们的相似超越了彼此的不同。我们喜欢在一起工作。

我们邀请你来帮助 Blitz 成为越来越好的框架!

学习如何贡献

架构图解

Architecture diagram

从数据库到前端,一切都是端到端

验证 & 鉴权

内置的身份验证非常简单和安全。适用于任何身份提供者,包括自托管的用户名和密码以及像 Auth0 这样的第三方。

数据库无感知

你可以使用任何你想使用的数据库。Prisma 2 是默认的数据库客户端,但你可以删掉它并使用任何其它数据库,如 Fauna 或 DynamoDB。

配方

一行命令即可安装代码和/或包到你的项目中。例如:`blitz install tailwind` 或 `blitz install chakra-ui`。任何人都可以定制配方。

后端架构

Blitz 是为服务器密集型任务而设计的,例如发送电子邮件、自动化作业、后台处理、生成 PDF 等。目前我们的后端指南较少,但也正在开发更多的模式和添加更多文档中。

一流的 TypeScript 支持

Blitz 是用 TypeScript 构建的,因此 Blitz 的数据层提供完全端到端的类型安全。同时所有的类型都完全静态,不需要一个单独的类型生成过程!

代码脚手架

现在还为时尚早,但 Blitz 的脚手架将非常强大。非常适合原型设计和构建真正的应用程序。将能够覆盖任何模版并为你的项目进行自定义。

我们的赞助商

你的经济帮助有助于确保 Blitz 持续开发和维护!我们提供每月 $5 元起步的赞助选项。

那么我现在应该做什么?