Route WPT 05 BRWTR · Public demo · reusable build pattern
Brightwater, a website and operations portal in one
A fictional company that shows the portal pattern in real code: a marketing site, a role-based portal, and the lead-to-job pipeline between them.
HQ, region, branch, technician
website, leads, and jobs connected
01Context
Client code stays private, so this is where the pattern can be read line by line. Brightwater Home Services is a fictional company with realistic data.
It was scaffolded from a reusable engine I built, so standing up a new client is a rebrand and a deploy, not a rebuild.
02Key decisions
A lead from the website usually gets lost between an inbox and a spreadsheet.
- Choice
- The public form writes a lead straight into the database, and staff convert it into a scheduled job in one click.
- Tradeoff
- The website and the portal share one schema, so they deploy together.
Role checks in the interface alone are easy to get around.
- Choice
- The same four-tier hierarchy as the client portal, enforced in PostgreSQL row-level security.
- Tradeoff
- Policies take more work than interface checks, and are much harder to bypass.
03Evidence
- A marketing site with SEO basics, a validated contact form, and a honeypot for bots.
- A leads inbox, a jobs manager, and admin screens for users, branches, and regions.
04Results
- Anyone can read how the client-grade pattern works without seeing client code.
05Stack
Next.js · TypeScript · Supabase · PostgreSQL RLS · Vercel
Want this kind of work on your product?
Email me