What’s changed
Every phase ships something usable on its own. Corrections stay on the record rather than being quietly edited away — where a plan turned out wrong, the entry says so.
Share links, remix, and a page for every board
A published board gets a permanent link, server-rendered from one read — no catalog API calls on the public page.
- Publish dialog with title, description and public / unlisted / private
- Remix opens anyone’s board as your own copy
- /tierlists lists what you have published, with copy-link, edit and delete
Shipped before Phase 2, which is the one thing the plan said not to do: published documents now have to be backfilled when the generalized item model lands, instead of the migration being a pure client-side function.
f3972d2The editor moved to /tierlist and / became a feed
A newsfeed-style landing page: hero, chronological feed of recently published boards, announcements, quick links.
- Server-rendered, with the search term in the query string
- Sort tabs are plain links, so the page needs no client bundle
c3236edThe Share and PNG buttons had invisible borders
The button base set a transparent border that silently beat every variant’s. A property now belongs to exactly one layer: if variants set it, the base must not.
c3236edOptional sign-in with Google and GitHub
Accounts gate nothing except publishing. The app still runs with no backend configured — the account UI simply hides itself.
9b5d0ebTier reordering shipped after all
It was listed as deliberately skipped. It is in the build: drag a row by its label, or use the arrows.
11405eeCovers stopped failing at random
Cover art is only sent cross-origin headers when the request carries an Origin, and the browser cache does not key on request mode — so a cached copy poisoned every later load. One cache-busting retry clears it.
5367350The catalog is a drag source, not a drop target
Results come from the API, so “drag a title back into the results” means nothing. Removal happens on the card and in the detail modal instead.
- The catalog shows trending when the box is empty, so the grid is never blank
- The tool rail’s last slot is Load save file, not a settings gear
The editor, end to end and entirely client-side
Search a real catalog, drag titles into tiers, undo, autosave, export. The whole product for a single user, with no account.
- Drag between any row and the pool, and reorder within a row
- Detail modal per cover: synopsis, score, studio, genres, outbound links
- Autosave to this device, plus .json export and import
- Export a PNG of the whole board
d9ae800Scaffold
Next.js 16 App Router, TypeScript, Tailwind v4, dnd-kit, deployed.
The plan required an `images.remotePatterns` entry for s4.anilist.co. It was never needed — the app uses plain <img>, not next/image.
69cfe31