SEO MachineSoftware, growth, AI & sales, done for you

Service · Software developmentSoftware development

A client portal where customers find the answer before they email you

We build a client portal: a secure space where each of your customers logs in to see where their file stands, download what you delivered, sign or approve what needs approval and pay their invoices. Each client sees only their own data, enforced in the database itself; the portal reads from the tools you already use, so nobody types things twice.

What we do for you

  • A map of the questions your customers ask most (status, next step, documents, invoices) and the screen that answers each one
  • Per-client access: logins, roles (client, colleague, your team) and isolation of each client's data at database level
  • File status and timeline fed from your existing tools (CRM, spreadsheet, project tool) through their APIs, not by re-typing
  • Deliverables to download, documents to upload, approvals with a timestamp
  • Invoices and online payment through Stripe (see payments and checkout)
  • Email notifications when something changes, so clients do not have to check
  • dev, uat and prod environments, and a log of who saw or changed what

Who it is for

  • Fits: firms whose team spends hours answering "where is my file?" by phone and email (accountants, brokers, agencies, logistics, recruitment)
  • Fits: service businesses that send deliverables and invoices through scattered emails and links
  • Fits: companies that want a branded space for clients rather than a generic shared folder
  • Does not fit: a public marketing site; a portal is for people who already are your customers

The problem it removes

In most service businesses the same questions come back every day: has my document arrived, what is missing, when is the next step, where is the invoice. Each answer takes a few minutes, someone has to look in two tools, and the customer still waits. A portal answers those questions once, all the time, from the data you already hold.

How we build it

  1. Questions first. We list the ten questions your clients ask most and agree what the portal shows for each; anything else waits for version two.
  2. Connect, don't copy. We read status, documents and invoices from the tools you use (through their APIs) so your team keeps working where it works.
  3. Isolation by construction. Each client's rows are protected in the database with row security policies, not only hidden in the interface.
  4. Screens tested by real clients. A few customers try it on their phone at a uat address before anyone else sees it.
  5. Launch in steps. One client group first, then everyone, with a simple way to report a problem.

Why access is enforced in the database

A portal fails badly if one client can see another's file. We build on PostgreSQL, whose row security policies restrict, per user, which rows can be read, inserted, updated or deleted. Once row security is enabled on a table and no policy allows access, PostgreSQL applies a default-deny: no rows are visible. Superusers and roles with the bypass attribute ignore these policies, and table owners do too unless row security is forced, so we keep the application's own database role separate from administrators.

What we have built that comes closest

We have not yet delivered a portal under that name for a client, so we will not pretend otherwise. What we have built and run: a client cockpit for a wind-energy company in France, a password-protected hub indexing 23 courses from Drive and GitHub for an education institute in Germany, a creator-marketing platform in South Africa where creators have profiles and brands run campaigns, and our own operating system with a CRM pipeline and work items. A client portal uses the same parts: accounts, roles, data from other tools, documents, payments and notifications.

What we need from you

  • The list of questions clients ask and the people who answer them today
  • Access to the tools that hold the data (CRM, accounting, project tool), or their exports
  • Your branding and the wording you want clients to read
  • Two or three clients willing to test before launch

Questions we get

Can clients see each other's data by mistake?

The portal is designed so they cannot: each client's data is isolated in the database itself, and we test that one account cannot reach another's before launch. We also keep a log of access.

Do we have to change our CRM or accounting tool?

No. The portal reads from what you use, through their APIs or regular exports. If a tool offers no way to read its data, we tell you and propose the simplest workaround.

Is it a mobile app?

It is a responsive web app that works well on phones and can be installed on the home screen. We have not built native iOS or Android apps.

Can it take payments?

Yes, through Stripe in your name. The money goes to your account; card data stays with Stripe.

Sources

  1. PostgreSQL documentation: row security policies (checked 2026-10-06)
  2. Stripe Docs: Payment Links and invoicing (checked 2026-10-06)

Want to know what we would do first?

Tell us your business, your town and your website. We come back by email with a first plan: growth, AI agents, sales or all three.

Get your growth plan
Get your growth plan