Skip to content
PoGoBud

Share card and offline

Send the group a picture of the counters — and work offline.

Everything on this page is drawn and saved in your browser. The card is a real canvas, not a screenshot, so the PNG comes out crisp — and it deliberately draws its own artwork rather than pulling sprites from a CDN, which is what lets it export with no network at all.
Drowzee · Tier 1
psychic
Top counter
Necrozma (Dawn Wings)
Its estimator
0.06
Its time to win
0:10

The card

Offline

OnlineChecking what this browser allows…

That is the hub, all ten tools, every worked example they link to, the raid counters page and the offline fallback — 23 pages. Drowzee adds 5 more, because the tools keep their whole state in the query string: a saved copy of /tools/group is not an answer to /tools/group?boss=… and the offline worker will not pretend it is.

Install it

PoGoBud ships a web app manifest at /manifest.webmanifest with its own icons, so a phone browser offers "Add to Home Screen" (Android: the browser menu; iOS: Share then Add to Home Screen). It opens straight to the tools hub in its own window.

What works with no signal

  • Any tool page you have saved, with the answer it had when you saved it.
  • Their stylesheets and scripts, saved with them, so a saved page still looks like itself.
  • This card — it draws and exports entirely in the browser.
  • Pages you have not saved fall back to a plain offline page rather than a browser error.

Checked, not just claimed. gauntlet/verify-offline.ts drives this page in a real Chrome: it presses the button above, requires navigator.serviceWorker.controller to become non-null, switches the network off at the browser, and then requires /tools/iv?species=mewtwo&cp=2334&hp=136 and /tools/group?boss=mewtwo to come back with their real answers, an unsaved URL to fall back to the offline page, the saved page to carry as many live CSS rules offline as it did online, a button on a cache-served page to still work, and an /api/ request — which the worker deliberately never caches — to fail, proving the network really was off. Nine checks, all nine passing against a built server; eight of the nine against next dev, where the ninth cannot be asked because the dev server's own hot-reload socket has to open before anything on the page hydrates. Verdicts and screenshots land in screenshots/wave-6/offline-proof-*.json.

If the panel above says this browser refused the worker, that is the browser's policy and not a missing feature — an automation pane, a hardened privacy mode or an enterprise profile all do it. Press Show a saved page and the panel reads one straight back out of this device's cache and paints it, which needs no worker and no network at all.

What is on the card

  1. 1Necrozma (Dawn Wings)Psycho Cut + Moongeist Beam0.06 trainers · 0:10 · 0.0 faints
  2. 2DarkraiSnarl + Foul Play0.07 trainers · 0:13 · 0.0 faints
  3. 3BlacephalonAstonish + Shadow Ball0.07 trainers · 0:13 · 0.0 faints
  4. 4Hisuian ZoroarkSnarl + Shadow Ball0.07 trainers · 0:13 · 0.0 faints
  5. 5GengarLick + Shadow Ball0.08 trainers · 0:13 · 0.0 faints
  6. 6Kyurem (Black)Shadow Claw + Freeze Shock0.08 trainers · 0:13 · 0.0 faints

Open the full ranked list · work out how many trainers to invite

How this is worked out

The rows are the same rankCached ranking /raids prints, sorted by Estimator and cut to the top 6. The card is drawn with the Canvas 2D API in the browser and exported with toDataURL; nothing is uploaded anywhere. It uses type-coloured discs rather than sprites on purpose — a cross-origin image would taint the canvas and make the export throw on any CDN that does not send CORS headers, and it would also stop the card working offline.

Not signed in

Your Pokebox is kept in this browser.

Theme