Why this site exists · Observed State Index
A feed is not an answer
One morning I got up with a simple intention: to find out whether the world was working the way it does every day. I opened social media and, after an indeterminate stretch of infinite scroll, realised there was no clear answer anywhere. Rather than settle for that opacity, I decided to build my own instrument.
That was the whole motivation: stop trusting the feed to tell me whether the world is working, and measure it myself instead.
Boring on purpose
I ruled out what already existed almost immediately. I had seen too many glossy dashboards —three-dimensional maps, black backgrounds with too many red dots, enormously sophisticated panels without a single concrete conclusion— that I walked away from having learned absolutely nothing.
That hardened into a precise conviction: I wanted hard data, not ornament. Not an elegant traffic light, but a number I could trust without having to interpret it. Out of that came the principle I ended up calling boring by design.
The world, most days, is routine, and an honest instrument should reflect that ordinariness instead of dramatising it. A dashboard full of spectacular charts lies about a state that is almost always ordinary.
With arithmetic, not enthusiasm
I applied the same standard when the inflated projections turned up. One of them promised me three hundred million visits; I dismissed it with back-of-a-napkin arithmetic rather than with excitement. That settled it: the project was not going to chase virality or fortune. It would be honest or it would not exist.
The same when I was told a baseline was unnecessary, with eight months of real data already stored —the first is from 29 December 2025—. Without a history to compare against, «normal» means nothing.
Weighting is opinion dressed as data
When the time came to combine signals as disparate as aviation, internet connectivity, earthquakes and markets into a single indicator, I reached a conclusion I have never budged from.
Someone would have to decide how much an internet blackout weighs against an earthquake, and that decision is not a fact: it is a judgement. I preferred to let each source speak for itself.
Showing uncertainty instead of hiding it
Throughout, I refused to inflate any figure or any certainty. Not the expected traffic, not the reliability of a source, not the meaning of an absence of anomalies.
That is where the rule of treating «no data» as a first-class state came from, given the same visual weight as «within range». And so did the explicit statement that the market figures may be wrong, and the transparency about the day the connectivity source itself had an incident and the system read it as a worldwide anomaly.
Boring by design describes an instrument, not a promise.
What it took
I looked for technology that would not force me to buy hardware, and where the time I put into it would be worth something beyond this project. The idea was that the processes would run on their own against open sources, and that the data would be processed until it ended up published on a page. AWS turned out to be the most sensible and the cheapest.
The learning curve was steep. I had never used AWS in any depth: I knew the basics and little else. This is where I learned what a Lambda is, what Glue is, what Athena is, and a good handful of technologies that until this project were just names to me.
I learned by breaking things in the console. Click, see what happened, undo it. Permissions were by far the hardest part: a missing permission looks nothing like a programming error — it does not blow up, it does not warn you, it simply makes something stop happening without anyone saying so.
From a chain to a state machine
The first version chained the processes by hand: one function called a data job, that job called the next function, and that one called the next. It worked, but there was nowhere to look to find out what had happened. If something failed halfway through, what was left was a separate log for each link and no way to see the chain as a whole.
I rebuilt it with one state machine per process. The gain was not speed or cost: it was being able to see the whole run in one place, and a failure no longer being a mystery scattered across seven logs.
It is the kind of change that does not improve the product at all and still had to be made.
With help
I did much of the way with Claude Code. The difference from the console was not speed: it was that it could read the whole project at once — the code, the infrastructure and the history of decisions — and so it caught the contradictions I could no longer see from being too far inside.
It was not always right. Several times I pushed back on a recommendation with data, and it was the one that turned out to be wrong. That is part of working this way too: it is worth having as long as what it says can be checked.
And now
Before this I spent twenty years making a living from data in finance —loan portfolios, credit risk, operational indicators, automation with VBA and SQL, and the reports that end up on a committee’s table—. What you see here is what I added on top: AWS, Python, Athena and state machines, learned by building this. I am now getting certified —Cloud Practitioner and Data Engineer Associate— to formalise what I learned by operating it. That was the order: the system in production first, the paper afterwards. The person writing this is on LinkedIn.
And if you need something like this —watching an OSINT source, pulling data out of an API, building a pipeline on AWS that runs on its own, watches itself and tells you when something moves out of range, or making sense of data you already have—, write to me and we’ll take a look. It can be this same thing with your sources and your cadence, or something that looks nothing like it.
It has been a fun journey, and it is not over.
Building my own indicators was a challenge, but knowing that the world is working right now gives me a calm that justifies the whole thing. Because even with enormous problems —with wars in several parts of the planet— today it is still working.
Or at least that is what the numbers say.
The same, once a day, on Telegram.
This site carries no advertising, but it does cost money to run.If you find it useful, you can support it. Thank you.
← Back to the index