The letter that shows up most is probably E. Go from there.
Chrono Cipher is a daily puzzle that makes you break a substitution cipher the way a real cryptanalyst does: by counting letters, not guessing words.
Stare at a coded message long enough and one symbol starts to nag you: it turns up everywhere, far more than the rest. In English that symbol is almost always E. The next tier down is T, A, O. A cipher-word two letters long is probably IT or IS or IN. None of that is a guess. It is counting, and it is the first thing anyone who has ever broken a code by hand actually does. That habit is a real, teachable skill, and no daily puzzle was asking players to use it. So I built one that does.
What it is
Chrono Cipher is a once-a-day puzzle. Each morning a short historical quote is hidden behind a letter-substitution cipher, and you crack it. If you already do Wordle or Connections with your coffee, this is the same slot in the day with a different muscle: pattern recognition and statistical inference instead of vocabulary recall. The payoff at the end is finding out whose words you just decrypted.
The mechanic is classic substitution solving, not letter-by-letter guessing. You pick a symbol in the coded text, decide what plaintext letter you think it stands for, and every copy of that symbol flips over at once across the whole document. Get it right and the message gets more readable everywhere; get it wrong and the cell shakes and you try again. You are building a key, one deduction at a time, and watching the fog lift.
The hint is the move you'd make anyway
Here is the part I actually care about. Most puzzle games fake their hints with a scripted list of "reveal letter 3 on turn 4" flavor text. Chrono Cipher's hint engine is real cryptanalysis. It ranks the ciphertext's own symbols by how often they appear in this specific puzzle, then, when you ask, reveals the highest-frequency letter you have not solved yet. That is not a canned nudge. It is precisely the move a human with a pencil makes first, because English is so lopsided that a handful of letters carry most of the text. The frequency panel is live on screen the entire time, so ideally you never press the button at all: you read the counts, spot the likely E yourself, and the hint is just there as a safety net for when you are genuinely stuck.
The whole thing runs with no server, no account, and no database. The date is the only shared
state. A function turns today's calendar date into a day number, seeds a small deterministic
PRNG (mulberry32) with it, and that PRNG reproduces the exact same substitution map for every
player on Earth on a given UTC day. Everyone gets the identical puzzle, and the entire game
ships as static files. Your progress lives in your own browser via localStorage, so a reload
never costs you your work.
No letter is allowed to be itself
One small rule turned out to matter more than I expected. When you generate a random substitution map, some fraction of the time a letter maps to itself: A stays A, R stays R. That is a free, unearned correct letter sitting in the grid, and it makes the puzzle feel broken. So the map is rerolled until no letter maps to itself. Mathematicians call that a derangement, and for a 26-letter alphabet only about 37% of random permutations qualify, so on average you toss out two or three before one passes. Cheap insurance against a puzzle that hands out gimmes.
The other decision I am quietly proud of is the share grid. When you finish, you can copy a Wordle-style block of emoji encoding your solve time and which letters you deduced (green) versus revealed with a hint (yellow). It never contains the quote or the plaintext, so you can post it the moment you solve, before anyone else in your feed has played that day. Bragging rights without spoilers.
Try it
Open today's puzzle, find the most common symbol in the frequency panel, and try it as E. From there, hunt for a one- or two-letter cipher-word and reason about what short English word it could be. You will feel the message start to give way under you within a minute. Solve the last letter and the file gets stamped DECRYPTED, the quote types itself out with its author, and your emoji grid is one click from your clipboard.
This post is part of the build log: every app my automated factory ships gets written up here, honestly. Browse everything at apps.charliekrug.com. Comments are open below.
Loading comments…