Next.jsReact企业官网启动器

clientNest — Next.js 企业官网模板

作者 waleed-mirza

ClientNest 是一个基于 Next.js 和 Supabase 的机构客户门户起始套件,包含认证、工作区、邀请、客户、项目、里程碑、任务、文件、审批、发票和通知等功能。

看看你的网站会是什么样

浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。

3 个预览视图
桌面端首页1 / 3
桌面端截图首屏预览

由服务器浏览器实际访问页面后截取。

全部页面与视图 3

截图用于了解视觉与布局,交互效果请以实际项目为准。

采集于 2026-10-17查看来源

值得关注的模板亮点

从已有项目资料中,快速了解它的特点。

01

包含认证、工作区、邀请、客户、项目、里程碑、任务、安全文件、活动、交付物审批、发票和应用内通知等模块

02

基于 Next.js 和 Supabase 构建,使用 pnpm 脚本完成 Supabase 项目设置、迁移和种子数据

03

提供在线只读演示,并可通过 DEMO_MODE 环境变量阻止公开演示的写入操作

04

支持通过 CSS 变量和四种主题预设(harbor、slate、clay、ink)进行品牌定制,并可在设置页上传 Logo

05

部署路径为 Vercel 或 Netlify 配合托管 Supabase,需设置认证回调地址和环境变量

06

发票仅为记录,不包含 Stripe 或在线结账;v1 明确不包含实时聊天、AI、SSO、国际化和时间追踪

模板详细介绍

ClientNest 是面向机构(agency)的客户门户起始套件,采用 Next.js 与 Supabase 构建,遵循 MIT 许可证。README 说明 v1.0 包含认证、工作区、邀请、客户、项目、里程碑、任务、安全文件、活动记录、交付物审批、发票和应用内通知。项目提供在线只读演示(Harbor Studio 故事),并附带快速开始、环境变量、部署等文档。

使用上,项目要求 Node 24.x LTS 和 pnpm 10.x,不使用 Docker。通过 pnpm 脚本可完成 Supabase 登录、项目设置、迁移和可选种子数据。环境变量包括 Supabase URL 和匿名密钥(必需)、服务角色密钥(仅脚本使用)、Resend 邮件密钥(可选)以及演示模式相关变量。部署路径为 Vercel 或 Netlify 配合托管 Supabase,需应用迁移、设置认证回调地址和环境变量。

功能边界方面,README 明确发票仅为记录,不包含 Stripe 或在线结账;v1 不包含 Stripe、实时聊天、AI、SSO、国际化和时间追踪。客户用户仅能查看其所属公司的项目、共享文件、已提交的交付物和已发送的发票。公开演示需设置 DEMO_MODE=true 以阻止写入。品牌定制可通过 CSS 变量、主题预设和设置页面上传 Logo(PNG/JPEG/WebP,不支持 SVG)实现。

Next.js企业官网启动器

适合你的项目吗?

适用场景

  • 机构需要为客户提供一个集中查看项目、任务、里程碑和交付物的门户
  • 团队希望基于现有 Next.js 和 Supabase 技术栈快速搭建客户协作入口
  • 需要管理客户公司、联系人、邀请和权限隔离的机构工作区
  • 需要记录发票信息但不涉及在线支付的客户账单查看场景

适合人群

  • 熟悉 Next.js 和 Supabase 的开发者或团队
  • 需要客户门户起始套件并进行二次开发的机构
  • 希望使用托管 Supabase 和 Vercel/Netlify 部署的项目

上手与定制指南

结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。

  1. 1

    需要 Node 24.x LTS 和 pnpm 10.x,不使用 Docker

  2. 2

    运行 pnpm install 后,使用 pnpm supabase login 和 pnpm supabase:setup 配置托管 Supabase 项目、迁移和 .env.local

  3. 3

    可选运行 pnpm supabase:seed 创建 Harbor Studio 演示用户,或运行 pnpm demo:files 上传演示文件

  4. 4

    部署时需应用迁移、设置 Auth Site URL 和 Redirect URLs,并在主机上配置环境变量

  5. 5

    公开演示需设置 DEMO_MODE=true 以阻止写入,切勿将服务角色密钥提交或导入到 src/ 中

查看仓库使用说明

授权与来源资料

使用条件与限制

免费使用 · 保留许可声明

本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。

使用时需要遵守

  • 允许免费使用、修改、商用和分发该版本代码。
  • 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
  • 代码按现状提供;担保与责任限制以原许可证及适用法律为准。

