Tier List Maker

Drag-and-drop S/A/B/C/D tier lists. Upload images, customize tiers, export PNG. Browser-only, auto-saves locally.

published

  • [FREE]
  • [NO_SIGNUP]
  • [NO_UPLOAD]

A tier list maker is a small tool for ranking anything — characters, foods, albums, productivity apps — into ordered rows labeled S, A, B, C, D. This one runs entirely in your browser: your images never upload, your placements auto-save, and exporting is a single click.

How to use

  1. Upload images. Click Upload images or drag PNG / JPG / GIF / WebP files onto the page. They land in the pool row.
  2. Drag to rank. Drag each image into the S, A, B, C, or D row. Reorder within a row by dragging an image left or right of its neighbors.
  3. Customize tiers. Click a tier label to rename it (“God Tier”, “Trash”, “Mid”). Click the color swatch to pick a custom hex. Use ↑/↓ to reorder rows. The × button removes a tier — its items spill back to the pool, not the trash.
  4. Add more tiers. Add tier appends a new row at the bottom (defaults to the next unused letter). There is no hard cap, but going past ~10 tiers tends to feel cluttered.
  5. Export. Export PNG downloads a 1200×N image containing every row exactly as displayed. Share it on Twitter, Reddit, or Discord.

Storage and persistence

Your tier list — including the actual image bytes — is stored in your browser’s IndexedDB under tier-list-maker. That means:

  • Closing the tab does not lose your work. Reopen the page and the same tier list appears.
  • Switching browsers or devices does lose your work. IndexedDB is per-origin, per-browser, per-profile.
  • Private / incognito tabs flush IndexedDB on close. Don’t build a long tier list there.
  • Clear all wipes the IndexedDB store for this tool — irreversibly.

If you want a permanent backup, Export PNG and save the file. There is currently no JSON export / import; the tool optimizes for “make one, share the image, move on.”

Drag and drop on mobile

HTML5 drag-and-drop events don’t fire reliably on touch devices, so the tool sniffs matchMedia('(hover: none)') and switches to tap-to-place: first tap an image to select (it gets a green outline), second tap on a tier drops it at the end of that row. A hint appears in the stats line whenever a selection is active.

The trade-off is that you can’t drop an image at a specific position inside a row on touch — only at the end. Reorder within a row by drag-and-drop on desktop, or by removing and re-adding on mobile.

Privacy

Every operation is local:

  • Uploads use the browser’s file API — no fetch, no XMLHttpRequest, no service worker.
  • Images are stored as Blob objects inside IndexedDB.
  • The exported PNG is composited via OffscreenCanvas and saved with URL.createObjectURL — never sent anywhere.
  • The share-link pattern used elsewhere on this site is intentionally not used here, because images can’t fit in a URL fragment.

Open DevTools → Network while you upload, arrange, and export. The only request you’ll see is the initial page load.

How it compares

bytefork.toolstiermaker.comcanva.com tier list
Runs in browser onlypartial (uploads sent)✗ (Canva account)
Free, no signup✓ (limited free)
Custom tier colorspartial
Persists between reloads✓ (IndexedDB)✓ (server-side)✓ (Canva account)
Watermark on export✓ on free plan
Ads
Privacy: images stay on device

Tips

  • Drop many images at once. The file input accepts multiselect; drag a folder’s worth of screenshots in one go.
  • Any aspect ratio is fine — the cell is 96×96 and each image is shown whole (letterboxed), so wide or tall images keep their full content visible.
  • Use color to encode meaning. Default S is red (hottest), D is blue (coolest). Swap them or add a black “Banned” tier at the top for items you want to call out.
  • Rename tiers as categories, not just letters. “Daily drivers”, “Beta”, “Abandoned” works just as well as S/A/B.

Frequently asked questions

Where are my images stored?

On your device only. Images live in your browser's IndexedDB and never leave the page. Open DevTools → Network while you upload and arrange — no requests fire. The exported PNG is generated locally too.

Will I lose my tier list if I close the tab?

No. The whole state — tier names, colors, image placements, and the image data itself — auto-saves to IndexedDB. Reopen the page later and pick up where you left off. To wipe everything, use the Clear all button.

Can I rename tiers and change their colors?

Yes. Click a tier label to edit the name (up to 24 characters). Click the color swatch next to a row to pick any hex color — the label text auto-flips between black and white for contrast.

Can I add or remove tiers?

Yes. Use Add tier to append a new row (it picks the next unused letter A–Z by default). The × button on a tier deletes it and pushes its items back to the pool. Use Reset tiers to restore the default S/A/B/C/D layout — your images stay in the pool, not deleted.

How do I export the finished tier list?

Click Export PNG. The tool composites every tier row and every image into a single 1200px-wide PNG and downloads it. Resolution is fixed at 96px per cell for predictable layout. Good for sharing on Twitter, Reddit, or Discord.

Does it work on mobile?

Yes. Mobile browsers do not fire HTML5 drag events, so the tool detects touch devices and switches to tap-to-place: tap an image to select it, then tap the destination tier. The toolbar shows a hint when an image is selected.

What image formats are accepted?

PNG, JPG, GIF, and WebP — anything the browser can decode with createImageBitmap. Animated GIFs are rendered as their first frame in the exported PNG. There is no per-file size limit beyond what your browser's IndexedDB will hold.

Is there a watermark or sign-in?

No watermark on the exported PNG (just a small "bytefork.tools/tier-list-maker" attribution in the footer). No account, no ads, no upgrade prompts, no usage limits.

How do I make a copy or start fresh?

Use Clear all to wipe every image and reset to the default S/A/B/C/D layout. There is currently no built-in "save multiple tier lists" feature — to keep one and start another, export it as PNG first, then clear.