The facepalm moment
You've probably typed "todo" thousands of times without thinking twice about it.
Here's the thing: "todo" isn't a real English word.
The correct form is "to-do" — hyphenated, two words fused into one concept by a tiny piece of punctuation. The unhyphenated "todo" that lives in your muscle memory? It's a programmer's shortcut that leaked into everyday language. And if you've spent any time writing code or using digital productivity tools, you probably never even noticed the swap.
Don't feel bad. Most people haven't.
The five lives of a hyphen
The walkthrough below traces how a small punctuation mark got optimized out of existence. Click through each era to watch "to-do" transform — from Victorian commotion to your last Slack message.
The Commotion
1800sto-do
“What a tremendous to-do over nothing!”
In the 1800s, the hyphenated form debuted as a noun meaning fuss or commotion. The hyphen fuses "to" and "do" into a single concept — turning an action into a thing you can point at.
Why the hyphen exists at all
English has a compounding problem. When two separate words start working together as a single concept, you need some way to signal that they're a team. That's the hyphen's job.
Take "to" and "do." Separately, they're a preposition and a verb — two words minding their own business. "I have things to do." No hyphen needed.
But the moment you fuse them into a noun or an adjective, the hyphen shows up:
- As a noun: "What a to-do!" (a thing — a commotion, a fuss)
- As an adjective: "A to-do list" (the hyphen tells your brain that "to" and "do" modify "list" together, not separately)
This grammatical pattern is called a compound modifier — when multiple words team up to describe a single noun. English is full of them: "well-known author," "high-quality code," "state-of-the-art model." The hyphen is the glue that holds the meaning together.
How programmers killed it
In the 1970s and '80s, as software development matured, coders needed a way to leave breadcrumbs in their source code — markers that said "this isn't done yet, come back later." The convention that emerged was a simple comment tag: // TODO.
The hyphen never had a chance. Three forces conspired against it:
Search tools. If you're using grep — a command-line utility that searches text files for matching patterns — to find every unfinished task across a codebase, a hyphenated TO-DO is a headache. Hyphens are special characters in many search syntaxes and regular expressions (pattern-matching rules that use symbols as operators). The flat TODO is frictionless to find.
Syntax parsers. Some programming languages and tools treat hyphens as operators — subtraction, negation, command-line flags. A bare TODO lives safely inside any comment in any language. TO-DO might confuse the parser.
Keystrokes. Programmers type a lot. Dropping one character — especially a shifted character on most keyboard layouts — is a micro-optimization that, multiplied across millions of developers and billions of comments, adds up to a cultural shift.
By the time Stack Overflow launched in 2008, TODO without a hyphen was universal in codebases worldwide. No style guide debated it. No committee voted. It just happened.
The plural problem sealed it
When productivity apps exploded in the 2010s — Todoist, Microsoft To Do, Apple Reminders, Notion — they all needed a clean plural noun for tasks. And here's where English grammar got awkward:
- "To-dos" looks clunky. That hyphen dangling before the plural suffix feels wrong even when it's technically right.
- "To-do's" is just incorrect. Apostrophes don't make plurals in English, despite what every grocery store chalkboard suggests.
- "Todos" is clean. No clutter, no ambiguity, no grammatical landmines.
Tech culture had already normalized "todo" in code. App culture gave it a clean plural. Casual writing adopted both. The hyphen became optional in practice, even if grammar books still insist on it.
So which should you use?
The honest answer: it depends on who's reading.
Formal writing — essays, resumes, published articles, anywhere a copy editor might review your work — use "to-do." The hyphenated form is still the standard in every major style guide.
Code — always TODO. This isn't a grammar question; it's a convention. Every major IDE highlights it, every linter can find it, every developer expects it.
Everything else — "todo" and "todos" are perfectly fine. In Slack messages, personal notes, project boards, and casual emails, nobody will bat an eye. Language evolves, and this particular evolution already won.
The hyphen isn't dead. It's just resting — in the grammar books, waiting patiently for that one formal document where it still matters.