Skip to content
HHans Martens Dev

Client Portal on an Astro 7 Website: How It Works

A private area of a business's own website where each client signs in with an emailed link and sees the work being done for them, and their invoices. Which businesses need one.

H

Hans Martens

6 min read
Table of contentsShowHide

What a client portal is

A client portal is a private area of a business’s own website that clients sign in to. Each client sees only the work being done for them: how far it has got, what is needed from them, and their invoices. The portal is where all of that lives, and when they have a question they write it there rather than in a new email.

Without one, all of that sits in a trail of emails — the update from three weeks ago, the attachment somebody has to go looking for, the question that gets asked again because the answer is buried.

It is not an app, and it is not a separate service with its own login screen and its own monthly bill. It is the same website, with part of it reserved for the people the business works for.

This one runs here, on hansmartens.dev. I built it to give people access to part of a website without sending them somewhere else to get it.

What is inside one

A client signs in and lands on a page about the work being done for them, and nothing of anyone else’s.

Each project shows where it has got to and what has happened, with dates. A separate list shows what the project needs from the client — the photos, the final text, the sign-off — with whatever has arrived already ticked off. Their invoices are there, with what is still to pay.

And there is a box for asking a question. What a client writes there reaches the business with their name and their project already attached, so nothing has to be explained from scratch. A copy goes to the client’s own inbox, and the answer comes back to them there.

The business keeps the projects up to date as the work moves on, and a client sees the change the next time they open the page.

How signing in works

A portal is a page on the business’s own website, at the business’s own address and in the same design as the rest of the site. Until somebody signs in, that page is this form.

A client types the email address the business knows them by, and a link arrives. Clicking it signs them in. There is no password to choose and nothing to install.

The link is good for fifteen minutes and one click. Once they are in they stay signed in for a day, and after that they ask for another link.

There is no signup form and no account for anybody to create. The business adds a client — a contact in the bookkeeping it already uses, or a line in the site’s own list — and nobody adds themselves.

Which businesses need one

Agencies and studios, whose clients want to know where a project stands without having to ask.

Photographers and video studios, whose jobs run through phases over weeks.

Architects, accountants, consultants, planners — anyone billing for work that takes long enough that the client starts to wonder about it.

The common thread is a business running work for several clients at once, and clients who want to know where their project stands and whether anything is needed from them. The portal answers at any hour, so nobody has to write and ask.

How it differs from a members area

A members area does the opposite.

A members area gives everyone the same. There is one set of hidden content and every member sees all of it — minutes for a club, material for a course, posts kept for readers who asked. Nobody has their own records, because there are none to have.

A client portal gives each person their own. Two clients signing in see two different sets of pages, because the whole point is the work being done for that one client.

Which one a website needs comes down to whether the people signing in are looking at the same thing or at different things.

Why it is safe

No passwords. There is none to guess, none to steal, and none that somebody also used on a site that was later broken into. There is none for the business to store either, and none for anybody to reset.

The link works once. Fifteen minutes, one click, and then it is dead. A link left sitting in an inbox, or forwarded to the wrong person by mistake, opens nothing.

Nobody sees another client’s work or invoices. Asking for an invoice that belongs to somebody else gets the same answer as asking for one that does not exist, so nobody can even work out that it is there.

Access can be ended at any moment. A client who loses a laptop can sign out everywhere at once, and it takes effect straight away. When a business stops working with someone, taking them off the list shuts them out the next time they open a page.

The sign-in page gives nothing away. An address that belongs to nobody gets the same answer as one that belongs to a client. Otherwise the form becomes a way of finding out who a business works for.

Invoices cannot be stumbled on. An invoice document has no web address of its own. Nobody finds one by guessing, and nobody shares one by accident.

Portal pages stay out of search results. Search engines are told not to index them, so nothing from inside a portal turns up in a search.

Why it runs on my own website

To make it work and to test it. Building for yourself is the best way, because you can test it all the time — on the site you use every day, where you would notice the morning it broke.

I built this and a members area because I’m interested in this kind of solution on an Astro website, for the businesses and clubs and other organisations that need one. A business needs the client portal. A club needs the members area. It is interesting how it works, and it has to be safe.

Also worth reading

Client Portal — the one I built, and what it would be on your website.

Members Area — part of a website only its members can read, closed to everybody else.

Share:

Related Posts

Members Area on an Astro 7 Website: How It Works

A members area reserves part of a website for a group who sign in with an emailed link. What it is, which websites need one, and why it is safe.

HHans Martens
6 min read

Why I Use Claude Code for the Work I Do

Why Claude Code — running on Fable 5 — has become the coding partner I reach for on every Astro build. What it is, how I use it, and where it earns its keep.

HHans Martens
6 min read

Core Web Vitals in 2026: LCP, INP & CLS Explained

Core Web Vitals explained in 2026 — what LCP, INP, and CLS measure, the thresholds Google uses, and how I improve Core Web Vitals on every Astro build.

HHans Martens
8 min read

Follow along

Stay in the loop — new articles, thoughts, and updates.