包含认证、工作区、邀请、客户、项目、里程碑、任务、安全文件、活动、交付物审批、发票和应用内通知等模块
clientNest — Next.js 企业官网模板
作者 waleed-mirza
ClientNest 是一个基于 Next.js 和 Supabase 的机构客户门户起始套件,包含认证、工作区、邀请、客户、项目、里程碑、任务、文件、审批、发票和通知等功能。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 3
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
基于 Next.js 和 Supabase 构建,使用 pnpm 脚本完成 Supabase 项目设置、迁移和种子数据
提供在线只读演示,并可通过 DEMO_MODE 环境变量阻止公开演示的写入操作
支持通过 CSS 变量和四种主题预设(harbor、slate、clay、ink)进行品牌定制,并可在设置页上传 Logo
部署路径为 Vercel 或 Netlify 配合托管 Supabase,需设置认证回调地址和环境变量
发票仅为记录,不包含 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 和 Supabase 技术栈快速搭建客户协作入口
- 需要管理客户公司、联系人、邀请和权限隔离的机构工作区
- 需要记录发票信息但不涉及在线支付的客户账单查看场景
适合人群
- 熟悉 Next.js 和 Supabase 的开发者或团队
- 需要客户门户起始套件并进行二次开发的机构
- 希望使用托管 Supabase 和 Vercel/Netlify 部署的项目
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
需要 Node 24.x LTS 和 pnpm 10.x,不使用 Docker
- 2
运行 pnpm install 后,使用 pnpm supabase login 和 pnpm supabase:setup 配置托管 Supabase 项目、迁移和 .env.local
- 3
可选运行 pnpm supabase:seed 创建 Harbor Studio 演示用户,或运行 pnpm demo:files 上传演示文件
- 4
部署时需应用迁移、设置 Auth Site URL 和 Redirect URLs,并在主机上配置环境变量
- 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 原文
https://github.com/waleed-mirza/clientNest/blob/main/LICENSEhttps://github.com/waleed-mirza/clientNest/blob/main/README.mdClient 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 原文
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.
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

ai-website-cloner-template
Clone any website with one command using AI coding agents
Next.js · 启动器

Next.js SaaS Starter
Next.js SaaS Starter 是 Next.js 官方维护的 SaaS 起点模板,定位介于学习资源和可直接部署的脚手架之间。
Next.js · SaaS

Next.js Commerce
Next.js Commerce 是 Vercel 团队维护的电商启动模板,基于 Next.js App Router 构建,采用服务端渲染、React Server Components、Server Actions …
Next.js · 电商

Next-js-Boilerplate
Next-js-Boilerplate 是一个面向 Next.js 16、Tailwind CSS 4 和 TypeScript 的启动器,核心定位是开发者体验优先。
Next.js · 启动器

tailwind-nextjs-starter-blog
tailwind-nextjs-starter-blog 是一个面向个人技术博客的 Next.js 与 Tailwind CSS 启动模板,其 v2 版本基于 App Router 与 React Server Comp…
Next.js · 博客

next-forge
Production-grade Turborepo template for Next.js apps.
Next.js · 启动器
