2026-03-10 19:17:23 +01:00
# Standing on Shoulders
## How many people made this app possible?
Tilfluktsrom is a small Android app — about 900 source files — that helps
Norwegians find their nearest public shelter in an emergency. One person built
it in under a day. But that was only possible because of the accumulated work of
2026-03-10 20:09:29 +01:00
roughly **119,000 people ** , spanning decades, countries, and disciplines.
This document traces the human effort behind every layer of the stack, with
sources for each estimate.
```mermaid
pie title People behind each layer
"Map data (OSM)" : 50000
"Linux kernel" : 20000
"Physical infrastructure" : 10500
"Build tools & dev infra" : 6700
"AI-assisted development" : 6000
"Shelter data & builders" : 6000
"Internet & standards" : 5250
"OS & runtimes (excl. Linux)" : 3800
"Libraries (Android)" : 2100
"Libraries (PWA)" : 1750
"Hosting & distribution" : 5700
"Programming languages" : 1600
```
2026-03-10 19:17:23 +01:00
---
## Layer 0: Physical Infrastructure — GPS & Sensors (~10,500 people)
2026-03-10 20:09:29 +01:00
| Component | Role | Est. people | Source |
|---|---|---|---|
| GPS constellation | 31 satellites, maintained by US Space Force | ~5,000 | Industry estimate; [GPS.gov ](https://www.gps.gov/ ) |
| Magnetometer/compass sensors | Enable the direction arrow to point at shelters | ~500 | Industry estimate |
| ARM architecture | The CPU instruction set running every Android device | ~5,000 | [Arm had 8,330 employees in 2025 ](https://www.macrotrends.net/stocks/charts/ARM/arm-holdings/number-of-employees ); ~5,000 estimated over the architecture's 40-year history |
2026-03-10 19:17:23 +01:00
Before a single line of code runs, hardware designed by tens of thousands of
engineers must be in orbit, in your pocket, and on the circuit board.
## Layer 1: Internet & Standards (~5,250 people)
2026-03-10 20:09:29 +01:00
| Component | Role | Est. people | Source |
|---|---|---|---|
| TCP/IP, DNS, HTTP, TLS | The protocols that carry shelter data from server to phone | ~5,000 | Cumulative IETF/W3C contributors over decades |
| GeoJSON specification | The format the shelter data is published in (IETF RFC 7946) | ~50 | [RFC 7946 authors + WG ](https://datatracker.ietf.org/doc/html/rfc7946 ) |
| EPSG / coordinate reference systems | The math behind UTM33N → WGS84 coordinate conversion | ~200 | [IOGP Geomatics Committee ](https://epsg.org/ ) |
## Layer 2: Operating Systems & Runtimes (~23,800 people)
| Component | Role | Est. people | Source |
|---|---|---|---|
| Linux kernel | Foundation of Android | ~20,000 | [Linux Foundation: ~20,000+ unique contributors since 2005 ](https://www.linuxfoundation.org/blog/blog/2017-linux-kernel-report-highlights-developers-roles-accelerating-pace-change ) |
| Android (AOSP) | Mobile OS, incl. ART runtime | ~2,000 | [ResearchGate study: ~1,563 contributors ](https://www.researchgate.net/figure/Top-Companies-Contributing-to-Android-Projects_tbl3_236631958 ); likely higher now |
| OpenJDK | The Java runtime Kotlin compiles to | ~1,800 | [GitHub: ~1,779 contributors ](https://github.com/openjdk/jdk ) |
## Layer 3: Programming Languages (~1,600 people)
| Language | Origin | Contributors | Source |
|---|---|---|---|
| Kotlin | JetBrains + community | ~765 | [GitHub: JetBrains/kotlin ](https://github.com/JetBrains/kotlin ) |
| TypeScript | Microsoft + community (for the PWA) | ~823 | [GitHub: microsoft/TypeScript ](https://github.com/microsoft/TypeScript ) |
## Layer 4: Build Tools & Dev Infrastructure (~6,700 people)
| Tool | Role | Contributors | Source |
|---|---|---|---|
| Gradle | Build automation | ~869 | [GitHub: gradle/gradle ](https://github.com/gradle/gradle ) |
| Android Gradle Plugin | Android-specific build pipeline | ~200 | Google internal; estimate |
| KSP (Kotlin Symbol Processing) | Code generation for Room database | ~100 | Estimate based on [GitHub: google/ksp ](https://github.com/google/ksp ) |
| R8 / ProGuard | Release minification and optimization | ~100 | Estimate |
| Vite | PWA bundler | ~1,100 | [GitHub: vitejs/vite ](https://github.com/vitejs/vite ) |
| Bun | Package manager and JS runtime | ~733 | [GitHub: oven-sh/bun ](https://github.com/oven-sh/bun ) |
| Git | Version control | ~1,820 | [GitHub: git/git ](https://github.com/git/git ) |
| Android Studio / IntelliJ | IDE | ~1,500 | Estimate; JetBrains + Google |
| Maven Central, Google Maven, npm | Package registry infrastructure | ~300 | Estimate |
## Layer 5: Libraries — Android App (~2,100 people)
| Library | What it does | Contributors | Source |
|---|---|---|---|
Fjern hjemmeskjerm-widget
Widgeten har vært en vedlikeholdskostnad uten et klart produktformål:
den duplikerte lokasjonslogikken fra hovedappen, kunne vise inntil
24 timer gammel GPS-posisjon uten alderindikator, og krevde en egen
WorkManager-periodisk oppdatering. Den strategiske vurderingen
(2026-04-17) konkluderte med at den samme nytten kan leveres via
app-åpning eller en lettere mekanisme senere, og at flaten bør
krympes før pitch mot offentlig sektor.
Denne endringen fjerner widget/-pakken for begge flavors
(standard + fdroid), AppWidgetProvider-mottakeren i manifestet,
WidgetUpdateWorker, androidx.work:work-runtime-ktx-avhengigheten,
widget_prefs SharedPreferences-lagringen i MainActivity, samt
widget_*-strenger og linjen om «for hjemmeskjerm-widgeten» i
about-dialogen. Dokumentasjonen i CLAUDE.md, ARCHITECTURE.md,
README.md, STANDING_ON_SHOULDERS.md og fastlane-beskrivelsene
er justert tilsvarende. Historiske changelogs (v3, v5, v6, v7)
er bevisst urørt — de beskriver korrekt hva som ble levert i
de versjonene.
Eksisterende widget-plasseringer på brukernes hjemmeskjerm
forsvinner automatisk neste gang appen oppdateres; Android
fjerner foreldreløse provider-komponenter uten migreringskode.
Begge debug-flavors bygger rent etter endringen.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 09:57:45 +02:00
| AndroidX (Core, AppCompat, Room, etc.) | UI, architecture, database | ~1,000 | [GitHub: androidx/androidx ](https://github.com/androidx/androidx ) monorepo |
2026-03-10 20:09:29 +01:00
| Material Design Components | Visual design language and components | ~199 | [GitHub: material-components-android ](https://github.com/material-components/material-components-android ) |
| Kotlinx Coroutines | Async data loading without blocking the UI | ~308 | [GitHub: Kotlin/kotlinx.coroutines ](https://github.com/Kotlin/kotlinx.coroutines ) |
| OkHttp | Downloads the GeoJSON ZIP from Geonorge | ~287 | [GitHub: square/okhttp ](https://github.com/square/okhttp ) |
| OSMDroid | Offline OpenStreetMap rendering | ~105 | [GitHub: osmdroid/osmdroid ](https://github.com/osmdroid/osmdroid ) |
| Play Services Location | FusedLocationProvider for precise GPS | ~200 | Google internal; estimate |
| SQLite | The embedded database engine | * * ~4** | [sqlite.org/crew.html ](https://sqlite.org/crew.html ) — the most deployed database in the world, maintained by 3– 4 people |
## Layer 6: Libraries — PWA (~1,750 people)
| Library | Role | Contributors | Source |
|---|---|---|---|
| Leaflet | Interactive web maps (created in Ukraine) | ~865 | [GitHub: Leaflet/Leaflet ](https://github.com/Leaflet/Leaflet ) |
| leaflet.offline | Offline tile caching | ~20 | Estimate based on GitHub |
| idb | IndexedDB wrapper for offline storage | ~30 | Estimate based on GitHub |
| vite-plugin-pwa | Service worker and Workbox integration | ~100 | Estimate based on GitHub |
| Vitest | Test framework | ~718 | [GitHub: vitest-dev/vitest ](https://github.com/vitest-dev/vitest ) |
2026-03-10 19:17:23 +01:00
## Layer 7: Data — The Content That Makes It Useful (~56,000 people)
2026-03-10 20:09:29 +01:00
| Source | Role | Est. people | Source link |
|---|---|---|---|
| OpenStreetMap | Global map data | ~50,000 | [~2.25M have ever edited; ~50,000 active monthly ](https://wiki.openstreetmap.org/wiki/Stats ) |
| Kartverket / Geonorge | Norwegian Mapping Authority; national geodata infrastructure | ~800 | [kartverket.no ](https://www.kartverket.no/ ) |
| DSB | Created and maintains the public shelter registry | ~200 | [dsb.no ](https://www.dsb.no/ ) |
| The shelter builders | Construction, engineering, civil defense planning since the Cold War | ~5,000 | Estimate based on ~556 shelters built 1950s– 80s |
2026-03-10 19:17:23 +01:00
The app's data exists because of Cold War civil defense planning. The shelters
were built in the 1950s– 80s, digitized by DSB, published via Geonorge's open
data mandate — a chain of decisions spanning 70 years that now fits in a 320 KB
GeoJSON file.
## Layer 8: AI-Assisted Development (~6,000 people)
2026-03-10 20:09:29 +01:00
| Component | Role | Est. people | Source |
|---|---|---|---|
| Anthropic / Claude | Researchers, engineers, safety team | ~1,000 | [anthropic.com ](https://www.anthropic.com/ ) |
| ML research lineage | Transformers, attention, RLHF, scaling laws — across academia & industry | ~5,000 | Estimate across all contributing institutions |
| Training data | The collective written output of humanity | incalculable | |
2026-03-10 19:17:23 +01:00
2026-03-10 20:09:29 +01:00
## Layer 9: Hosting & Distribution (~5,700 people)
2026-03-10 19:17:23 +01:00
2026-03-10 20:09:29 +01:00
| Component | Role | Contributors | Source |
|---|---|---|---|
| Forgejo / Gitea | Hosts this project at kode.naiv.no; Forgejo forked from Gitea in 2022 | ~800 | [Forgejo: ~230 contributors ](https://codeberg.org/forgejo/forgejo ); [Gitea: go-gitea/gitea ](https://github.com/go-gitea/gitea ) |
| GitHub | Mirror repo + hosts nearly all upstream dependencies | ~3,000 | [~5,000 employees, ~50% engineers ](https://kinsta.com/blog/github-statistics/ ) |
| F-Droid | Open-source app store infrastructure and review | ~150 | [GitLab: fdroid ](https://gitlab.com/fdroid ); estimate |
| Fastlane | Metadata and screenshot tooling | ~1,524 | [GitHub: fastlane/fastlane ](https://github.com/fastlane/fastlane ) |
2026-03-10 19:17:23 +01:00
---
## Summary
| Layer | People |
|---|---|
| Physical infrastructure (GPS, ARM, sensors) | ~10,500 |
| Internet & standards | ~5,250 |
2026-03-10 20:09:29 +01:00
| Operating systems & runtimes | ~23,800 |
| Programming languages | ~1,600 |
| Build tools & dev infrastructure | ~6,700 |
| Direct libraries (Android) | ~2,100 |
| Direct libraries (PWA) | ~1,750 |
2026-03-10 19:17:23 +01:00
| Data (maps, shelters, geodesy) | ~56,000 |
| AI-assisted development | ~6,000 |
2026-03-10 20:09:29 +01:00
| Hosting & distribution | ~5,700 |
| **Conservative total ** | * * ~119,000** |
2026-03-10 19:17:23 +01:00
This is conservative. It excludes:
- The millions of OSM mappers globally whose edits feed the tile rendering pipeline
- Hardware manufacturing (semiconductor fabs, device assembly — millions of workers)
- The educators who taught all these people their craft
- The civil defense planners who decided Norway needed public shelters
- The mathematicians behind Haversine, UTM projections, and geodesy going back centuries
Including OpenStreetMap's full contributor base and hardware, the number crosses
**2 million** easily.
---
2026-03-10 20:09:29 +01:00
## Notable details
- **SQLite** — the most widely deployed database engine in the world (in every
phone, browser, and operating system) — is maintained by
[3– 4 people ](https://sqlite.org/crew.html ). It powers every shelter lookup
in this app.
- **Leaflet** — the JavaScript mapping library used by the PWA — was created by
[Volodymyr Agafonkin ](https://agafonkin.com/ ) in Kyiv, Ukraine. An emergency
shelter app built with a mapping library from a country at war.
- **OpenStreetMap** has ~10 million registered accounts, but only ~50,000 are
active in any given month. The map tiles this app displays are the work of a
dedicated minority.
---
2026-03-10 19:17:23 +01:00
## Perspective
2026-03-10 20:09:29 +01:00
For every line of application code, roughly 119,000 people made the tools, data,
2026-03-10 19:17:23 +01:00
and infrastructure that line depends on. No single company, country, or
organization could have built this stack alone. Linux (Finland → global), Kotlin
(Czech Republic/Russia → JetBrains), OSM (UK → global), GPS (US military →
civilian), Leaflet (Ukraine), SQLite (US, public domain) — this emergency app is
a product of genuine global cooperation.
The fact that one person can build a working, offline-capable emergency app in
under a day is arguably one of the most remarkable expressions of accumulated
human cooperation — and almost none of it was coordinated by any central
authority.