Client portal development

Your customers call
because they see nothing.

Where is my order, has that invoice been processed, which quote was it again. The same question every time, someone looking it up and calling back every time. A client portal takes that work away: your customer logs in and sees their own file, you see who looked at what.

Sound familiar

Why companies start on this.

01

The same question, every week

Status, planning, invoices, documents. Every one of them data you already have, but that your customer can only reach through you.

02

Everything goes through email

Attachments that get lost, versions that do not match, and afterwards no trace at all of who approved what and when.

03

Everyone sees too much or too little

A shared folder or spreadsheet has no roles. One wrong link and customer A is looking at customer B's file.

04

Your team works in three systems

Planning here, invoices there, client details in a third tool. Nobody knows which source is right anymore.

05

Growth means more manual work

Twice as many customers currently means twice as much looking up and forwarding. That does not scale with your revenue.

06

Your customers expect it

Everyone knows a portal from their insurer or supplier. Not having one now stands out.

How it works

From first call to a portal that actually gets used.

01

Work out who may see what

Which roles exist, which data belongs to which customer, and what an employee may do that a customer may not. This decides the rest of the build.

02

Connect to what you already have

Your accounting, CRM or planning stays the source. The portal shows that data; it does not become a fourth place where someone retypes the same thing.

03

Build with permissions in the database

Row-level security in Supabase, so every customer can only reach their own file. Even if someone skips the front end.

04

Roll out with a few customers

A pilot with a handful of users first, then everyone. Including a short walkthrough so your team can manage it themselves.

What you end up with
  • ✓Customers who see their own file
  • ✓Login with roles and permissions per user
  • ✓Integration with your accounting, CRM or planning
  • ✓An admin side where your team manages everything
  • ✓Repository and hosting in your name
Client portal development
from
€ 3,450fixed project price

Not the number of screens but the number of integrations and the permission structure drive the number.

The price depends mostly on the number of integrations, not the number of screens. After a half-hour call I know enough for a fixed number.

In detail
01

What exactly is a client portal?

A client portal is a protected part of your website where a client logs in and sees only their own data: jobs, invoices, documents, the status of a request. Not a new administration, but a window onto what you already have.

The confusion is usually in the name. Client portal, customer portal, service portal, dealer portal or simply 'a portal built' describe the same thing with a different audience in front of it. What it becomes depends on who logs in and what they are allowed to see.

Client portal

Your own clients log in for their file: quotes, jobs, invoices and documents, plus the status of what is running.

Supplier or dealer portal

Business partners with their own prices, orders and stock. Often several users per company and a role structure of its own.

Service portal

Reports, tickets and maintenance history in one place, so a fault no longer arrives through three mailboxes.

Internal portal

The same principle for your own team: planning, files and reporting, with permissions per role.

02

What a client portal costs

The number of screens drives the price far less than people expect. What moves the number are the integrations and the permissions: where the data comes from and who is allowed to see exactly what.

Three worked scopes with an amount next to each are on what a client portal costs; how pricing works in general is on pricing. In short: after a half-hour call one fixed price I hold myself to, with no paid run-up. Whether a portal pays for itself in your case is worked through in when a client portal pays for itself.

Integrations

Every source that has to come along — bookkeeping, CRM, planning, stock — is its own piece of work. One integration is a different project from four.

Roles and permissions

One type of user is simple. Clients, staff, admins and partners with different rights per record is the real work.

Existing data

Migrating history from an old system or a spreadsheet takes time, especially when the same client appears in it three times.

Self-management

If you want to change fields, copy or roles without me, I build an admin side for it.

03

Off-the-shelf portal software or custom

Portal software you rent per month exists, and for a standard process it is a fine choice. You are live quickly and pay per user. It pinches as soon as your process differs from what the package expects, and that is exactly why most companies end up here.

The honest rule of thumb: if the package fits eighty percent, take the package. If the difference sits in the part your clients judge you on, a package means years of paying for work you still have to build around it.

Package per month

Live fast, low risk, but your process bends to the software and you pay per user for as long as you use it.

Custom

The software bends to your process, connects to what you already have, and the code sits in your repository. One-off investment, then hosting.

04

What is always included

