serve, side, score — settled.
pickleball scoring is the one genuinely confusing thing about pickleball. three numbers, a server rotation, and a side switch that half the court forgets.
the arguments are never about who won the point. they are about whether it is 6-4-2 or 6-4-1 and whose serve it is.
a page that tracks all three and announces the score is a small piece of software that ends a recurring disagreement. it takes one message.
the score, in the form you shout it.
01 / what it isthe useful trick here is displaying the score the way it is actually called — all three numbers, in order — so the person serving can read it off the page rather than reconstruct it. everything else follows from getting that right.
the rest is bookkeeping a page is good at: rotating the server, switching sides at the right moment, and knowing when the game is won under your format including win-by-two.
- the full score as it is called out
- server number and side, tracked automatically
- one tap per point, one undo
- your scoring format — to 11, to 15, win by two, rally scoring
- a match record if you play more than one game
- a display readable from the other end of the court
- what it tracks
- points, server number, serving side, and games in a match
- where that goes
- localStorage on the scoring device only
- the format
- whatever you play — traditional side-out or rally, to any target
- what it is not
- a shared live scoreboard. one device holds the game
see one in action.
02 / examplea doubles game showing the full three-number score, who serves, and which side they serve from
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 prompta 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.
Build me a pickleball scorekeeper as a single web page.
Ask me first:
- Whether we play doubles, singles, or both.
- Traditional side-out scoring or rally scoring.
- What we play to, and whether win-by-two applies.
- Whether we play matches of several games, and how many.
- The players' names, if we usually play with the same people.
Take my format exactly. Do not assume a standard variant, and do not invent players.
WHAT IT DOES
- Displays the score the way it is called out loud. In doubles side-out scoring that is three numbers — serving team's score, receiving team's score, server number — in that order and large.
- Shows which player is serving and from which side, and updates both automatically as points are scored.
- One tap adds a point to a side. That is the primary interaction and it should be a large target.
- An undo, prominent enough to find quickly, because a mis-tap in the middle of a rally is common.
- Knows when the game is won under my format, including win-by-two, and says so clearly rather than just stopping.
- If we play matches: track games won, and start the next game with the serve and sides correct.
- A reset for a new game and a separate one for a new match.
DESIGN
- Readable from the other end of the court on a propped-up phone. The score is the entire screen.
- Landscape and portrait both work.
- High contrast, outdoors, in sun.
- No animation between points.
BE HONEST ON THE PAGE
- Say the game is stored on this device only and that other phones opening the url will not see it.
- Do not claim live sharing, spectating or multi-device scoring.
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="pickleball-scorekeeper">
It tells htmlshare which recipe the page came from, so the library can count
that this one was actually made. It carries nothing else.give it a url.
04 / publishing ithow 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 lives on whichever phone is propped against the net post, so it needs to be one tap away. claim it and put it on the home screen of the device that usually does it.
you play every week; the page should too.
05 / keeping it aroundfine for one session. it stops serving 24 hours later with a 7-day recovery window behind it.
claimed, it is the page your group opens every week, at an address people can remember.
- keep it around
- you play weekly. the page should not need remaking weekly.
- custom url
- short enough that whoever has their phone out can open it without being sent a link.
- stable updates
- the group changes format eventually. update the page at the same address.
questions.
06 / questionscan both teams see the score on their phones?
they can open the page, but only the scoring device holds the game — there is no shared state between browsers. prop one phone where both sides can see it, which is what most groups do anyway.
does it handle rally scoring?
if you say so in the first message. the prompt asks which system you use precisely because building the wrong one makes the page useless rather than merely imperfect.
what if we tap the wrong side?
undo, which the prompt asks to be prominent. with one-tap scoring a mis-tap is the most common thing that will happen to this page.
does it work on court with no signal?
yes, once loaded — nothing is fetched while it runs. open it before you start.