htmlsharechecking
/ uses · fun & social · your squares, shuffled

a card for the thing you are watching.

bingo cards are the most reliable small joke on the internet: the meeting, the awards show, the annual family argument, the conference talk.

the ones you find online are about a generic version of the thing. the funny one is about yours, with the squares only your group would recognise.

a page does it properly — everyone gets a different shuffle, so it is an actual game rather than everyone staring at the same grid.

what you make
a bingo card from your own squares
what each person gets
a different shuffle of the same pool
what it stores
their own card and marks, in their browser

the squares are the joke.

01 / what it is

writing thirty squares about a specific recurring event is the entire creative act and it takes ten minutes. the page turns that list into something where each person gets a different card, which is the difference between a game and a picture of a game.

it also keeps your marks through a reload, which matters more than it sounds when the thing you are watching lasts two hours and someone locks their phone.

  • your squares, as a pool bigger than the grid
  • a different shuffle for every person who opens it
  • marks that survive a reload
  • a win condition you actually agreed on
  • a free square, if you want one
  • a print version, for people who want paper
where the squares live
in the page — anyone with the url gets a card
the shuffle
per visitor, and stable for them once drawn
what it stores
that person’s card and marks, in their browser only
winning
whatever you defined — a line, a full house, four corners

see one in action.

02 / example
htmlshare.net/p/…
screen capture · silent loop
video coming soon

a five-by-five card drawn from thirty squares, shuffled per visitor, with a free square in the middle

the live example is still being built — the prompt below is the one it was made with.

copy this, then make it yours.

03 / starting prompt

a starting point, not a template — the point of an agent is that the result is yours. change the sections to match what you want, and remove anything you don’t need.

starting prompt · paste into your ai
Build me a bingo card as a single web page.

Ask me first:
- The squares. I want more than fit on a card, so each person gets a different selection — ask for a pool.
- The grid size.
- Whether there is a free square, and what it says.
- What counts as a win: a line, four corners, a full house.
- What we are watching or sitting through, so the design can suit it.

Use my squares exactly as written. Do not add squares of your own and do not soften mine.

WHAT IT DOES

- Each person who opens the page gets a card drawn at random from the pool, and a different arrangement from everyone else.
- Their card stays the same on reload. Nobody should lose a card halfway through because their phone locked.
- Tapping a square marks it, clearly, with a tap to unmark.
- Detect the win condition I described and say so plainly. No sound unless I asked for one — this may well be happening in a meeting.
- A button to draw a fresh card, with a confirmation so it is not hit by accident.
- A print version that produces a clean card on paper.

DESIGN

- The grid fills the screen on a phone. Text sized to fit the longest square without being unreadable.
- Marked squares obviously different, and still obviously different in greyscale and for anyone colour-blind.
- Suit the occasion in the styling.

BE HONEST ON THE PAGE

- Say each person gets their own card and their own marks, stored in their own browser — nobody can see anyone else's progress.
- The squares are all in the page, so a determined person can read the whole pool. That is fine; just do not claim otherwise.

STORING THE DATA

- Save everything to localStorage in the browser, automatically, as I go. No
  accounts, no login, no server call.
- On the page, say plainly that data lives in this browser only and does not
  sync to other devices. Do not bury it.
- Give me an "export" button that copies or downloads everything as JSON, and an
  "import" that reads the same JSON back. That is the only way my data can move
  between devices, so it is not optional.
- Never lose what I have already entered. If the stored data is from an older
  version of the page, read what you can rather than throwing it away.

DELIVERY

- Produce one self-contained HTML file. Inline the CSS and JavaScript.
- No build step, no server, no framework, no package install, no external
  requests at runtime.
- Mobile-first and responsive; it has to be usable one-handed on a phone and
  still look right on a laptop.
- Accessible: semantic HTML, real contrast, visible keyboard focus, labelled
  controls, touch targets big enough to hit, and respect reduced-motion.
- Use placeholders where information is missing. Do not invent facts, numbers,
  names, dates, prices, or results I have not given you.