Regardless of size, this is always in it, because a portal without these things is not a portal but a liability.

  • ✓Logins with roles per user
  • ✓Permissions at database level, not just in the screen
  • ✓Documents and files per client
  • ✓An admin side for your own team
  • ✓Email notifications for what matters
  • ✓History of who saw what and when
  • ✓Integrations with your current systems
  • ✓Hosting inside the EU, code ownership yours
Reviews

Clients rate me
5 stars on average.

“I am extremely happy with the result of my new website for DoubleStreet Australian Cobberdogs, made by Webframer. From first contact, Webframer radiated expertise and creativity.”
Ben VorsteveldDoubleStreet Australian Cobberdogs
“Webframer helped me enormously with the Veldvisuals website. It is not only good to spar with Bas about building the site, but also in the aftercare and whenever changes have to be made. Recommended!”
Nick in 't VeldVeldvisuals
“Great to work with. Listens carefully to what we want. When we ask for changes, they are made expertly.”
Marieke van 't WoutVan Der Linde Mode & Lingerie
“Really pleasant to work with and short lines of communication!”
Hugo BrandwagtGoogle review
“The website looks great!! Definitely recommended!”
Jayden BresserGoogle review
“Excellent! Fast service and good contact!”
Devin de WaardGoogle review

Translated from the Dutch originals on Google.

Bas Voets, founder of Webframer
Who builds it

I am Bas Voets. Since 2021 I have been building websites, client portals and business software for small and mid-sized companies, from Hazerswoude-Dorp in the Netherlands. From first call to launch you talk to me, not to an account manager.

CoC 70168741 · since 2021 · Hazerswoude-DorpMore about me
Frequently asked questions
What does the price of a client portal depend on?
Mostly on how many systems get connected and how many different roles have to fit in it; those two usually cost more time than the portal itself. The number of screens counts for far less than people think. You get one fixed number for an agreed scope, and three worked scopes with an amount next to each are on what a client portal costs.
Is a customer portal the same as a client portal?
Yes. Both terms get used interchangeably and describe the same thing: a protected area where your customer logs in and sees their own data. Service portal, dealer portal or simply 'a portal' come up too. What it becomes in practice does not depend on the name but on who logs in and what they are allowed to see.
How long does it take?
Usually four to six weeks. If you do not know exactly what should be in it yet, we work that out in the first call; the scope and the price come out of it.
Can it connect to our current system?
Usually yes. If your package has an API, I connect to it. If not, we look at an export, an intermediate layer or a periodic sync. That is the first thing I check, because it decides the rest.
How safe is it when customers can log in?
The permissions sit in the database itself, not only in the screens. Technically every customer can only reach their own data, even if someone bypasses the front end. We do not store passwords ourselves and all connections are encrypted.
What if we want to extend it later?
That is the starting point. The code sits in your repository with documentation and migrations, so extending can be done by me, by your own team or by another developer.
We already built something with an AI tool. Can that come along?
Often yes, and it saves time because you already tried out what you want. I first judge what is usable and what is missing below the waterline. There is a separate track for that: vibecode to production.
Let's build

Tell me what you
want to build.

A half-hour call. You get an honest answer about what it costs, how long it takes and whether building it is smart at all.

This is what it looks like

The overview your team gets.

A working example, not a screenshot: change the period and hover over a bar. In a real portal this data comes from your accounting or planning, and every customer only sees their own rows.

app.jansen-interiors.com

Overview

Sample data · not real figures

Revenue in period
€331,000
Orders
768
Average order
€431
Outstanding
€55,000
2 overdue

Revenue per month

RevenueOrdersTarget
Revenue and orders per month
MonthRevenueOrders
Feb€18,40042
Mar€21,90051
Apr€19,70046
May€24,30058
Jun€27,80063
Jul€25,10055
Aug€22,60049
Sep€29,40068
Oct€31,20074
Nov€35,80086
Dec€41,30097
Jan€33,50079

Revenue per channel

€331KTotal
Webshop
€148,90045%
Quotes
€92,40028%
Subscriptions
€61,30019%
Marketplaces
€28,4009%

Everything on this screen comes from one fixed dataset in the page itself. In reality this comes from your database or accounting.

More working examples are on the demo page.

Bas Voets · Webframer
0:00 / 0:00
Client portal development · from € 3,450