Selected work

Case studies.

Seven projects built end to end — architecture, backend, frontend and the infrastructure underneath. Each one is described in terms of the problem it solved and the engineering it took.

2024

Verivello

AI-powered UK company intelligence platform

A live subscription platform that turns raw UK company filings into plain-English due diligence, with an AI agent that answers questions about any company — ask it anything at verivello.org.

The problem

Companies House publishes millions of filings, but they are raw, scattered across registers and hard for a non-specialist to read. Businesses need to know who they are dealing with — is a company real, active, solvent, who owns it — without wading through PDFs across a dozen sources.

What I built

  • Search and profile pages across the full UK register — millions of companies — served from a local Companies House mirror for speed.
  • A data layer that cross-references multiple official sources: Companies House, HM Land Registry, The Gazette, the FCA and ICO registers, charity and sanctions data.
  • An AI assistant that answers natural-language questions about any company and writes due-diligence summaries, grounded in the underlying records so it does not invent answers.
  • Downloadable PDF due-diligence reports, company-monitoring alerts, and subscription billing via Stripe with plan-gated features.
  • The full stack underneath — accounts, entitlements, streaming responses, caching and the infrastructure to run it.

The result

Live and operating as Verivello — a real subscription product, built and run end to end: the data pipelines, the AI layer, the billing and the infrastructure. The AI agent is public at verivello.org, where anyone can ask about any UK company for free. Not a demo or a prototype.

StackPHP, SQLite, LLM / AI integration, Stripe, Companies House API, multi-source data pipelines, server-sent events

The engineering challenge is less any single feature than keeping a dozen data sources correct and current, grounding an AI assistant in real records so it does not hallucinate, and doing it fast enough to feel instant.

2026

World Hot Springs

Worldwide directory — automated data pipeline & SEO

A directory of hot springs, geysers and thermal bathing sites worldwide — 1,477 springs across 69 countries, each mapped, described and photographed.

The problem

Information about the world’s hot springs is scattered — a paragraph on a travel blog here, a data point in an open dataset there, a photo somewhere else. There was no single, structured place to find where thermal springs are, what they are like, and see them on a map.

What I built

  • An automated pipeline that sources hot-spring locations and facts from open data (Wikidata) and pulls correctly-licensed photography from Wikimedia Commons.
  • Enrichment and normalisation into a clean dataset — location, country, description and imagery per spring — across 1,477 sites in 69 countries.
  • Programmatic pages for every spring and country, each with maps, photos and structured data for search engines.
  • A content-quality rule that keeps thin pages out of the search index, so only substantial pages are exposed to Google.
  • The full stack and hosting underneath, served through Cloudflare.

The result

A live, browsable directory of the world’s hot springs, generated and kept current from open data rather than entered by hand — which is what makes it possible to cover 1,477 sites across 69 countries as a solo build.

StackPHP, Wikidata & Wikimedia Commons pipelines, structured data / JSON-LD, maps, Cloudflare

The interesting part is the pipeline: turning messy open data and mismatched photo licences into one consistent, mappable dataset — and being disciplined about only indexing pages that are genuinely useful.

2026

ArchStudent

Learning platform for architecture students

A free “process school” for architecture students — teaching how to design, not just what to copy.

The problem

Architecture students are shown finished buildings and told to reproduce a look, but rarely taught the underlying process — the frameworks, the tooling and the real-world standards and dimensions that turn an idea into a workable design. The good material is scattered, paywalled or aimed at practising professionals.

What I built

  • A free content platform organised around design frameworks, software tutorials and standards & dimension guides — the “how to think” rather than the “what to copy.”
  • A clean, distraction-free reading experience built for long-form learning, fast on any connection.
  • A structured, SEO-focused content architecture so each guide is discoverable and stands on its own as a landing page.
  • Served from a lightweight PHP stack behind Cloudflare — fast to load, cheap to run and simple to maintain.

The result

Live at archstudent.com — a free, growing library that teaches architecture students the process behind good design, built and deployed end to end.

StackPHP, JavaScript, structured content architecture, SEO, Cloudflare

The focus here is content architecture and discoverability: structuring a teaching library so each guide is easy to read, easy to find and easy to extend, without a heavy CMS behind it.

2026

GoodPing

Website monitoring & network tools

A free suite of website and network diagnostic tools, plus uptime monitoring that watches your sites and tells you the moment they go down.

The problem

When a site goes down or slows, you need a straight answer — is it really down, or is it DNS, TLS or routing? Most tools that answer this are cluttered, ad-heavy, or hide the basics behind a sign-up.

