WA.CR · THE GEEKS WING
Welcome to the Numbers Museum
Step inside for the fun statistics behind WA.cr — every figure in this wing is counted straight from the real repository, not rounded for effect. Take the tour, then join us in thanking the open-source projects that hold the whole building up.
ADMIT ONE · CURIOUS HUMAN
lines of code
Admission free — like the software inside.
Dear open source,
You have never met us, and yet you built the ground we stand on. Every conversation that flows through WA.cr, every order confirmed, every page served — all of it travels on code that strangers wrote carefully, tested honestly and gave away freely, asking nothing in return.
We kept our dependency list short on purpose. Not out of thrift, but so that every library we lean on is one we genuinely know — read, understood and appreciated, never taken for granted.
So here is our promise: we will file the bug reports, star the repositories, send patches when we can, and say thank you properly. This page is that thank-you.
— the WA.cr team
THE GRATITUDE WING
Standing on the shoulders of giants
38 open-source packages work in the product, 14 in the workshop, and 7 foundations sit underneath everything.
38 + 14 + 7 = thank-yous
credited as 55 projects — the @types/* packs share one DefinitelyTyped card.
In the product
- clsxA featherweight helper that decides which styles apply when — small enough to read over chai.MIT
- CVAKeeps buttons and badges consistent, so “primary” means the same thing on every page.Apache-2.0
- Drizzle ORMLets us ask the database questions in a safe, typed way — fewer surprises, sturdier data.Apache-2.0
- Emoji MartThe delightful emoji picker in our chat composer — search, categories, skin tones, the lot.MIT
- Emoji Mart DataThe picker’s dictionary — every emoji, every name, every shade.MIT
- Emoji Mart ReactThe snap-in piece that fits the emoji picker neatly into our screens.MIT
- ExcelJSReads and writes proper Excel files — because half the world’s business runs on spreadsheets.MIT
- fflateSqueezes files smaller at remarkable speed, keeping transfers quick and light.MIT
- Google Cloud BigQueryAdds up the very big numbers behind our usage and cost reports.Apache-2.0
- Google Cloud StorageMinds the photos, voice notes and documents your conversations exchange — safe and sound.Apache-2.0
- Google Cloud TasksThe reliable to-do list that makes sure background work happens at just the right moment.Apache-2.0
- Google Secret ManagerThe vault our sensitive keys live in, so they’re never scribbled anywhere they shouldn’t be.Apache-2.0
- gray-matterKeeps every help-centre article tidily labelled, with the housekeeping tucked out of sight.MIT
- intl-tel-inputThe friendly phone field with flags and dialling codes for every country on Earth.MIT
- ioredisKeeps often-needed answers within arm’s reach, so screens never keep you waiting.MIT
- joseLooks after the tamper-proof tokens that prove you’re you, every single sign-in.MIT
- libphonenumber-jsMakes sure every phone number on the platform is really a phone number.MIT
- LucideEvery icon on the platform comes from this one lovely, consistent set.including the 267 different icons across WA.cr — several performing on this very page.ISC
- MiniSearchThe featherweight search engine behind our help centre — answers arrive as you type.MIT
- MotionThe gentle animations that make screens feel alive instead of abrupt.MIT
- Nano IDMints tiny, collision-proof IDs so every record stays unmistakably itself.MIT
- next-themesRemembers whether you like light or dark mode, and never flashes the wrong one at you.MIT
- Next.jsThe engine room of every WA.cr page — fast first loads, smooth navigation, no drama.MIT
- node-qrcodeDraws the scannable codes that put a WhatsApp chat one camera-click away.MIT
- opus-recorderCaptures voice notes right in the browser and compresses them beautifully, so they send in a flash.MIT + BSD-3-Clause
- Papa ParseTakes in big CSV files without breaking a sweat — bulk contact imports made painless.MIT
- PDF.jsMozilla’s PDF reader, so documents open right where you are instead of in a downloads folder.Apache-2.0
- PinoKeeps a fast, orderly diary of what the platform is up to, so we notice hiccups before you do.MIT
- Postgres.jsThe swift courier that carries every query to the database and hurries back with answers.Unlicense
- ReactThe building blocks for everything you see and click across the platform.MIT
- React DOMReact’s stagehand — it paints those building blocks onto your actual screen.MIT
- react-markdownTurns plainly written text into cleanly formatted pages, safely.MIT
- remark-gfmTeaches our text formatting some extra tricks — tables, task lists and strikethrough.MIT
- sharpResizes and optimises every image in a blink, so photos arrive fast on any connection.Apache-2.0
- SimpleWebAuthn BrowserLets you sign in with a fingerprint or face — passkeys instead of yet another password.MIT
- SimpleWebAuthn ServerThe other half of the passkey handshake — checks it was really your device that answered.MIT
- tailwind-mergeReferees styling disagreements so the right look always wins.MIT
- ZodThe polite but firm doorman that checks every piece of incoming data before letting it through.MIT
In the workshop
- AutoprefixerAdds the browser-specific spellings automatically, so styles work everywhere.MIT
- BiomeOur tireless proofreader, keeping a third of a million lines tidy and consistent.MIT OR Apache-2.0
- DefinitelyTypedA community-run encyclopaedia of type definitions — 5 packs of it keep our code honest.MIT
- Drizzle KitPlans and applies every careful change to the database’s shape.MIT
- pino-prettyMakes the platform’s diary readable for the humans who keep watch.MIT
- PostCSSQuiet machinery that turns our styles into something every browser understands.MIT
- Tailwind CSSThe styling system that keeps every corner of WA.cr looking like one product.MIT
- tsxRuns our TypeScript scripts on the spot, no ceremony required.MIT
- TurborepoConducts the build orchestra so the many parts of WA.cr come together quickly.MIT
- TypeScriptThe language nearly all of this is written in — it catches mistakes before they ever reach you.Apache-2.0
The foundations
- CaddyA web server that sorts out its own HTTPS certificates — security with zero fuss.Apache-2.0
- DockerPacks software into neat, identical boxes so it behaves the same everywhere it runs.Apache-2.0
- GitRemembers every step of the journey — every change, every day, from day one.GPL-2.0
- Node.jsThe quiet workhorse that runs it all, from web pages to background jobs — and our test runner too.MIT
- PM2The minder that keeps long-running services up, and picks them back up if they stumble.AGPL-3.0
- pnpmFetches and organises all these wonderful projects — fast, and without wasting a byte.MIT
- PostgreSQLThe world’s most trusted open-source database — where the platform’s data lives, dependably.PostgreSQL
To everyone who maintains a package at 11 pm for strangers they will never meet — thank you. WA.cr exists because you do.
Exhibits remain the property of their maintainers
GALLERY ONE
The Permanent Collection
EXHIBIT 01
lines of TypeScript
and every one of them argued with the type-checker
EXHIBIT 02
lines of documentation
330 pages — we enjoy explaining ourselves
EXHIBIT 03
lines of SQL
the ground floor everything stands on
EXHIBIT 04
lines of shell script
the museum's plumbing, kept in working order
EXHIBIT 05
lines of CSS
the smallest exhibit, and proud of it
EXHIBIT 06
database migrations
careful renovations, zero closures for maintenance
EXHIBIT 07
API endpoints
ways for machines to talk to us, politely
EXHIBIT 08
screens
ways for humans to talk back
EXHIBIT 09
test files
the boring number that lets us ship quickly
EXHIBIT 10
changelog entries
every change written down — none of them say "misc fixes"
EXHIBIT 11
different icons
one icon library. Monogamy works.
EXHIBIT 12
open-source projects
meet them all in the Hall of Giants below
Language composition of 3,38,595 lines in total: TypeScript — 2,94,233 lines (86.9%), Markdown — 31,837 lines (9.4%), SQL — 7,936 lines (2.3%), Shell — 3,773 lines (1.1%), CSS — 816 lines (0.2%).
- TypeScript · 2,94,233 · 86.9%
- Markdown · 31,837 · 9.4%
- SQL · 7,936 · 2.3%
- Shell · 3,773 · 1.1%
- CSS · 816 · 0.2%
Counted in the Indian numbering system, naturally.
GALLERY TWO
The Cadence Room
days
weekends included
commits
about 27 a day — one roughly every 52 minutes
releases
~4.3 a day. The changelog never sleeps.
1,236 commits across 45 consecutive days, averaging 27 per day, with 194 tagged releases.
PLEASE DO NOT TOUCH THE COMMITS
INTERACTIVE EXHIBIT
If someone typed it all by hand
Typing all 1,36,68,901 characters in this repository — that is 1.4 crore — at 40 words per minute would take 1,139 hours of nonstop keystrokes, or 142 working days without a single chai break.
characters — that is 1.4 crore
INTERACTIVE EXHIBIT
If you printed it
A4 pages
reams of paper
centimetres tall
knee-height. Please don't.
PLEASE DO NOT PRINT THIS REPOSITORY
Printed at 55 lines per A4 page, the WA.cr codebase runs to 6,156 A4 pages — 12 reams of paper in a stack about 62 centimetres tall, just short of a cricket stump.
The Marquee Exhibit
The Thought Experiment
COCOMO (Boehm, 1981) is the textbook formula for estimating software effort from size. We fed it our 2,94,233 lines of TypeScript — and then asked the opposite question too. Both answers are printed below with a straight face.
If humans typed every line
- effort
- person-months
- or
- 78.2 person-years
- team
- ≈ 28 engineers
- schedule
- ≈ 2.8 years
If a machine wrote every line
- output
- tokens
- or
- 39.1 lakh of them
- assumptions
- 3.5 characters per token · 50 tokens per second
- schedule
- ≈ 22 hours, nonstop
Drawn on one shared time scale, the machine hypothesis covers about 0.09 per cent of the human hypothesis bar.
Somewhere between 22 hours and 78.2 person-years is where real software gets made.
COCOMO (organic mode) run on our real line count. It is a 1981 model — folklore by now, but well-loved folklore. The machine column is folklore from the other direction.
EXIT
Exit through the gift shop
The numbers are nice. The product is nicer.
Everything you just walked past was built so a business on WhatsApp can greet faster, sell simpler and sleep easier.
COLOPHON
Every figure in this museum is counted by a script straight from our repository — we did the maths, a machine did the counting. Last counted 9 July 2026 at release v0.0.195.
Licences shown on each card come from the packages’ own metadata.
This page loads nothing from anywhere else — no trackers, no third-party fonts, no fetched logos. The outbound links are yours to click.
The museum café serves only chai. This is not negotiable.