Adaxa News did not begin as a formal product roadmap. It began with a much more practical question: could we bring the information we repeatedly check across dozens of websites into one useful, living screen?

This case study focuses on the web build behind that answer: how AI supported research, architecture, source integrations, frontend implementation, testing and maintenance without replacing human product judgment.

The answer became a dense, server-rendered dashboard covering local weather and river levels, power outages, air and pollen data, transport, civic information, property listings, retail prices, sport, agriculture, business and more. The public page is the visible layer. The more interesting part is the operating system behind it.

The web does not arrive in one clean format.

Some sources offer an API. Some publish RSS. Others expose a table in HTML, hide the useful data behind changing markup or simply disappear for a few hours. Dates, units, naming, images and refresh cycles vary. A missing value can mean “nothing new”, “source unavailable” or “the parser broke”—three very different states.

That made Adaxa News less of a publishing exercise and more of an integration problem. A useful dashboard had to collect fragmented information, apply consistent rules and still fail gracefully when a third-party source changed.

Why Python scrapers became small source adapters.

Where a stable feed or API existed, we used it. Where it did not, purpose-built Python scrapers collected the relevant public fields. The important shift was to stop thinking about a scraper as a one-off script. Each one became a source adapter with a defined job: fetch, parse, validate, normalise and leave behind a usable snapshot.

01Sources

APIs, RSS, HTML pages and public tables.

02Python adapters

Focused collectors built around each source’s reality.

03Control layer

Validation, timestamps, refresh rules and last-known-good data.

04Presentation

PHP, CSS and JavaScript turn the cache into a tile system.

OPERATING PATTERNfetch → parse → validate → normalise → cache → render

This separation matters. A page view should not need to wait for every external website. And when one source fails, it should not take the whole dashboard with it. Different sources also need different schedules: live sport has a different useful cadence from a civic contact directory or a daily forecast.

Claude and Codex were not interchangeable chat windows.

The project became far more effective once we gave AI agents concrete artefacts to produce, review and hand over. The roles changed between iterations, but the working pattern stayed clear.

RESEARCH · AUDIT · BRIEF

Claude / Claude Code

Claude helped explore sources, reason through scraper requirements and turn a sprawling dashboard into structured audit material. One UX pass translated visible inconsistencies into a detailed remediation brief: design tokens, grid rules, empty states, accessibility checks and primary/mirror parity.

IMPLEMENT · TEST · MAINTAIN

Codex

Codex turned requirements and audit notes into source changes, worked through web and server-side scripts, tested the result and kept implementation, documentation and rollback needs connected. It was most useful when the brief described acceptance criteria rather than vague intent.

PRIORITISE · VERIFY · DECIDE

Human operator

AI did not decide which information deserved space, whether an output was credible or when a version was ready. Human review set the priorities, challenged broken assumptions and accepted each meaningful step.

The breakthrough was not one prompt. It was a repeatable loop.

  1. 01
    Observe the live system.

    Find stale data, broken layouts, duplicated values or a source that no longer behaves as expected.

  2. 02
    Investigate the source.

    Determine whether the best path is an API, feed, scraper, manual reference or a deliberate decision not to collect.

  3. 03
    Change one controlled layer.

    Update the adapter, normalisation rule, refresh schedule or presentation component without rewriting the entire system.

  4. 04
    Verify both data and interface.

    A technically successful request is not enough; the value must be current, readable and correctly labelled.

  5. 05
    Document and preserve.

    Refresh the source registry, notes and backups so the next agent—or the next human—can continue from evidence instead of memory.

Scraping is easy. Operating scrapers is the real work.

AI can write a parser quickly. It cannot make a third-party site stable. Adaxa News forced us to think about timestamps, missing data, source links, refresh cadences, cache behaviour, monitoring, backups and parity between the primary build and its mirror.

01

Keep the last valid state

An empty source response should not automatically erase useful information.

02

Make freshness visible

Per-module timestamps help distinguish a quiet source from a failed update.

03

Link back to evidence

Source links and consistent tracking make every tile easier to inspect and govern.

04

Design the empty state

“No new item”, “not published” and “collection failed” need different treatment.

AI compressed the distance between an idea and a working website.

Claude and Codex accelerated source research, requirements, code, audits, debugging and documentation. That changed the economics of a project with many small integrations: ideas that would normally stay on a backlog could be tested, rejected or improved much faster.

But AI did not remove the difficult parts. It did not decide what mattered to the user. It did not guarantee that a scraped value was correct. It did not eliminate maintenance, source terms, accessibility or the need for a rollback. The useful model was never “autonomous development”. It was human-directed, agent-assisted operations.

Five principles from the build.

01

Split work by deliverable.

Ask one agent for a source assessment or audit and another for an implementation against explicit acceptance criteria.

02

Treat every scraper as an integration.

Give it ownership, validation, a refresh policy, an empty state and a retirement decision.

03

Cache before presentation.

Separate external collection from the page request so one unreliable source cannot dominate the experience.

04

Make documentation executable.

A good brief should tell the next agent what to change, what to protect and how to know the work is done.

05

Keep a human decision owner.

AI can widen coverage and speed up delivery. Accountability still needs a person.

A living system, not a finished showcase.

Adaxa News continues to evolve as sources change and new questions appear. That is exactly why it is useful as our first case study: it shows AI-assisted web development in everyday operations, with all the uneven data, maintenance and judgment that real systems require.

Explore Adaxa News