- Before you call it finished, use it yourself: enter real-looking data, reload
  the page, and confirm nothing is lost or mangled.

PUBLISHING

Publish the finished page to HTMLShare and give me the link.

Use exactly one of the two paths below, preferring the first. Make the call
directly. Do not route it through a code sandbox, container, or computer-use
session — that is where the request gets blocked, and it is never necessary.

1. An HTMLShare integration or connector, if you have one configured.
   The page is permanent and owned by my account. Report the url and the
   siteId. There is no claimUrl or manageToken on this path — do not go
   looking for one, and do not switch paths in order to produce one.

2. Otherwise, publish anonymously over REST. No account, key, or signup is
   needed:

    POST https://api.htmlshare.net/v1/publish
    content-type: application/json

    {"html": "<!doctype html> ... "}

   The reference is https://htmlshare.net/docs and, for the full schema,
   https://api.htmlshare.net/openapi.json

   Report these from the response, in your reply and never inside the page:
     url          the public page
     claimUrl     a private link that is mine alone. opening it is how I keep
                  the page past its 24-hour expiry, or set an email reminder
                  before it goes. it carries the manage token, so it must
                  never appear in the published HTML or anywhere a visitor
                  could see it.
     manageToken  the only thing that can edit or delete this page later. it is
                  returned once and never again, so tell me what it is.

Tell me which of the two you used. If the path you reach for first is
unavailable in your environment, say so and tell me what you are switching to
before you publish — a permanent page on my account and a 24-hour anonymous
page are different things, and which one I get is my decision, not a detail.

If I ask for a change afterwards, update the existing page instead of
publishing again, so the URL I have already shared keeps working — through the
same integration on path 1, or with the manage token as an X-Manage-Token
header on path 2.

RECIPE MARKER

Include this tag in the <head>, exactly as written:

    <meta name="htmlshare-recipe" content="bingo-card">

It tells htmlshare which recipe the page came from, so the library can count
that this one was actually made. It carries nothing else.
works as-is inclaudechatgptcodexcursorgrok
adapting it
write forty squares for a twenty-five square grid. the pool being bigger than the card is what makes everyone’s different.
keep the squares specific. "someone mentions synergy" is fine; the name of the person who always says it is funnier and only you can write it.
no sound by default. a lot of these get played in rooms where a win chime would be a problem.

give it a url.

04 / publishing it

how you publish depends on how you’re working.

with an integration
if your assistant already has htmlshare connected — mcp or another supported integration — just ask it to publish the finished page and hand back the url. the page belongs to your account and is permanent. when you want a change, ask for an update to that same page rather than a new one.
with no integration
the prompt tells the assistant to post the html to the rest api instead, which needs no account and no key. it comes back with a live url you can open immediately, a private claim link, and a manage token. the claim link is how the page stops being temporary — keep it.
by hand
nothing stops you doing it yourself: have the assistant give you the html file and drop it on the htmlshare home page. same url, same page, one more step.
what matters here
this gets pasted into a group chat five minutes before the thing starts. claim it if the event is recurring; otherwise an anonymous page genuinely covers the evening.

one event, or every year.

05 / keeping it around
anonymous
24h

fine for a one-off — publish before it starts, everyone plays, and it stops serving 24 hours later with a 7-day recovery window.

keep it around
for a recurring event, next time is an edit rather than a rewrite.
stable updates
you will think of three more squares after you send the link.
custom url
a slug that reads as the joke when it lands in a group chat.

questions.

06 / questions
does everyone get the same card?

no, and that is the point. each visitor gets a random draw from your pool, which is why the prompt asks for more squares than fit on the grid.

can we see who is winning?

no — marks are in each person’s own browser and there is no shared state. shouting is the established protocol.

will my card survive my phone locking?

yes. the card and the marks are saved locally, so reopening the page gives you the same card rather than a fresh shuffle.

can i print it?

yes, if you ask for print styles — one clean card per sheet. worth it for anywhere phones would be conspicuous.