Il Blog di Dario D’Angelo.
Three projects for one client since 2023: a room full of maps, a rebuild of everything around it, and the app where it started.
Tech Artisan · March 2023 – now · iOS, web, backend
2026
Situation Room.
A live map of what shifts the balance in Europe and the world. A quiet radar most days, an emergency room when it isn’t.
It began in 2023 as a live blog, built for one night at a time.
What people see
The world, at a glance.
A live map of what shifts the balance, the same on the site and in the app.
Device mock · the live map, at night
Every country on one page.
Governments, parties and elections, with the people worth following.
Device mock · iOS, a country dossier
When the sirens sound.
Air-raid alerts, pushed by area and checked every minute.
Device mock · iOS, a siren alert
What’s underneath
Most of it is plumbing.
On the surface
- The live map
- On the site and in the app, drawn from one style
- Country dossiers
- Governments, parties, elections
- Sirens
- Air-raid alerts, pushed by area
Underneath
- The registry
- Every country’s politics in one CMS
- Queues that never wait
- Sirens run on a line of their own
- A fact-checker with a calendar
- Claude reviews facts as they come due
Where it comes from
- Parliaments
- Parline, 193 countries
- Polls and live results
- From Wikipedia tables to national feeds
- Alerts and front lines
- Official siren feeds, ISW maps
Three decisions
Sirens don’t wait in line.
Every kind of background job has its own queue. An air-raid alert never sits behind an election count or a nightly sync.
A fact-checker with a calendar.
Some facts expire: an interim government, a confidence vote, a term that ends. When one comes due, Claude checks the sources, updates the registry and emails the newsroom what it changed, or what it couldn’t decide.
Rules nobody has to remember.
No polls during the pre-election silence. No exit polls before the stations close. Majorities counted from the cabinet, never typed in. The backend enforces it, so nobody has to remember at three in the morning.
2026
The rebuild.
The website, the app and the backend underneath them, rebuilt together.
Different screens, one source.
What people see
The new website.
Cached close to readers, with every article from the old blog still in place.
Device mock · the new website
Articles, read aloud.
The iOS app, rebuilt in SwiftUI, reads articles to you sentence by sentence.
Device mock · iOS app, an article read aloud
What’s underneath
Different screens, one source.
On the surface
- The website
- Next.js, cached close to readers
- The iOS app
- Rebuilt in SwiftUI
- The newsroom’s tool
- Write once, publish everywhere
Underneath
- One API
- Swift on the server, one contract every client is generated from
- One subscriber
- Card, App Store or an old membership: the same person
- Spoken articles
- Read aloud, sentence by sentence
Where it comes from
- The CMS
- Payload and Postgres
- The old blog
- Every article from before, still readable
- Payments
- Stripe and the App Store
Three decisions
One contract, every client.
The API is written down once. The website, the iOS app and the newsroom’s publishing tool are generated from that description, so none of them can quietly drift away from the others.
Many ways to pay, one person.
Readers subscribe by card, through the App Store, or still hold an old membership. Underneath they’re one subscriber with one set of rights, wherever they open the blog.
Write once.
The newsroom writes a post once. It reaches the site, the app, the live blog and the socials without being pasted five times.
2023
The app.
The blog’s first app. Readers had followed it on the web for years; this put it in their pocket.
Where the whole channel started.
What people see
The blog, in your pocket.
Years of articles, in an app made for reading them.
Device mock · App 2023, home
Live, as it happens.
Live coverage one tap away, and a push for every new post.
Device mock · App 2023, live coverage
What’s underneath
A new door to an old house.
On the surface
- The app
- iOS, designed and built end to end
- The blog
- The website readers already knew
Underneath
- One account
- Members sign in with the account they already had
- Push
- New posts and live coverage, as they happen
Where it comes from
- WordPress
- Years of articles
- Steady
- Memberships
Two decisions
Build on what was there.
The blog already ran on WordPress, with memberships on Steady. The first app didn’t try to replace any of it. It read the blog people already followed, and let members in with the account they already had.
Feel before features.
I designed it and built it, start to finish. Getting it to work was the easy part. Getting it to feel right took longer, and that’s the part people write in about.
Where it surfaced.
3Projects for the same clientSince 2023
193Countries the registry can followChambers and seats from Parline
60 sBetween checks for sirens and live resultsEach on a queue of its own
© 2026 Onnwen L.G. Cassitto L’Hostis