Open research on the physical bottlenecks of technological progress: materials, compute, energy, science, policy, capital and talent, with checkable evidence and public contributions.
Critical technology chains are difficult to understand and verify. Sources, companies, bottlenecks and analyst judgements are scattered, and practitioners lack a simple way to correct the record.
An open research map joining bottlenecks, producers, science, policy, capital and talent, with evidence links, visual exploration, searchable explanations and a dedicated content contribution inbox.
Make the physical constraints on technological progress understandable, checkable and open to correction by people who know the work.
A collaborative research service where anyone can follow a technology chain, inspect the evidence behind a claim, personalise their learning and contribute expertise that improves a shared public map.
Next.js 16, React 19, TypeScript, PostgreSQL 17, OrangeCat OIDC, @bitbaum/ai-kit, bip-kit and sitekit. Versioned research corpus; derived search, atlas and exports.
Investigate this project with Loki →The world view is a globe. The atlas opens on a globe you can turn, painted by the same USGS data as the flat map. (#120) Task-flow criteria, measured. Every tool page now answers first, has one header and one empty state, and the flows a reader actually runs are measured after each deploy — 20 of 20 task runs completed with no dead ends. (#117, #121) Quality scores for every dataset. /data/quality holds each dataset to six written criteria — completeness, correctness, provenance, freshness, link health, consistency — with pure checks in the build and network checks every six hours. Fixed what the first run found. (#116) Every producer capacity names its own unit. A capacity figure no longe…
Check a pasted key with its vendor. Bring your own API key: Substrata asks the vendor which models the key can use and lets you pick from them, instead of guessing. (#114) Unreviewed leads expire. A sweep lead nobody reviews within 30 days leaves the queue at read time and is listed at /data/freshness/expired, so a stale queue means the expiry is broken, not that nobody looked. (#113) The country panel has numbers. Measured resources, producers, export restrictions, sanctions and ranked peers for every country the map draws. (#107) One canvas, one bar, one panel. The atlas became a 50m vector map painted by USGS data, with supply chains drawn as a flow. (#106) USGS world production and rese…
Reader-initiated news updates. You can ask for the news on a bottleneck to be refreshed; AI drafting happens only on your own key. (#102) Reader views. Five doors — for equity investors, policy, science, careers, learning — each collecting the existing screens, plus a freshness page that breaks the build on stale data and a shared page header. (#96) Dependency rows as graph edges. 26 sourced dependency rows, pinned home listings, and a minimum move on every series. (#94) Dated, sourced number series per bottleneck. Lead times, prices, capacity, output, backlogs and trade volumes at /data/series, as CSV, with desk alerts on a move. (#92) Open roles from public job boards, with the skills and…
Retrieval quality in chat: word-boundary scoring, IDF weighting and a relevance floor. (#73) The assistant answers the question asked, and the header is a menu again. (#72)
The research sweep runs on a timer, into a queue rather than the corpus; the leads have a reader, and freshness stops being a guess. (#68, #69) Relief for the two worst science rows, and the prompt no longer claims it has no tools. (#67) A timestamp column is a Date. Asserting otherwise shipped green. (#70)
Five more materials with figures, and the actual places named. (#66) Numbers with a year and a source, and the difference between a law and a schedule. (#65) The assistant can look things up, without letting the web pretend to be research. (#64) The assistant knows what you are reading. A kind is one file; loops became entities. (#63) The web as a schema, and the seams for eight languages. (#61) Every entity page is modules on one shared order; the company page and one entity registry came first. (#58, #59, #60) The corpus is indexed, and every entity has a path to the KPI. (#62)
A dossier for every country, a resource directory and a derived graph — not a demo for one. (#51, #53) Equal Earth map, comments, AI fact-check. (#54) Readable atlas chains, a mobile menu, follow companies. (#55) Ask as a thread, grounded on ai-kit. (#52) Desk, world map, a visible changelog, dark/light/auto. (#48) Mark, one header, and a chain figure on the front page. (#47) An unknown model id or an anonymous fact-check no longer spends the budget. (#57) Menus close outside, Auto model, dictate, attach. (#56) The research is back in the chrome; two shells, one map, inquire on gaps. (#49, #50) Wafer producer coverage is distinguished from market claims. (#46)
A checkable research atlas and the Substrata companion. (#43) Capital, Learn, and one module that owns every internal URL. (#41) Every readiness score cited, nine events accepted, part of the directory sourced. (#40) The track record started, and the engine no longer mistakes blindness for absence. (#39) A grouped megamenu, notes, and an invitation to contribute. (#38) Sections for policy, markets and science, in plain language, with a test that fails the build on untrue copy. (#37) Coverage claims constrained, and production verification recorded. (#45) Research service readiness and account identity verified. (#44)
The loop in nine stages, an assessment per bottleneck, dated events, and Today as the front page. (#35) The board: bottlenecks as one scannable list, a page per bottleneck, the programme as a ladder. (#32) The substrate-of-recursion programme, a research engine, a JSON map and a correction intake. (#31) 48 of 92 producer rows sourced from the engine's candidates. (#33) MIT licence. (#34)
FleetCrown was renamed to Loki throughout. (#30)
CI caches Next's build output, and the auto-merge sweep holds a token so workflow PRs stop stalling. (#24, #25, #26)
Green PRs merge themselves through the fleet auto-merge sweep, and the sweep reconciles deployment so a merged commit is never stranded. (#20, #22) Docs synced with the actual stack; the fleet's one package manager, pnpm. (#17, #19)
TypeScript 6, ESLint 10, Node 24 in CI and on the box, a formatter, and sitekit 0.3.0 for a fix this repo could not make. (#11, #12, #13, #15, #16)
Link previews render for real. (#10)
Substrata starts as its own firm: the site, the feedback widget so it stays maintainable without a developer, CI, and sitekit as the site model and renderer. (#1)