Web Development

Client Portal Development Services

A client portal exists to stop work arriving by email attachment. It gives each client one authenticated place to see their documents, status, and invoices — and gives you an audit trail of who saw what, and when.

Discuss your project

What we build

Portals vary less than people expect. Nearly every one needs these five things; the differences are in the rules around them.

Document exchange

Upload, versioning, and controlled download, with the file store separated from the application so documents are never served straight off the web server. Expiring links for anything sent outside the portal.

Role-based access

The part that is always underestimated. A client contact, a client's accountant, your staff, and your administrators all see different records — enforced in the database query, not by hiding buttons in the interface.

Status and milestones

Whatever your clients currently phone to ask about. Replacing the "where are we with this?" email is usually where a portal pays for itself fastest.

Messaging and requests

Threaded messages attached to a matter, case, or project, so the conversation stays with the record instead of in someone's inbox. Email notifications out, replies back in.

Invoices and payments

Current and historical invoices, with card or bank payment through Stripe or your existing processor if you want payment collected in the portal.

Audit trail

An append-only log of logins, document views, downloads, and changes. For regulated work this is often the reason the portal is commissioned at all.

Built around your industry's rules

Law firms need matter-level separation and conflict checks: a portal that lets one client see a document filed under another matter is a professional problem, not a bug. Retention rules also differ by jurisdiction, so deletion has to be deliberate rather than a cascade.

Accounting firms need portals that survive a filing deadline, when every client logs in during the same week, and that handle the request-and-chase cycle for missing documents — usually the single biggest source of manual work.

Financial services add consent and disclosure records, and frequently need data to stay in a named region. That is an architecture decision made at the start, not a hosting setting changed later.

Agencies want the portal to look like their own product, because their clients should not see a third party's branding. Full white-label is the default for us; our name appears nowhere in the interface unless you want it there.

How we deliver

  1. 01

    Map the permission model first

    Before any interface work, we write down every role and exactly which records each can read, create, change, and delete. This document is the specification, and it is the thing we test against.

  2. 02

    Build the thinnest useful portal

    One client type, one document flow, running on staging. You put real documents through it and find out what the permission model got wrong while changing it is still cheap.

  3. 03

    Widen it

    Remaining roles, notifications, invoicing, and the integrations with whatever system holds your client records.

  4. 04

    Security review and handover

    Access control tested role by role, including the cases where a user edits a URL to reach a record they should not see. Then the runbook, and your team deploys it once with us watching.

What you can hold us to

Not claims about ourselves — terms we write into the engagement.

  • You own the source code, designs, and documentation on payment, with no conditions attached.
  • Hosting and third-party accounts are in your name from day one, so there is nothing to transfer at the end and nothing we can withhold.
  • A defect against the agreed scope is fixed at our cost. A change to that scope is quoted as a change. Both are defined in writing before work starts.
  • The permission model is delivered as a written document, not only as code, so the next developer can see what the rules are meant to be.
  • Our branding appears nowhere in the portal or its emails unless you ask for it.

Common questions

Tell us what you need

Describe the problem and we will come back with scope, timeline, and a rate. No obligation to proceed.

Get in touch