Twenty-three apps, sixteen frameworks carrying Apple’s own names, and a scroll view tuned to UIKit’s actual rubber-band constant. The code is written from scratch. The pixels are not, and the README says so.
The find’s claims hold up. Weather asks Open-Meteo for six days. Maps draws OpenStreetMap tiles, geocodes through Nominatim and routes through OSRM, with Esri imagery behind the satellite view. The App Store and iTunes read Apple’s public Search and RSS feeds, so the Top 25 you scroll is today’s Top 25, wearing 2010’s chrome. The app count is right too — twenty-three, counting Calendar, which the project’s own README forgets to list.
What the find undersold is everything beneath the apps. Sixteen frameworks sit there with Apple’s names and a strict one-way dependency graph: Foundation → CoreGraphics → UIKit → SpringBoard → apps. GraphicsServices handles touch delivery and a scroller carrying UIKit’s real numbers — 0.998 deceleration, 0.55 rubber-band.
The fidelity lives in constants. Edit mode jiggles every icon on a 0.25-second cycle, each at its own random angle and phase, so no two wobble together. Folders shove the rows apart over 0.32 seconds and tuck an 18-pixel notch under the icon you opened. “Slide to unlock” is a gradient swept across background-clip: text, dimming as the knob travels. Maps keeps its page curl. The handset itself is modelled at true scale — 58.6 mm across, 3.8 mm corners — sitting in a WebGL scene lit by a studio HDR, held in a hand.
Which leaves the question the find couldn’t reach: the artwork. It wasn’t redrawn. A build tool reads The OldOS Project’s Xcode asset catalogue, decodes Apple’s CgBI-mangled PNGs back into ordinary ones, preserves the nine-slice cap insets and emits a typed manifest. Helvetica Neue and the DTMF tones ship as files. Neither repo carries a licence, so “open source” is the wrong phrase — this is source-available, under a tribute disclaimer.
Two things want a server, not one. Game Center needs Postgres for leaderboards, and Safari probes for a local proxy on port 5174, falling back to loading pages directly into an iframe, which most of the web refuses. YouTube’s icons are in the repo; the app is not. Doom is the shareware episode in a WebAssembly runtime — and the only thing here that ships with a licence file.