What I built

  • Fourteen free diagnostic tools, no sign-up, run live from London: website status, redirect and response-time checks; ping, open-port, IP and WHOIS lookups; DNS lookup and a worldwide DNS propagation checker; SSL certificate and HTTP header/security checks; email deliverability, header and blacklist checks; and a website health score.
  • Uptime monitoring with email alerts on every state change, public status pages, embeddable status badges and certificate-expiry warnings.
  • A freemium model billed through Stripe: free forever (3 monitors, checks every 5 minutes, 90 days of history, usable commercially) and a £6/month Pro plan (25 monitors, one-minute checks, a full year of history).
  • A documented read API, and a deliberately lean front end — strict Content-Security-Policy, no framework, fast pages.

The result

Live and self-serve at goodping.com — anyone can run a check in seconds with no account, or start monitoring for free and upgrade only when a site earns its keep. Every diagnostic is free because the tools cost almost nothing to run; only continuous monitoring, which does, is paid.

StackPHP, JavaScript, DNS/TLS/HTTP tooling, cron-driven monitoring, Stripe, strict CSP, Linux

Built lean on purpose: a strict Content-Security-Policy, no framework and no tracking bloat, so the tools stay fast and cheap to run. The infrastructure instinct behind it comes from years of running Linux servers and, before that, a UK hosting company at the rack level.

2025

vaawaa.com

News aggregation engine

An ad-free global news portal that aggregates headlines from trusted publishers across seven categories.

The problem

News aggregation is easy to prototype and hard to run. Feeds go down, change format, duplicate stories across sources and return inconsistent encodings. The site had to stay fast and current without a database server or a heavy CMS behind it.

What I built

  • A scheduled fetch engine pulling roughly a hundred RSS feeds from international publishers — including major newspapers, broadcasters and specialist technology and blockchain sources.
  • Normalisation and de-duplication into a single flat-file cache, so page loads never wait on an upstream feed.
  • Seven category sections plus around forty topic routes, handled through URL rewriting rather than query strings.
  • A self-healing refresh: if the cache goes stale between scheduled runs, the next page load triggers a background refresh.
  • Direct attribution and outbound links to every original publisher.

The result

Still running today. Around a hundred publisher feeds are fetched on a schedule, de-duplicated and served with no database server and no CMS behind it, which is why it needs almost no maintenance and costs almost nothing to host.

StackPHP, Guzzle, Composer, cron, Apache rewrite rules, flat-file JSON cache

Deliberately built without a database. For a read-heavy site serving cached content, a well-structured flat file is faster, simpler to back up and has one less service to keep running. Migrated to new infrastructure in 2026 with the refresh cycle intact.

2015

Topup24

Mobile airtime top-up service

An international mobile airtime top-up service — send prepaid credit to a phone abroad, paid by card or Bitcoin. Crypto was one payment option, not the point.

The problem

Sending mobile credit across borders was slow and expensive. For the user it had to be simple: pay, and have prepaid airtime land on a phone on an international network, automatically. Accepting Bitcoin as one of the payment methods meant building the settlement and confirmation logic from scratch, since no processor offered it at the time.

What I built

  • International prepaid airtime delivery through carrier and top-up APIs, triggered automatically on payment.
  • Multiple payment methods, including Bitcoin, with on-chain confirmation tracking before fulfilment.
  • Transaction processing that reconciles payment against delivery, so a confirmed payment always results in delivered credit or a traceable failure.
  • A high-trust interface aimed at ordinary users, not crypto natives.

The result

Delivered international mobile airtime end to end, automatically — pay by card or Bitcoin and the credit lands on the phone with no manual step. Built in 2015, when accepting crypto as a payment option meant writing the confirmation and reconciliation logic yourself.

StackPHP, carrier/top-up APIs, Bitcoin payment integration, MySQL, JavaScript

The product was airtime top-up; crypto was simply one way to pay for it. The hard part was reliability — a confirmed payment must always end in delivered credit or a clear, traceable failure, across carrier APIs that don’t always behave.

2025

Quran Roshni

Client-side reading platform

A fast, distraction-free Quran reader covering all 114 chapters.

The problem

Most online readers bury the text under navigation, adverts and interface. The brief was the opposite: get the reader to any chapter in one action, and then get out of the way.

What I built

  • A grid navigation system presenting all 114 chapters at once, so any chapter is reachable without a secondary menu.
  • A single structured dataset driving the whole index — reorder or extend the content from one configuration file, with no markup changes.
  • Client-side rendering for instant chapter switching after first load.
  • A deliberately minimal interface with no advertising or tracking.

The result

Still running today. Entirely client-side — there is no backend to maintain, no database to back up and no server cost, so it keeps working without anyone touching it.

StackPHP, JavaScript, JSON dataset, CSS Grid and Flexbox

The interesting constraint was payload. Serving a large text corpus to a client-side application means thinking carefully about what ships up front and what loads on demand.

Next step

Want something similar built?

If your project looks like any of these — real-time data, payments, integrations, or a platform with real users behind a login — I’d be glad to talk it through.

WhatsApp