额外费用与待核对事项

  • 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
  • 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
  • 仅支持 Node 24.x LTS 与 pnpm 10.x,不使用 Docker。
  • 必须提供托管 Supabase 项目 URL(NEXT_PUBLIC_SUPABASE_URL)。
  • 必须提供 Supabase 匿名/可发布密钥(NEXT_PUBLIC_SUPABASE_ANON_KEY)。
  • 服务角色密钥仅供脚本使用,不得在 src/ 中导入或提交。
  • Resend 邮件密钥为可选,用于认证 SMTP 和可选通知邮件。
  • 文档化部署路径为 Vercel 或 Netlify 配合托管 Supabase。
  • 部署时需将 Auth Site URL 和 Redirect URLs 设为生产域名。
  • 公开演示需设置 DEMO_MODE=true 阻止写入;不要对含真实客户的工作区运行种子数据。
  • Logo 上传仅支持 PNG、JPEG、WebP,不支持 SVG。
  • v1 不包含 Stripe、实时聊天、AI、SSO、国际化和时间追踪,除非维护者同意。
  • 发票仅为记录,不含 Stripe 或在线结账;客户用户仅能看到其所属公司的项目、共享文件、已提交交付物和已发送发票。
查看原文依据

Permission is hereby granted, free of charge

许可证原文

Docker is not used. Node **24.x** LTS and pnpm **10.x** only.

README 原文

| `NEXT_PUBLIC_SUPABASE_URL` | Yes | Hosted Supabase project URL |

README 原文

| `NEXT_PUBLIC_SUPABASE_ANON_KEY` | Yes | Anon / publishable key (or `NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY`) |

README 原文

| `SUPABASE_SERVICE_ROLE_KEY` | Scripts only | Never import in `src/` or commit it |

README 原文

| `RESEND_API_KEY` / `RESEND_FROM` | Optional | Auth SMTP and optional notification email |

README 原文

Documented path: **Vercel or Netlify + hosted Supabase**. See [Deployment](docs/deployment.md).

README 原文

2. Set Auth Site URL and Redirect URLs to your production origin.

README 原文

On a **public** demo set `DEMO_MODE=true` so writes are blocked. Reset with `pnpm demo:reset`. Do not run seed against a workspace that holds real clients.

README 原文

| Logo | Owner upload on `/app/settings`. PNG, JPEG, or WebP. No SVG. |

README 原文

Issues and pull requests are welcome. See [`CONTRIBUTING.md`](CONTRIBUTING.md). Use Node 24 and pnpm 10; never commit secrets; keep Stripe, live chat, AI, SSO, i18n, and time tracking out of v1 unless a maintainer agrees.

README 原文

Client users only see projects for companies they are contacts on, shared files, submitted deliverables, and sent invoices. Invoices are records only — no Stripe or online checkout.

README 原文
https://github.com/waleed-mirza/clientNest/blob/main/LICENSEhttps://github.com/waleed-mirza/clientNest/blob/main/README.md

DeepSeek 根据仓库许可证和 README 整理 ·2026-10-18。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。

项目核对记录与介绍依据

模板资料

来源平台
GitHub
资料与维护参考分
资料较完整 · 85 / 100
技术栈
Next.js · React
网站类型
企业官网 · 启动器
这个分数如何计算

本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。

这个项目需要核对什么

记录的仓库更新时间
2026-10-17
截图检查日期
2026-10-18

已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。

目录记录的主要技术栈是 Next.js。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。

查看具体选型方法 →

介绍的制作与核对状态

介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。

审核声明: codex-user-requested-batch-review-20261021 · 2026-10-21

查看当时使用的来源资料

SHA-256: eb7bf3d67bf51167b6046778e8554f1af65fe00f49d13b8363ca16dcdd0b9cdc

2026-10-18T22:40:33.522Z

来源文件 / 仓库
# ClientNest

Agency client portal starter kit (Next.js + Supabase), licensed under MIT. v1.0 includes auth, workspace, invites, clients, projects, milestones, tasks, secure files, activity, deliverable approvals, invoices, and in-app notifications.

