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 社区 - 我们最重要的组成部分

Carlos Fernández
Pavel Struhar
Sebastian Hoitz
Ilya
Fran Zekan
Rafael Nunes
Felipe Milani
Jim Cummins
robertgrzonka
Taylor Johnson
Gabe O'Leary
Konrad Kalemba
Luke Bennett
Patrick G
Soumyajit Pathak
Simon Legg
Shinobu Hayashi
Antony
markylaing
Dwight Watson
Francesco Sardo
Joe Edelman
David Kramer
Jonas Thiesen
Faraz Patankar
meehawk
Benja Kugler
Alex Johansson
Kwuang Tang
Aleksandra Sikora

我们的社区温暖、安全、多样化、包容性强也很有趣!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 元起步的赞助选项。

那么我现在应该做什么?