Analysis updated 2026-06-21
Check which assumptions about phone numbers, dates, or addresses will cause bugs before writing your validation code.
Read background articles to understand why storing a person's name or a date is harder than it looks.
Share with a new developer as a primer on real-world edge cases in domains like billing or localization.
Use as a pre-code-review checklist when building features that touch messy real-world data.
| kdeldycke/awesome-falsehood | jashkenas/underscore | emscripten-core/emscripten | |
|---|---|---|---|
| Stars | 27,339 | 27,340 | 27,347 |
| Language | — | JavaScript | C++ |
| Setup difficulty | easy | easy | hard |
| Complexity | 1/5 | 1/5 | 4/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Awesome Falsehood is a curated list of articles about ideas programmers commonly believe to be true but that turn out to be false. The README gives the canonical example of email validation: many people assume a valid email address contains exactly one at-sign and write code based on that rule, when in reality addresses can contain multiple at-signs. Each linked article in the list collects this kind of mistaken assumption for a particular domain, so you can learn the edge cases before they bite you in production. The repository itself is not software. It is a single readme that groups links into categories: Meta, Arts, Business, Cryptocurrency, Dates and Time, Education, Emails, Geography, Human Identity, Internationalization, Management, Multimedia, Networks, Phone Numbers, Postal Addresses, Science, Society, Software Engineering, Transportation, Typography, Video Games, and Web. Each entry is one bullet with a short description plus a link to an external article or resource that lays out the falsehoods for that topic in detail. The Business section, for example, links to pieces about online shopping, prices, IBANs, economics, and real incidents where bad assumptions about money produced 100x overcharges in production accounting systems. Someone would use it when they are about to write code that touches one of these messy real-world domains, for instance form validation, address handling, localization, billing, or scheduling, and want to check ahead of time which simple assumptions are going to fail. It is also useful as background reading for new developers who want to understand why seemingly straightforward problems, like storing a person's name or a date, are harder than they look. Because it is a list of links rather than a program, there is no language or framework involved. The readme is in the standard awesome-list format, has a Chinese translation alongside the English version, and is maintained by Kevin Deldycke through community pull requests.
A curated list of articles exposing common false assumptions programmers make about real-world domains like dates, names, emails, phone numbers, and addresses, so you can learn the edge cases before they cause production bugs.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.