Connections Maker

word-puzzle builder
Side project · 2026

Build your own NYT Connections-style puzzle and hand it to a friend with one link, no account, no server, nothing to sign up for.

Connections Maker screenshot
Demo · building four groups and copying a share link

The New York Times Connections puzzle is great, but there's exactly one a day and you can't make your own. I wanted to build a private puzzle for a friend's birthday (sixteen words, four hidden categories), and there was no clean way to do it without standing up an account system and a database to hold a few dozen words.

So I skipped the backend entirely. Connections Maker lets you author a puzzle in the browser and the whole thing (words, groups, labels, colors) gets packed into the share URL itself. There's no account to create, nothing stored on a server I run, and no link that quietly expires. You send the URL, the recipient opens it, and the puzzle is just there.

Authoring one

How the link works

Generating a share link serialises the puzzle to JSON, encodes it as base64url and hangs it off the URL as ?p=…. That link is the puzzle. Nothing is written to a database, nothing expires, and no server of mine ever sees the words. It rides in a query string rather than a hash fragment for a specific reason: chat apps and unfurlers truncate at #, so every puzzle used to preview as the homepage. Links made in the old #p=… form still open.

A full puzzle URL runs 500 to 800 characters, which SMS refuses to auto-link and will happily split across message segments mid-link. So the app asks TinyURL to shorten it and hands you the short version. Worth saying plainly: that step sends the puzzle through TinyURL's servers rather than straight to the recipient. If TinyURL is unreachable the label changes to "shortener unavailable" and you copy the full link, which works identically.

Playing it

Built with

React 19 · TypeScript · Vite 8 · Tailwind v4, with canvas-confetti for the win animation. No router and no state library, navigation is history.pushState. Four dark themes, remembered between visits. Deployed as a static build to GitHub Pages, so there is nothing to run, scale or pay for; the only things that leave the browser are the share link when TinyURL shortens it and a cookieless visit counter.

← all projects