Client portal
Accounts, roles and request tracking in one place.

Clients and the team track every request in one place, each with the right permissions.
Reference system: a need I come across often, documented with the exact architecture I would put in place. Other client work is presented in meetings.
Problem
Communication goes through email, WhatsApp and spreadsheets. The client has no idea where their request stands.
The team answers the same question ten times and documents get lost in attachments.
Context
- Users
- Clients, operations team, administrators.
- Current process
- Requests by email, tracking in a shared spreadsheet, documents sent as attachments.
- Constraints
- Each client sees only their own data, simple access with no training, useful notifications rather than noise.
- Tools in place
- Shared spreadsheet
- Drive
Solution
A portal with authentication, roles and access rules enforced at database level. Clients submit and track their requests, the team moves them forward, and every status change triggers the right notification.
Payments and documents are attached to the request they belong to.
Why this approach. Security is guaranteed by the database (Row Level Security), not just by the interface: a display bug cannot expose another client's data.
Architecture
Interface
- Web portal Responsive interface, a client view and a team view, deployed on Vercel.
Data
- Supabase Auth Secure sign-in, invitations, client, team and admin roles.
- Postgres + RLS Access rules are written into the database: each client can only read their own rows.
- Storage Documents attached to requests, with the same permissions as the data.
Automation
- n8n Listens for status changes and sends the right notification to the right recipient.
Output
- Payment Online payment through a payment provider's API, linked to the case.
- Email Clear notifications: what has changed, and what is expected of you.
Features
- Sign-in and rolesClient, team, administrator: everyone sees and does exactly what concerns them.
- Data isolationPermissions are enforced by the database itself.
- Status trackingEach request moves through clear stages, visible on both sides.
- Attached documentsNo more lost attachments: everything is in the case file.
- Automatic notificationsThe client is told when things move, without anyone having to remember.
- Online paymentPayment is made from the case file and updates its status.
Target result
- A single source of truth per client.
- Far fewer "where is my request?" messages.
- Documents found in one click.
How it is measured
- Volume of follow-up emails
- Processing time per status
- Portal adoption rate among clients
What I do
- UX of the client and team journeys
- Interface design
- Data model and RLS rules
- Authentication
- n8n notifications
- Payment integration
- Deployment
Try it.
A working version of the system, with sample data. Nothing is pre-recorded: it all runs in your browser.