cd ../use-cases
Staffing & matchingVitalMatches2026

ZZP Portal for VitalMatches

From logged hours to a paid invoice, without Excel or email. An all-in-one portal where freelancers (ZZP'ers) onboard themselves, log their hours, get them approved by the client in one click and receive an invoice in their own branding, generated automatically.

▶ live demo · sample data

Log hours
Client approves
Invoice created
Paid

Timesheet

Week 39 · Home care

Mon

8h

Tue

8h

Wed

8h

Thu

8h

Fri

6h

Total38 hours
Submit hours ✓
VitalMatches home page
From hours to invoice in four steps
Clients approve hours in one click
0 click
for the client to approve hours
0
portal screens for freelancers
0
API routes across the platform
01
The challenge

VitalMatches matches freelance professionals with clients. Every period, each freelancer had to collect hours in spreadsheets, email them around for sign-off, build an invoice by hand and then chase the payment, while VitalMatches checked every invoice and booked it manually. Slow, error-prone and frustrating for everyone.

02
The solution

I designed and built Mijn VitalMatches, a portal that covers the whole chain. Freelancers onboard themselves and set up their own branding once. From then on they only log hours: the client approves them via a secure link, the invoice is generated automatically as a PDF in the freelancer's style, and it flows straight into the accounting program for bookkeeping and payment tracking. Security is built in: email-code two-factor login, trusted devices and hashed, single-use approval links.

03
The result

Freelancers only log their hours; approval, invoicing and payment tracking happen automatically, so there's no Excel, no emailing back and forth and no chasing payments. Clients approve without creating an account, and VitalMatches gets consistent invoices that land in the bookkeeping on their own. The portal is live as Mijn VitalMatches on vitalmatches.nl.

How it works

1

Self-onboarding

Invite, password and email-code login. Freelancers enter IBAN, VAT and KvK details and upload their documents; VitalMatches reviews and approves in the admin panel.

2

Own branding in 3 steps

A welcome wizard for logo, company details and invoice settings: colours, numbering and payment terms.

3

Log hours per assignment

A clear timesheet per day, week or month, including kilometres or fixed amounts, with automatic reminders for anything still open.

4

Client approves in one click

A secure link by email, no account needed. Approve, adjust with an explanation or reject, per submission or in one weekly overview.

5

Invoice created automatically

Right after approval a PDF invoice is generated with the freelancer's logo and colours, KvK, VAT and IBAN filled in. Duplicate invoices are impossible by design.

6

Booked and tracked

Approved invoices are booked in the accounting program, the client invoice is drafted at the client rate, and payment status syncs back so freelancers see the moment they're paid.

➜ cat package.json | grep stack
"Next.js""TypeScript""Supabase""React-PDF""Accounting Program API""Microsoft Graph""Tailwind CSS v4"
next use case →
CISO Masterclass website
A premium website the client runs entirely on their own