Welcome — read this first
1929.world is a sovereign-stress and geopolitical intelligence platform. It fuses live open-source data — aircraft transponders, satellite catalogs, seismic feeds, sovereign-rate curves, sanctions registries, narrative trackers — into one auditable view of the global system. Every signal traces back to a public source you can verify.
The platform has a lot going on. This guide is the operating manual. Read the next section (Two front doors) and you will know which surface to use for the question you have. Then drill into the section for that surface. The rest is reference material.
Two front doors, one substrate
Pick the surface that matches the workflow:
| IF YOU ARE… | USE |
|---|---|
| Walking a principal through a scenario | /globe — cinematic 3D photoreal Earth, time scrubber, layer toggles. Built for narrative. |
| Working a hypothesis at the desk | /ops — faceted entity table, dossier panels, command palette, URL-as-state investigations. |
| Sending a brief link in chat or email | /hormuz, /suez, /malacca, etc. Server-rendered with live counts. Auto-generates an OG card. |
| Reading the global tape at a glance | / — the homepage tape. Sovereign-stress regime read across debt, FX, energy, crypto. |
| Building a long-form piece | /intel-library — the curated archive. /methodology for the analytical framework. |
The same data substrate (lib/intel/) feeds both /globe and /ops. Open one and you can always cross-link to the other — the dossier panel in /ops has OPEN IN GLOBE, the globe HUD has OPS.
The macro tape — the homepage
The homepage is the read of the global system. Sovereign-debt indicators, FX moves, oil and commodity prices, credit spreads, crypto, edge factors. The live US-debt ticker is at the top because it is the cleanest single number that frames every other read on the page.
What the regime tones mean
Every panel on the tape carries a tone — calm, watch, stress. The classification is rule-based and documented. Stress means at least one core indicator breached its alert threshold; watch means a secondary indicator did. The thresholds are deliberately visible — if you disagree with the classification, you can see exactly what triggered it.
Refresh cadence
The tape ISR-revalidates every two minutes against cron-driven snapshots. You will not burn upstream quota by hammering the page. If a panel shows a stale timestamp, the page will also show the last-known-good value with a stale indicator rather than a 500.
The globe — cinematic command view
/globe is the photoreal 3D Earth. It is the surface designed for principals, demos, and scenario walkthroughs.
Layers
The HUD lets you toggle:
- Aircraft — live ADS-B from OpenSky. Refreshes every 30 seconds. Color-coded by altitude. Alert aircraft (no callsign, above 9km) render in amber.
- Satellites — orbital catalog from CelesTrak, propagated client-side via SGP4 (
satellite.js@^6). Re-propagates every 60s. - Natural events — NASA EONET volcano, fire, and storm activity. 14-day window.
- Earthquakes — USGS M2.5+, last 24 hours.
The 4D timeline scrubber
The bar at the bottom is the headline differentiator. PAUSE freezes the simulation; PLAY resumes at the selected speed (1×, 10×, 60×, 600×). Drag the scrubber to seek. The LIVE button snaps the clock back to now.
Aircraft positions interpolate between samples via a Cesium SampledPositionProperty. Satellite positions re-propagate from TLE on each clock tick. Replay-grade trajectories are fed by the same code path.
View modes
Three filters in the HUD: NVG (green night-vision tint), FLIR (thermal palette), CRT (scanline filter). Visual flavor only — the underlying data is unchanged.
Click-to-enrich
Click any aircraft to open a dossier with registration, operator, country of origin, and recent activity. The data comes from the ADSBDB enrichment endpoint. Click any other entity for the equivalent.
Camera anchoring
Append ?focus=lon,lat,alt to fly the camera to a location on load. Used by the dossier panel in /ops to deep-link from the workbench into the globe.
The workbench — analyst surface
/ops is the analyst-mode counterpart to /globe. Same data, dense table presentation, designed for working a hypothesis.
The four panes
- Filter rail (left) — region preset, kind chips (aircraft / satellite / event / quake), free-text search.
- Entity table (center) — sortable, faceted, one row per entity. Click a row to load the dossier.
- Dossier panel (right) — the selected entity, with all enrichment, recent activity, and an OPEN IN GLOBE deep link.
- Command palette (top, ⌘K) — fuzzy search by callsign, name, ID. Same primitives as the rest of the UI.
The workbench rule — URL is the investigation
Filter state lives in the URL search params, never in component state. Every change goes through router.replace. This means:
- Browser back/forward preserves the investigation.
- Reload preserves the investigation.
- Bookmark or paste-into-chat = a saved investigation.
- Server-rendering is unambiguous — the URL fully describes what to render.
Click SHARE INVESTIGATION in the top bar to copy the URL. The platform also records investigations in localStorage — the RECENT dropdown in the top bar surfaces your last twelve, sorted by recency. Capped at twelve to keep the list useful.
Region presets
Region presets pre-fill a bounding box — Hormuz, Suez, Red Sea / Bab-el-Mandeb, Bosphorus / Black Sea, Panama Canal, Strait of Malacca. Combine with kind chips and text search to build a focused view in seconds.
Chokepoint dashboards
Each chokepoint dashboard is a server-rendered single page focused on one strait or canal, designed to be sent in a brief. They share a template — same shape, same data, same visual hierarchy. Live counts re-fetch every two minutes via ISR.
| ROUTE | WHAT IT WATCHES |
|---|---|
| /hormuz | 21 million barrels per day · 20% of global oil · one strait |
| /suez | 12% of global trade · 50 ships per day · the Asia-Europe artery |
| /bab-el-mandeb | The Gate of Tears · 30% of oil tanker traffic · contested since 2023 |
| /bosphorus | The only door to the Black Sea · 50,000 ships per year · regulated by treaty |
| /panama | Lock-elevated · 14,000 ships/year · climate-throttled since 2023 |
| /malacca | China's oil artery · 25% of global trade · 2.8km at the choke |
What each card shows
- Status tone — calm / watch / stress, derived from in-zone alert-aircraft counts and seismic activity.
- In-zone counts — aircraft / events / quakes inside the chokepoint bounding box.
- Watching now — top alert aircraft with callsign, country, altitude, velocity. A flag for no-callsign high-altitude traffic.
- Drill-down — three CTAs: workbench, globe, macro tape — preserving the chokepoint context where applicable.
- Other chokepoints — auto-discovered from the registry. Add a new chokepoint and every existing dashboard cross-links it for free.
/[slug]/opengraph-image— the live counts appear in the preview when the link is shared on Twitter, Slack, Telegram, or LinkedIn.Cui Bono — the analytical framework
/methodology is the long form. The short version:
Most institutional research stops at what happened. Cui Bono — Latin for who benefits — pushes one step further: who structurally gains when a narrative moves a particular direction. The framework scores narrative arcs along a Propaganda Tilt axis: how aligned coverage is with the interest of a specific actor, weighted by reach.
Tilt is not a verdict. It is a flag — a coverage pattern that warrants reading the primary source instead of the headline. The platform does not tell you who is right. It tells you whose interest the dominant framing happens to serve.
The framework applied to a current event produces a brief: actors, incentives, who-gains ranking, primary-source links, tilt score with the underlying signals. Briefs are deliverable artifacts of bespoke engagements (see contact).
Data lineage — where every signal comes from
The credibility of every claim on this platform depends on transparent provenance. Below is the full source list. Cadence is the upstream refresh, not the platform's revalidate.
Geospatial intelligence
| Aircraft (ADS-B) | OpenSky Network · 30s |
| Aircraft enrichment | ADSBDB · on-demand per callsign |
| Satellite catalog | CelesTrak · 6h |
| Satellite propagation | satellite.js@^6 (SGP4) · 60s tick · client-side |
| Natural events | NASA EONET · 10min |
| Earthquakes (M2.5+) | USGS · 60s |
| Space weather (Kp) | NOAA SWPC · 10min |
| Sanctions exposure | OpenSanctions · on-demand |
Macro / sovereign-stress
| Stocks, indices, FX | Alpha Vantage |
| Cryptocurrency | CoinGecko |
| Macro indicators | API Ninjas, World Bank, FRED |
| Sovereign rates | API Ninjas |
| Commodities, oil | API Ninjas, EIA |
| Earnings calendar | Marketstack |
| Edge factors (water, rare earth) | World Bank, OECD, custom |
| AIS vessel transits | Custom AIS pipeline |
CLAUDE.md files. Compliance teams can verify provenance without contacting us.Glossary
Domain terms
| ADS-B | Automatic Dependent Surveillance-Broadcast. The transponder protocol most commercial and many state aircraft broadcast. Picked up by community receivers feeding OpenSky. |
| Alert aircraft | An aircraft above 9km altitude with no broadcast callsign. Heuristic for state, military, or sensitive operators. Highlighted in amber on the globe and in chokepoint counts. |
| In-zone | Inside the bounding box for a region preset or chokepoint. The counts on chokepoint dashboards are in-zone counts. |
| Tone (calm / watch / stress) | A rule-based three-tier classification applied to chokepoints, regime panels, and pages. Thresholds are documented and visible. |
| Cui Bono | The analytical framework. Latin: 'who benefits'. Asks who structurally gains from a particular framing of an event. |
| Propaganda Tilt | A score on the Cui Bono axis. Coverage alignment with a specific actor's interest, weighted by reach. A flag, not a verdict. |
| SGP4 | Simplified General Perturbations 4 — the orbital propagation model used to translate satellite TLEs into a position in space at a given time. |
| TLE | Two-Line Element. The standard format for satellite orbital parameters. CelesTrak distributes daily TLE refreshes for thousands of objects. |
| ISR | Incremental Static Regeneration. The Next.js technique that lets a page be cached but periodically refreshed against upstream sources. Why these dashboards never burn API quota. |
Platform terms
| Investigation | A specific filter / region / selection state on /ops, captured by the URL search params. Shareable, bookmarkable, replayable. |
| Front door | The two starting surfaces — /globe (cinematic) and /ops (workbench). |
| Field Guide | This page. |
Keyboard shortcuts
Workbench (/ops)
⌘K | Open command palette |
Esc | Close palette / dossier |
↑ / ↓ | Move selection in the entity table |
Enter | Open dossier for selected entity |
Globe (/globe)
Space | Pause / resume the timeline |
← / → | Step the timeline backward / forward |
L | Snap timeline to LIVE |
1 / 2 / 3 / 4 | Speed: 1× / 10× / 60× / 600× |
FAQ
Why is everything open-source?
Because the alternative breaks the audit trail. The product compounds against institutional incumbents on the dimensions where openness is a feature: every claim is verifiable, every upstream source is citable, every chart can be reproduced by a buyer's compliance team without a phone call.
Why is it free?
The public surface stays free permanently. Where there is willingness to pay, three layers sit on top: per-channel alerting, bespoke investigations, and white-label deployments. See the README for engagement details.
How do I cite a number from this platform?
Cite the upstream, not us. Every chokepoint card lists its data sources at the bottom. The platform is a fusion layer — the authoritative source is whoever NOAA, OpenSky, USGS, or CelesTrak says it is.
Why do some pages show stale timestamps occasionally?
Upstream APIs are public and rate-limited. When an upstream is down or throttled, the platform serves the last-known-good value with a stale indicator rather than a 500. Refresh in a few minutes — the next ISR cycle will pick up the new snapshot.
How do I add a new chokepoint?
One config object in lib/intel/chokepoints.ts, plus two ~25-line wrapper files for the page and OG card. The shared <ChokepointDashboard> renderer does the rest. Cross-nav auto-discovers from the registry. Pull requests welcome.
Can I run this on my own infrastructure?
Yes — this is a Vercel-native Next.js app. Clone, set the environment variables in .env.example, deploy. White-label engagements are how serious buyers usually approach this.