Portfolio

Two live sites we designed, built and run, from the data pipeline to the hosting. Both are on Microsoft Azure, deployed by GitHub Actions, and both use AI where it earns its place and nowhere else.

Events Hub

Monthly “What’s On” guides for UK towns, written for families, including families with children who have special educational needs. Given a town and a month, a pipeline finds events from registered sources, normalises them, removes duplicates, classifies them and produces a date-ordered guide. Every event on the page can be traced back to the source record it came from.

The pipeline is written in Python, with an ASP.NET Core API and an Angular front end. One JSON Schema contract generates the types on both sides. The API runs on Azure Container Apps and the front end on Azure Static Web Apps, all declared in Bicep. Extraction is deterministic first. A Claude model is the fallback for pages the rules cannot read, and the links it proposes and the dates it reads are checked against the page itself.

Uplifting News

A static site that lists good-news stories about the UK, gathered from publishers’ RSS and Atom feeds. It refreshes several times a day. Each refresh fetches the feeds politely, respecting each publisher’s robots.txt, then filters, removes near-duplicate stories and rebuilds the site.

Each new headline is judged once by a language model: is it good news, is it about the UK, and what is it about. We integrated two vendors’ models for this, Jev from TypeSafe AI and Claude Haiku from Anthropic, and tested them side by side on 686 real headlines against the same rubric. We chose Jev for its judgement and its cost. Claude Haiku stays in place and takes over if Jev fails. A story is published only when the model is confident on both questions, and the main model’s verdicts are cached, so a headline is normally paid for once. Publishers whose robots.txt turns away Anthropic’s crawlers are kept out of the model altogether. Written in Python and hosted on Azure Static Web Apps.

Get in touch