ProjectLiveReference

Invoicing portal.
Built to fit, per person.

Off-the-shelf invoicing knows "customer → invoice". This business bills differently: services to individuals, across several locations, per client. So a portal was built for exactly that.

Invoicing Portal — built to fitInvoicing Portal — built to fit

When off-the-shelf invoicing doesn't fit

Off-the-shelf invoicing thinks in a straight line: one customer, one invoice, one address. For many businesses that is enough. Not for this one.

Here the client who pays the invoice is not the person who receives the service. One client runs several locations; at each location, individual people are looked after; and each of those people gets their own treatments. Billing happens per client, collected — but traceable down to the individual person. The data reality is four levels deep: "client → location → person → service".

This is exactly where generic software gives up. You can force it — locations into a notes field, people typed into the invoice text. The monthly total still adds up, but nothing is findable anymore, and every correction is manual work.

What was built

Instead of pressing reality into a foreign schema, the schema was built from reality. The portal knows the four levels natively. A dashboard shows revenue per month and total, customer and location counts, the latest activity. Access is through the existing Google account, for a fixed, pre-authorised set of people.

Architecture: a lean React app in the browser, Firebase behind it — a real-time database that mirrors every change across all views instantly, and a Cloud Function for email dispatch. The data sits in an EU region.

The PDF generation runs on two tracks — directly in the browser for the instant preview, server-side for the archive-grade version.

Editorial illustration: a bespoke web-app window with a dashboard and revenue chart, wired to a Firebase service stack — Auth, Firestore, Functions, Hosting — in the europe-west1 region, status live. Editorial illustration: a bespoke web-app window with a dashboard and revenue chart, wired to a Firebase service stack — Auth, Firestore, Functions, Hosting — in the europe-west1 region, status live.
A custom-built web app on the Firebase stack — Auth, Firestore, Cloud Functions and Hosting in the EU region, live in production.

A bespoke solution isn’t more expensive because it does more. It’s cheaper to run because it does exactly what’s needed — and none of it is awkward. The effort sits once in the build, not every day in the use.

That is exactly where I work — on software that adapts to the business, GDPR-compliant and on infrastructure you keep in your own hands.

More about Aeterna Labs →

Status

In production. In daily use at the client.

Guided invoicing

A five-step flow — client, period, locations, people, preview — walks through exactly the decisions that come up.

Invoices that meet the standard

Each invoice is rendered as a PDF in the DIN 5008 letter layout, including a SEPA QR code that any banking app reads directly.

Dispatch in one click

The finished invoice goes out as a PDF attachment straight from the portal, optionally with a copy to the business's own bookkeeping.

Why this is here

This portal was built for a single business. Even so, it stands in for a question every small company faces: do I bend my process to the software — or the software to my process?

Off-the-shelf is the right answer as long as your workflow matches the standard. The moment it doesn't, you pay the difference every day in workarounds. A tailored solution flips that: built right once, then invisible in the background.

Rechenwerk grew out of this
Rechenwerk

Need something like this?

If your billing or admin process doesn't fit the standard drawer, a conversation is worth more than you'd think.

Send an email