**Live demo:** [https://clientnest-app.netlify.app](https://clientnest-app.netlify.app) (read-only Harbor Studio story)

Docs: [`docs/quick-start.md`](docs/quick-start.md) · [all guides](docs/)  
License: [MIT](LICENSE) · Contributing: [`CONTRIBUTING.md`](CONTRIBUTING.md) · Security: [`SECURITY.md`](SECURITY.md) · Support: [`SUPPORT.md`](SUPPORT.md)

Repository: [github.com/waleed-mirza/clientNest](https://github.com/waleed-mirza/clientNest)

## Fastest path

```bash
pnpm install
pnpm supabase login          # your terminal; opens a browser
pnpm supabase:setup          # hosted project, migrations, .env.local
pnpm supabase:seed           # optional Harbor Studio users
pnpm demo:files              # optional Harbor files in Storage
pnpm dev
```

Open [http://localhost:3000](http://localhost:3000). Full numbered steps: [Quick Start](docs/quick-start.md).

Docker is not used. Node **24.x** LTS and pnpm **10.x** only.

## Environment variables

Copy from [`.env.example`](.env.example), or let `pnpm supabase:setup` write the Supabase values. Full table: [Environment reference](docs/environment.md).

| Variable | Required | Notes |
| -------- | -------- | ----- |
| `NEXT_PUBLIC_SUPABASE_URL` | Yes | Hosted Supabase project URL |
| `NEXT_PUBLIC_SUPABASE_ANON_KEY` | Yes | Anon / publishable key (or `NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY`) |
| `SUPABASE_SERVICE_ROLE_KEY` | Scripts only | Never import in `src/` or commit it |
| `RESEND_API_KEY` / `RESEND_FROM` | Optional | Auth SMTP and optional notification email |
| `DEMO_MODE` / `NEXT_PUBLIC_DEMO_MODE` | Optional | Read-only public demo only |
| `NEXT_PUBLIC_DEMO_URL` | Optional | Absolute URL for “Open the live demo” on the landing page |

Never commit `.env.local` or real secrets.

## Deploy

Documented path: **Vercel or Netlify + hosted Supabase**. See [Deployment](docs/deployment.md).

1. Apply migrations (`pnpm supabase:setup` or `db push`).
2. Set Auth Site URL and Redirect URLs to your production origin.
3. Set the environment variables above on the host (do not put the service-role key on the host unless you deliberately run admin scripts there).
4. Deploy with Node 24. Netlify uses `netlify.toml` (`pnpm build`).

`NEXT_PUBLIC_DEMO_URL` is optional. The app runs without it; the landing page falls back to local sign-in.

## Demo logins (after seed)

Password `Harbor-Demo-24`

| Email                    | Role                |
| ------------------------ | ------------------- |
| `[email protected]`   | Harbor Studio owner |
| `[email protected]` | member              |
| `[email protected]` | client              |

On a **public** demo set `DEMO_MODE=true` so writes are blocked. Reset with `pnpm demo:reset`. Do not run seed against a workspace that holds real clients.

## Rebrand

Visual tokens live in `src/app/globals.css`. Owner Settings (`/app/settings`) sets name, logo, and one of four presets.

| Layer        | Where                                                                                        |
| ------------ | -------------------------------------------------------------------------------------------- |
| Type         | IBM Plex Sans, Source Serif 4 (letterhead), IBM Plex Mono — loaded in `src/app/layout.tsx`   |
| Color        | CSS variables `--background`, `--foreground`, `--accent`, `--muted`, `--surface`, `--danger` |
| Presets      | `harbor`, `slate`, `clay`, `ink` via `data-theme`                                            |
| Light / dark | Personal toggle (`localStorage` key `clientnest-color-scheme`). Print stays light.           |
| Logo         | Owner upload on `/app/settings`. PNG, JPEG, or WebP. No SVG.                                 |

## Checks

```bash
pnpm lint
pnpm format:check
pnpm typecheck
pnpm test
pnpm rls:test          # linked hosted project
pnpm test:e2e
pnpm build
pnpm secret:scan
```

GitHub Actions runs lint, format, types, Vitest, build, and Playwright. RLS stays a linked CLI command.

## Contributing

Issues and pull requests are welcome. See [`CONTRIBUTING.md`](CONTRIBUTING.md). Use Node 24 and pnpm 10; never commit secrets; keep Stripe, live chat, AI, SSO, i18n, and time tracking out of v1 unless a maintainer agrees.

Client users only see projects for companies they are contacts on, shared files, submitted deliverables, and sent invoices. Invoices are records only — no Stripe or online checkout.
反馈内容错误

看看同类模板

对比同技术栈与用途的模板,找到更适合的视觉与内容结构。