Next.jsReactCorporate WebsiteStarter

clientNest — Next.js Business Template

By waleed-mirza

ClientNest is an agency client portal starter kit built on Next.js and Supabase, covering authentication, workspaces, invitations, clients, projects, milestones, tasks, files, approvals, invoices and notifications.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

3 previews
Desktop homepage1 / 3
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 3

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-17View source

What stands out

A quick read of the recorded project description.

01

Includes modules for authentication, workspaces, invitations, clients, projects, milestones, tasks, secure files, activity, deliverable approvals, invoices and in-app notifications

02

Built on Next.js and Supabase, with pnpm scripts for Supabase project setup, migrations and seed data

03

Provides an online read-only demo, and the DEMO_MODE environment variable can block writes on the public demo

04

Supports branding through CSS variables and four theme presets (harbor, slate, clay, ink), plus logo upload on the settings page

05

Deployment path is Vercel or Netlify with hosted Supabase, requiring auth callback URLs and environment variables

06

Invoices are records only, with no Stripe or online checkout; v1 explicitly does not include real-time chat, AI, SSO, internationalization or time tracking

Template Details

ClientNest is a client portal starter kit for agencies, built with Next.js and Supabase under the MIT license. The README states that v1.0 includes authentication, workspaces, invitations, clients, projects, milestones, tasks, secure files, activity logs, deliverable approvals, invoices and in-app notifications. The project offers an online read-only demo (the Harbor Studio story) and includes documentation for quick start, environment variables and deployment.

For use, the project requires Node 24.x LTS and pnpm 10.x, and does not use Docker. pnpm scripts handle Supabase login, project setup, migrations and optional seed data. Environment variables include the Supabase URL and anon key (required), the service role key (used only by scripts), the Resend email key (optional) and demo-mode variables. The deployment path is Vercel or Netlify with hosted Supabase, requiring applied migrations, configured auth callback URLs and environment variables.

On functional boundaries, the README makes clear that invoices are records only and do not include Stripe or online checkout; v1 does not include Stripe, real-time chat, AI, SSO, internationalization or time tracking. Client users can only view projects, shared files, submitted deliverables and sent invoices belonging to their own company. The public demo requires DEMO_MODE=true to block writes. Branding can be customized through CSS variables, theme presets and a logo upload on the settings page (PNG/JPEG/WebP; SVG is not supported).

Next.jsCorporate websiteStarter

Is it right for your project?

Use Cases

  • An agency needs to give clients a central portal to view projects, tasks, milestones and deliverables
  • A team wants to quickly build a client collaboration entry point on its existing Next.js and Supabase stack
  • An agency workspace needs to manage client companies, contacts, invitations and permission isolation
  • A client billing view needs to record invoice information without involving online payment

Suitable For

  • Developers or teams familiar with Next.js and Supabase
  • Agencies that need a client portal starter kit to build on
  • Projects that want to deploy with hosted Supabase and Vercel/Netlify

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    Requires Node 24.x LTS and pnpm 10.x; does not use Docker

  2. 2

    After running pnpm install, use pnpm supabase login and pnpm supabase:setup to configure the hosted Supabase project, migrations and .env.local

  3. 3

    Optionally run pnpm supabase:seed to create the Harbor Studio demo user, or run pnpm demo:files to upload demo files

  4. 4

    Deployment requires applying migrations, setting the Auth Site URL and Redirect URLs, and configuring environment variables on the host

  5. 5

    The public demo requires DEMO_MODE=true to block writes; never commit the service role key or import it into src/

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This listing covers the free version under the MIT license in the public repository; the free scope is that version's code and does not mean external services or third-party assets are free.

Must comply with when using

  • The code in this version may be used, modified, used commercially and distributed free of charge.
  • When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
  • The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.

Additional costs & items to verify

  • Demo images, fonts, icons and other third-party assets must be checked against their respective licenses; the code's MIT license alone does not determine this.
  • External services such as domains, hosting, databases, payments or AI may incur separate charges.
  • Only Node 24.x LTS and pnpm 10.x are supported; Docker is not used.
  • A hosted Supabase project URL (NEXT_PUBLIC_SUPABASE_URL) must be provided.
  • A Supabase anon/publishable key (NEXT_PUBLIC_SUPABASE_ANON_KEY) must be provided.
  • The service role key is only for scripts and must not be imported into src/ or committed.
  • The Resend email key is optional and is used for auth SMTP and optional notification emails.
  • The documented deployment path is Vercel or Netlify with hosted Supabase.
  • On deployment, the Auth Site URL and Redirect URLs must be set to the production domain.
  • The public demo requires DEMO_MODE=true to block writes; do not run seed data against a workspace containing real clients.
  • Logo upload supports only PNG, JPEG and WebP; SVG is not supported.
  • v1 does not include Stripe, real-time chat, AI, SSO, internationalization or time tracking unless the maintainers agree.
  • Invoices are records only, with no Stripe or online checkout; client users can only see projects, shared files, submitted deliverables and sent invoices belonging to their own company.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

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

Original README

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

Original README

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

Original README

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

Original README

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

Original README

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

Original README

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

Original 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.

Original README

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

Original 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.

Original 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.

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

Compiled by DeepSeek based on repository license and README ·2026-10-18. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.

Project checks & description sources

Template Information

Source platforms
GitHub
Documentation and maintenance reference score
More documented · 85 / 100
Technologies
Next.js · React
Website type
Corporate Website · Starter
How this score is calculated

Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.

What to verify for this project

Repository update recorded
2026-10-17
Screenshot last checked
2026-10-18

A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.

The catalog identifies Next.js as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.

Use a selection guide →

How this description was prepared

AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.

Review declaration: codex-user-requested-batch-review-20261021 · 2026-10-21

Inspect the recorded source material

SHA-256: eb7bf3d67bf51167b6046778e8554f1af65fe00f49d13b8363ca16dcdd0b9cdc

2026-10-18T22:40:33.522Z

Source file / repository
# 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.
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.