Skip to content
Ferroscope
Menu

18About

Built after a week
of reading, not scrolling.

Ferroscope started as a personal audit: which of the twenty-seven Black October incidents could actually reach this laptop? The answer was two. Turning that answer into an instrument took longer than finding it.

aniruddha adakkolkata, indiaoctober 2026

Origin

The wave landed over forty-eight hours. PHP2Shell made the front pages, a certificate authority was quietly compromised, a hosting company announced it was shutting down, and a bank confirmed a breach affecting the region this laptop lives in.

Reading all of it produced the wrong feeling: urgency without direction. So the work became mechanical. Write down what the machine actually runs. Write down what each incident actually needs. Intersect the two sets. The intersection was two incidents, and one of them had a three-minute fix.

That gap — between twenty-seven headlines and two relevant items — is what Ferroscope visualises. Not to minimise the wave, but to make it actionable for one person at a time.

Most breaches are not your breach. The ones that are tend to have a cheap first fix.
The premise

Principles

01

A headline is not an exposure

Twenty-seven incidents is a lot of noise. The only useful question is which ones intersect something you actually run. Everything in the product is built around that filter.

02

Show the derivation

Every score has a formula on a page you can read. If a number cannot be explained in a paragraph and a code block, it should not be on a dashboard.

03

Refuse the dramatic claim

Ferroscope never says you were breached. It says your declared stack sits inside a blast path. The distance between those two sentences is the product's ethics.

04

Offline is a feature

No feed, no API key, no LLM, no telemetry. The dataset is in git, the computation is local, and the whole thing works on a plane.

Colophon

DisplayInstrument Serif
TextManrope
MonoJetBrains Mono
PaletteGraphite, bone, signal amber, rust, moss
FrameworkNext.js 15 · React 19 · TypeScript strict
EnginePure TypeScript, zero runtime dependencies
Data27 incidents · 55 stack items · 24 actions