Wordle is the deceptively small puzzle that ate 2022. Josh Wardle shipped the first version in October 2021 as a private project for his partner, released it publicly a few weeks later, and by January 2022 The New York Times had acquired it for what Reuters and the Wordle Wikipedia article both peg at a low-seven-figure sum (verified against the game's Wikipedia entry on 2026-08-08). The mechanic is one sentence: guess a five-letter word in six tries, with per-letter green, yellow, and grey feedback after each guess. The implementation is one afternoon of code, and it is one of the cleanest first-projects an aspiring browser-game developer can pick up in 2026. In this guide the pipeline runs from an empty repo to a shareable browser build: source or generate a five-letter word list, prompt WizardGenie to scaffold a React project with a 6x5 guess grid and a virtual keyboard, get the two-pass colour-feedback logic right (this is the one part everyone gets wrong on the first try), rotate the daily answer with a fixed epoch seed, and finish with tile art from Sorceress AI Image Gen and key-click sound effects from SFX Gen.
What “how to make Wordle” actually means in 2026
The phrase “how to make Wordle” hides three different requests. Some searchers want to clone the original Josh Wardle release as a coding exercise, matching the exact 2315-word answer list, the 12972-word allowed-guess list, and the emoji share format. Some searchers want to build a Wordle-style word game as a portfolio piece in vanilla React or plain HTML, learning the state model and the colour-feedback algorithm along the way. And some searchers want to ship an actual daily word puzzle on their own domain, competing in the crowded post-Wordle sub-genre alongside Quordle, Dordle, Absurdle, Semantle, and Contexto. This guide focuses on the second and third groups: how to make Wordle as a browser build that runs on any modern phone or desktop browser, and how to make it your own so you can put it up under a name that is not owned by The New York Times.
Two ground rules matter before any code gets written. First, the game mechanic (six guesses, five letters, green/yellow/grey feedback) is not copyrightable, so the loop itself is fair use. Second, the name Wordle and the specific NYT typography are trademarked, so pick a new name (Guess Grid, Five Letters, Word Vault, Daily Five) and pick a distinct palette. Every hit clone since 2022 has done exactly this - the mechanic is public, the branding is not.
The Wordle game loop in one minute (input guess score colour reveal)
Five moving parts and nothing else. A hidden five-letter answer word chosen from a curated answer list. A 6-by-5 grid of tiles that starts empty. A virtual keyboard (plus physical keyboard listener) that lets the player type letters into the current row. A submit action, fired by pressing Enter, that validates the current row against an allowed-guess word list (if the word is not in the list, shake the row and reject the submission - do not consume a guess). And a colour-feedback pass that runs once per submitted guess, marking each tile position green, yellow, or grey based on comparison with the answer.
That is the entire game. Win state fires when a full green row is submitted (typically animated with a small confetti burst or bounce). Loss state fires when all six rows are used without a green match (typically animated by revealing the answer above the grid). A share button generates a text-and-emoji summary of the tile colours without leaking the answer. Persistence is one localStorage key that stores today's guesses plus a lastPlayed date, so refreshing the browser does not reset progress mid-game.
Pick your engine for how to make Wordle: vanilla React, Phaser 4, or plain HTML
Three good browser targets in 2026, each with a different trade-off. React 19.2 (verified against react.dev/blog on 2026-08-08) is the default recommendation for a standard Wordle build. Wordle is a UI-driven text game with no per-frame render loop - the entire visual state can live in a single React component tree, with a useState hook for the guess grid, a useEffect for the daily-seed rotation on mount, and CSS transitions for the tile flip animation. Bundle size lands around 45 KB gzipped for a clean React 19 build, which is fine for a mobile browser and instant on a desktop.
Plain HTML plus a single <script> tag is the leanest option. You write about 200 lines of vanilla JavaScript, produce a build under 20 KB total, and end up with something eligible for a Mozilla-style local-storage tutorial or a JS13K jam entry. The trade-off is that every DOM update has to be written by hand instead of leaning on a virtual-DOM diff, so debugging state is on you. Use plain HTML if you want the exercise or the tiny build size; use React if you want the game done by Sunday night.
Phaser 4.2.1 Giedi (released 9 July 2026, verified against phaser.io/download/stable on 2026-08-08) is possible but overkill for a straight Wordle clone. Phaser is built for real-time game loops with sprite animation, physics bodies, and per-frame updates, none of which Wordle needs. The 900 KB minified runtime is dead weight for a text-input game. Reach for Phaser only if you plan to bolt on real-time visual effects the standard game does not have - particle explosions on a green row, animated tile-flip cascades, a physics-based confetti burst on a win, an animated background layer. WizardGenie will scaffold in any of the three based on the prompt.
Step 1 — source or generate the five-letter word list
Two word lists power Wordle: the answer list (words the game can pick as today's puzzle) and the allowed-guess list (words the player is allowed to type without the row rejecting). Original Wordle used a 2315-word curated answer list and a 12972-word allowed-guess list. Both lists have been public since the game launched in 2021 and are widely mirrored on GitHub, but there are three cleaner sources depending on your goals.
Option one, the fastest: grab the open-source dwyl/english-words repository, filter to five-letter entries, and split into two lists (curated common words for answers, full filtered list for allowed guesses). Under MIT license, roughly 15,918 five-letter words after filtering. Option two, the traditional: use ENABLE (Enhanced North American Benchmark LExicon), a public-domain Scrabble word list widely used in word games. Option three, the manual: write your own 500 to 1000 answer words that fit your target audience (kids-safe, sci-fi themed, cooking themed, whatever the game concept needs). A themed word list is what actually differentiates a Wordle-style build from Wordle itself - Semantle uses semantic similarity, Contexto uses relatedness, your build might use only cooking terms.
Store both lists as static JSON in the project (/public/answers.json and /public/allowed.json). Load once on app start, keep in memory. Even the full 12972-word allowed list is under 100 KB uncompressed and gzips to about 30 KB, which is a one-time cost paid on first visit and cached forever.