For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /zh/docs/web/tech-stack.md (or send Accept: text/markdown).
技术栈
套件背后的技术及其各自的作用。
开始之前
使用“文件”→“打开文件夹”在 Visual Studio Code 中打开下载的 supastack 项目,然后选择“终端”→“新建终端”。存储库根目录是包含 package.json、apps 和 packages 的文件夹。运行下面的命令并保持终端打开。如果无法识别命令,请先完成工具安装指南,然后再继续。
首先阅读平台教程。服务器是响应浏览器或电话请求的应用程序进程。 Web 读取 apps/web/.env.local,Expo 读取 apps/mobile/.env.local,数据库迁移命令读取 root .env。无数据库/仪表板演示与真实/身份验证帐户分开,需要迁移Postgres。仅电话或桌面结帐需要单独运行的 Web 后端。
corepack pnpm --filter @supastack/web dev应用栈
Web 应用是由共享 TypeScript 包组成的 Next.js 应用——同一套包同时驱动 Expo 移动应用。产品界面使用基于设计令牌的 CSS Modules,因此没有需要调试的运行时 CSS-in-JS,对象存储兼容 S3。以下工具都是刻意选择的默认项。
Next.js + React
TypeScript + Turborepo
TypeScript 严格模式适用于整个 pnpm 工作区,Turborepo 负责协调构建。
Better Auth
Better Auth 是身份引擎;希望统一使用 Auth.js 的团队也可选用 Auth.js 引擎。
Drizzle + PostgreSQL
持久化通过 PostgreSQL 上的 Drizzle ORM 实现——即每条记录所经过的 schema 与辅助方法。
计费
默认使用 Stripe 计费,并附带 Lemon Squeezy 适配器。
Trigger.dev
后台任务运行在 Trigger.dev 上。
事务性邮件
事务性邮件通过 Resend 或 AWS SES 发送。
Sentry + PostHog
Expo
Expo 移动应用使用同一套 TypeScript 包,因此契约变更可同时对两个端进行类型检查。Expo 支持构建 iOS 和 Android 版本。
共享模块
每个横切能力都位于一个带有小契约的包中:auth、db、billing、ai、jobs、email、storage、observability、config、i18n 和 api。应用程序组合它们;产品领域逻辑留在套件之外。
每个由提供商支撑的模块都包含一个 fake 或本地适配器,因此默认的测试与开发循环永远不会调用付费服务。
验证工具
Vitest 覆盖单元和集成行为,Playwright 覆盖浏览器流程,ESLint 加 Prettier 保持代码一致。确定性测试套件无需提供商凭据即可运行;真实提供商验收是一条单独的可选路径。
corepack pnpm test # deterministic unit + integration
corepack pnpm check # lint, types, tests, format
corepack pnpm build # production builds
corepack pnpm test:e2e # browser flows