LogoLaunchSaaS

项目结构

了解 LaunchSaaS 的文件夹组织和架构

项目结构

LaunchSaaS 遵循 Next.js App Router 约定,具有良好组织的结构,以实现可扩展性和可维护性。

根目录

.
├── src/                  # 应用程序源代码
├── content/              # MDX 内容(博客、文档、更新日志)
├── public/               # 静态资源
├── scripts/              # 实用脚本
├── drizzle/              # 数据库迁移
├── .env                  # 环境变量(不在 git 中)
├── package.json          # 依赖和脚本
└── next.config.mjs       # Next.js 配置

源代码目录

App Router (src/app/)

src/app/
├── layout.tsx            # 根布局
├── page.tsx              # 主页
├── globals.css           # 全局样式

├── (marketing)/          # 公共营销页面
│   ├── layout.tsx        # 带头部/页脚的营销布局
│   ├── blog/             # 博客页面
│   ├── pricing/          # 定价页面
│   └── ...               # 其他营销页面

├── (protected)/          # 受保护的路由(需要身份验证)
│   ├── layout.tsx        # 带侧边栏的共享布局
│   ├── loading.tsx       # 加载骨架
│   ├── dashboard/        # 用户仪表板
│   └── admin/            # 管理面板

├── auth/[path]/          # 身份验证页面
├── docs/                 # 文档站点
└── api/                  # API 路由

路由组

  • (marketing)/ - 带营销布局的公共页面(头部、页脚)
  • (protected)/ - 带共享侧边栏布局的已认证页面

组件 (src/components/)

src/components/
├── ui/                   # 基础 UI 组件(shadcn/ui)
├── layout/               # 布局组件
│   ├── site-header.tsx   # 带嵌套导航的营销头部
│   ├── site-footer.tsx   # 营销页脚
│   ├── app-sidebar.tsx   # 仪表板/管理侧边栏
│   ├── user-menu-button.tsx # 带基于角色菜单的用户下拉
│   ├── dynamic-breadcrumb.tsx # 自动生成的面包屑
│   └── ...
├── landing/              # 着陆页部分
├── blog/                 # 博客组件
├── shared/               # 共享组件
└── email/      # 电子邮件模板

服务器操作 (src/actions/)

按领域组织的类型安全服务器操作:

src/actions/
├── billing.ts            # 支付和订阅操作
├── newsletter.ts         # 新闻通讯订阅操作
├── storage.ts            # 文件存储操作
└── user.ts               # 用户管理操作

配置 (src/configuration/)

用于简单自定义的模块化配置文件:

src/configuration/
├── index.ts              # 中央导出
├── metadata.ts           # 网站名称、标题、描述、SEO
├── navbar.ts             # 导航栏项目和操作
├── sidebar.ts            # 仪表板/管理侧边栏(基于角色)
├── user-button.tsx       # 用户下拉菜单(基于角色)
├── fotoer.ts             # 页脚链接和徽章
├── social-links.ts       # 社交媒体链接
└── product.ts            # 定价和产品配置

库 (src/lib/)

核心实用程序和集成:

src/lib/
├── db.ts                 # 数据库客户端
├── auth/                 # Better Auth 配置
├── stripe.ts             # Stripe 客户端
├── email.ts              # 电子邮件发送
├── safe-action.ts        # 类型安全的服务器操作
├── session.ts            # 会话助手
└── ...                   # 其他实用程序

模式 (src/schemas/)

src/schemas/
├── site-configuration.ts # 配置类型定义
├── tables/               # 数据库表定义
│   ├── auth.ts           # 身份验证表(自动生成)
│   ├── payment.ts        # 支付表
│   └── index.ts          # 重新导出
└── ...                   # Zod 验证模式

环境 (src/env/)

src/env/
├── server.ts             # 仅服务器环境变量
└── client.ts             # 客户端安全环境变量

内容目录

content/
├── blog/                 # 博客文章(MDX)
├── docs/                 # 文档(MDX)
└── changelog/            # 更新日志条目(MDX)

关键文件

文件描述
src/configuration/metadata.ts网站名称、标题、描述、logo
src/configuration/navbar.ts带嵌套菜单的导航
src/configuration/sidebar.ts仪表板/管理的基于角色侧边栏
src/configuration/product.ts定价计划和产品
src/lib/auth/auth.tsBetter Auth 配置
src/app/globals.css主题颜色和全局样式
content/docs/meta.json文档侧边栏顺序

下一步