Product tour

Everything the portal does, in one list

Two halves: what your clients see when they log in, and what you get for running the business behind it. Both ship in the same install — there is no edition to upgrade to.

Self-hosted · PHP 8.2 + MySQL · No per-seat pricing

What the client sees

One login each. Their workspace and nothing else — not your other clients, not your internal threads.

A separate, branded space for every client

A workspace is the unit of isolation. Every task, thread, file and invoice belongs to one, and access is checked on the server for each request rather than hidden in the interface. Clients can invite their own staff into their workspace without seeing yours.

  • Their logo and accent colour on their workspace
  • Uploaded logos stored on your own server, not hotlinked
  • Client-side staff invitations
  • Per-workspace access enforced server-side
  • Admins can switch between every workspace from one account
Three client workspaces listed in the admin area, each separately managed

What you get for running the business

The half your clients never see.

A retention early-warning score for every client

The most expensive thing an agency does is quietly lose a client. Every signal that predicts it is already in the portal — overdue invoices, aging tasks, chat that has gone silent, an unanswered message, an open support ticket — but scattered across separate screens where nobody connects them. Client Pulse scores each client 0–100 from those exact signals, ranks whoever needs attention first, tells you the specific reasons, tracks the trend day over day, and lets you raise a follow-up task in on

  • A 0–100 health score per client, banded Healthy / Watch / At-risk
  • Four weighted signals: billing, delivery, engagement, support
  • Plain-English reasons — you see WHY, not a mystery number
  • Daily trend so you can tell who is slipping
  • One-click follow-up task on any flagged account
  • Admin-only — clients never see a score about themselves

Built into every install

No add-on tier, no feature flags to buy.

Roles that mean something

Admin, client and staff differ in what the server will do for them, not merely in which buttons are rendered.

Notifications

In-portal alerts with unread counts, optional browser notifications, and reminder messages you can send a user directly.

Light and dark

A per-user theme preference and a saveable dashboard layout, both remembered across sessions.

Search across everything

One field that reaches tasks, threads, files, invoices and clients, scoped to what you are allowed to see.

Country blocking

Optional US-only access. Traffic is judged on the country header from your CDN, and unknown origins are allowed rather than shut out.

Export and import

Take the whole dataset out as a single file, or move an install to a new host by putting it back.

Rate limiting

Sign-in, signup and contact endpoints are throttled per source to blunt scripted abuse.

MySQL or SQLite

MySQL in production, with a SQLite path for a laptop trial. A built-in converter moves a SQLite install to MySQL.

Guided installer

Upload the files and open the site: a wizard creates the database, writes the config, makes the first admin and seeds the pages.

Where the work lives now, and where it would live

Across separate toolsIn the portal
Status updatesRebuilt by hand from email each weekA board the client opens themselves
ApprovalsA sentence in a reply, disputed a month laterA status change with a date on it
FilesAttachments across four inboxesAn upload area on the workspace they belong to
Urgent issuesA phone call to whoever answersAn emergency ticket with an alert and a resolution record
InvoicesA separate tool with no link to the workRaised beside the work, with the plan and payment attached
Client accessEveryone in one shared channelOne workspace each, isolated on the server

What adoption actually looks like

An afternoon, not a migration project.

Install it

Upload the files to ordinary PHP hosting and open the site. The installer does the database, the config file and the first admin account.

Create one workspace

Pick a single client to start with. Add their logo and colour, and invite them.

Move that client’s work in

Tasks, files and the conversation. One client is enough to tell whether it removes more email than it creates.

Bill from the same place

Raise the next invoice inside the workspace and see the month close without assembling a report.

Where it stops

A product page that lists only capabilities is a sales page. This is a new platform, and these are the things it does not do today. If one of them is a requirement for you, it is better that you know now.

  • No two-factor authentication. Sign-in is username and password. If you store material that warrants a second factor, weigh that before you migrate.
  • Files are not encrypted at rest. Uploads sit as ordinary files on your server, protected by the server's own access controls and nothing more.
  • No time tracking or timesheets. Invoices are written with line items; there is no timer feeding them.
  • No native mobile apps. The interface adapts to a phone browser, but there is nothing in an app store.
  • SMS is best-effort. Alerts go through carrier email-to-SMS gateways, which cost nothing and are not guaranteed to arrive. Treat them as a nudge, not as paging.
  • It is early. Launched in 2026 and shaped by its first customers. Try it on one client before you move your whole book across.

Everything above is on the list. What gets built first is decided largely by what early customers ask for, so if one of these is blocking you, say so.

What you need to run it

Deliberately boring requirements. It targets the shared hosting most small firms already pay for.

  • PHP 8.2 or later with PDO. No Composer, no Node, no build step.
  • MySQL for production. SQLite works for a trial, and a built-in converter moves you across.
  • FTP or a file manager. If you can upload a folder, you can install it.
  • A domain with HTTPS. Any standard certificate; nothing bespoke.

Because it is self-hosted, the database is yours. Nothing switches off if we stop building it, and the export lives in the admin area rather than behind a support request.

Product questions

Can a client see another client’s workspace?

No. Every request is checked against the workspace it touches, on the server. The interface hiding a link is not what stops it — the query does.

Can my clients message each other?

No, and that is deliberate. Paying customers talk within their own team. They reach you by raising a support request, which opens a direct channel to the site admin once it is activated. Admins can reach any workspace; workspaces cannot reach each other.

Is there a per-seat charge?

No. Plans are priced per workspace, and you add the people you need inside one. Current prices are on the pricing page.

Can I change the public pages without touching code?

Yes. Every page on this marketing site is stored in the database and edited from the admin area using the same block catalogue described above, including the landing pages used for ad campaigns.

Does it integrate with anything else?

PayPal for subscriptions, with webhook signatures verified server-side. There is an optional invoice sync for FreshBooks. Beyond that, integrations are thin today — assume it does not connect to a tool unless this page says it does.

What happens when I outgrow SQLite?

Run the built-in converter from the admin area. It moves the schema and the data into MySQL; you update the config and carry on.

How do I get my data out?

A full export from the admin area, as one file that the same install can import. You also have direct access to the database, because it is on your own server.

Try it on one client

Start free, set up a single workspace, and judge it on whether it removes more email than it creates.

Create your workspace