explaingit

kdeldycke/awesome-falsehood

27,339Audience · developerComplexity · 1/5ActiveLicenseSetup · easy

TLDR

A curated list of articles about false assumptions programmers make, like thinking emails have one '@' or names follow a simple pattern, that cause real bugs in production systems.

Mindmap

mindmap
  root((repo))
    What it covers
      Dates and time zones
      Names and identity
      Addresses and geography
      Phone numbers
      Currencies
    Why it matters
      Prevents data bugs
      Catches edge cases
      Real-world failures
    How to use it
      Pre-feature checklist
      Reference guide
      Learning resource
    Audience
      Backend developers
      Form builders
      System designers

Things people build with this

USE CASE 1

Check assumptions before building a user registration form that collects names, emails, or addresses.

USE CASE 2

Learn why your international payment system broke for customers in certain countries or time zones.

USE CASE 3

Review edge cases in phone number validation or postal address parsing before shipping.

USE CASE 4

Understand real-world data complexity when designing schemas for user profiles or contact information.

Getting it running

Difficulty · easy Time to first run · 5min
Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

In plain English

This repository is a curated awesome-list, a long, organized index of links to external articles rather than working code, devoted to "falsehoods programmers believe." A falsehood, as the README defines it, is an idea you initially believe is true but which turns out to be false in practice. The classic example given is that a valid email address contains exactly one @ character: an intuitive rule, but real-world email addresses can contain more than one, so any implementation that enforces the simple rule will reject legitimate addresses. The list collects articles that catalogue these false beliefs across many domains. The table of contents groups them into sections including meta-commentary, 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 the web. Each entry is a short description followed by a link out to the article it points to, and some entries also link to libraries or datasets (for example, the IANA Time Zone Database or a PHP tax library) that exist precisely because the underlying domain is harder than it seems. You would use this when you are about to write validation logic, data models, or business rules that touch any of these areas, names, addresses, dates, currency, identity, and so on, and want to learn in advance which assumptions are likely to bite you in production. The repository itself is just a markdown index, so it does not list a primary programming language. The full README is longer than what was provided.

Copy-paste prompts

Prompt 1
I'm building a form to collect user names and addresses. What false assumptions should I watch out for based on the awesome-falsehood list?
Prompt 2
Show me examples from awesome-falsehood of why email validation is harder than checking for one '@' symbol.
Prompt 3
What does awesome-falsehood say about time zones and date handling that could break my scheduling feature?
Prompt 4
Help me audit my phone number validation logic against the falsehoods listed in awesome-falsehood.
Prompt 5
Which awesome-falsehood articles are most relevant for building a multi-currency payment system?
Open on GitHub → Explain another repo

Generated 2026-05-21 · Model: sonnet-4-6 · Verify against the repo before relying on details.