Skip to content

Open metrics

This site, by the numbers

Most portfolios ask you to take their word for it. These are the actual numbers behind this one — traffic, enquiries, measured reply time, tool usage. Published whether or not they flatter me.

Traffic

last 30 days

1,180

Page views

621

Unique visitors

First-party and cookie-free. No Google Analytics, no third-party script, no data leaving this server — which is also why these numbers are lower than a tracked site would report.

Published

Case studies
10
Articles
1
Words written
559

Enquiries

Received (excluding spam)
0
Median first reply
—

No median yet — that figure needs at least five replies before it means anything, and inventing one from two would be the exact dishonesty this page exists to avoid.

0

Checkups run

no runs recorded yet

6

Webhooks fired

counting since 2026-08-17

29

Questions asked

counting since 2026-08-17

What visitors actually experienced

last 30 days

Largest paint (p75)
3048ms

good is under 2500ms · 56 samples

Layout shift (p75)
0.003

good is under 0.1 · 87 samples

Interaction delay (p75)
336ms

good is under 200ms · 23 samples

Measured in real visitors' browsers — including slow phones on bad networks — and summarised at the 75th percentile against Google's own thresholds, so a fast average cannot hide a slow quarter. Collected first-party with no third-party script, and nothing identifying is stored: a metric, a number, a path.

Dependency health

This site runs its own checkup tool on its own composer.lock every week — 148 packages · audited 2026-09-28.

90/100

Every figure is measured from this site's own database, and each one states the window it covers. Nothing here is estimated, projected or rounded up. Where the data cannot support a claim, the claim is missing rather than invented.

See the live system health