Client portals customers sign in to.
Bookings, documents and payments, where each customer sees only their own records. Tested as every role before release.


What customers get today
A portal is where trust is won or lost, and most of them are held together by email.
Email threads and shared folders
Documents, bookings and invoices are spread across inboxes, with no single place for the customer to look.
One customer seeing another's data
The worst bug a portal can have, and the easiest one to ship by accident.
Payments bolted on
A payment link here, a spreadsheet of who paid there.
Portal software that doesn't fit
Off-the-shelf portals bend your process to theirs, and your brand to their template.
How it goes with Appbricx
Your agent builds the portal. The database keeps customers apart.
Sign-in for each kind of user
Customers, staff and admins as roles, with email, magic link or Google sign-in.
app.config.tsEach customer's own records
SQL policies tie every booking, document and invoice to its customer, and the database enforces them.
db/accessBookings and documents
Pages for booking, uploading and downloading. A generated PDF, such as an invoice, is a file of the app: whoever can read the row can open it.
routesctx.pdfPayments
Stripe or Razorpay on your own account, called from a server action that sets the amount. The key is a secret your code never holds.
server/ctx.secrets.refMessages that go once
Confirmations and reminders by email, SMS or notification, sent from workflows once, even after a retry.
workflowsmessages/Tested as every customer
verify signs in as each role and tries to read what it shouldn't, before every release.
verify
What you gain
Your brand, your domain
The portal is your React code on your own domain with HTTPS, not someone else's template.
No cross-customer leaks
Row-level security decides what each customer reads, and every release proves it as every role.
Payments in the flow
Customers book and pay in one place, and a webhook from the provider marks the booking paid.
A way back
A snapshot before every production change, and a rollback in one call when a change goes wrong.
Give your customers one place to go
Start free, connect your agent and describe who signs in to the portal and what each of them may see.