htmlsharechecking
/ uses · sports · sideline scoring

one phone runs the game.

someone on the sideline is keeping score, and they are doing it on the back of a team sheet with a biro.

the sport-specific apps exist, cost money, and assume a level of formality that a sunday league does not have.

a page built for your sport tracks the things your sport tracks — periods, fouls, who scored, substitutions — and does it in one tap per event, which is all anyone on a sideline can manage.

what you make
a scorekeeper for your sport and team
where the game lives
the phone on the sideline
what you end with
a match record, not just a score

the team sheet, with arithmetic.

01 / what it is

the difference between this and a scrap of paper is that at full time you have a record: who scored, when, and what happened — which is what gets typed into a league table or read out in the car on the way home.

the difference between this and a sports app is that it knows your squad, your sport’s events, and nothing else. there is no subscription and no account for a parent to create.

  • the score, large, and the period or clock
  • one tap to record a goal, point or whatever your sport calls it
  • who did it, from your squad list
  • the events your sport actually records
  • a match log you can read out afterwards
  • export of the completed match
what it records
score, clock or periods, scorers, and the events you named
where that goes
localStorage on the scoring device
the squad
your players, in the page, so attribution is a tap not a keyboard
after the game
an exportable summary you can paste into a group chat

see one in action.

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

a match page with score, period clock, scorers and a running event log

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 team scorekeeper as a single web page, for keeping score on the sideline.

Ask me first:
- The sport, and exactly what gets recorded in it — goals, points, tries, fouls, cards, substitutions, whatever applies.
- How the game is divided: halves, quarters, periods, innings, and how long.
- Whether there is a clock to run, and whether it counts up or down.
- My squad, so scorers can be attributed with a tap.
- The team name and whether I record the opposition's individual events too.

Take the sport's rules from me. Do not assume a standard I did not state, and do not invent players.

WHAT IT DOES

- The score is the biggest thing on the page, with the period and clock beneath it.
- Recording a score is one tap for the team, then one tap for the player from my squad. Never make me type a name on a sideline.
- Record the other events my sport needs, each one or two taps.
- The clock, if I asked for one: start, pause, and correct it, because it will get started late.
- A running event log with times — this becomes the match report and is the reason to use the page at all.
- An undo for the last event, and the ability to edit the log.
- At full time, a summary I can read out or paste into a chat, plus a JSON export.
- Start a new match without losing the squad.

DESIGN

- Usable standing up, outdoors, in the rain, one-handed, possibly cold. Very large targets, no precision gestures.
- High contrast and readable in bright light.
- Nothing that requires two hands or a steady finger.

BE HONEST ON THE PAGE

- Say the match is stored on this device only, so anyone else opening the url will not see the live score.
- Do not claim live sharing with parents or a league, streaming, or any kind of push.

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="team-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.
works as-is inclaudechatgptcodexcursorgrok
adapting it
list the squad properly. tapping a name is the difference between recording who scored and not bothering.
ask for very large buttons. everything about this page happens outdoors, standing up, in the cold.
the event log is the actual product. make sure it has times on it and can be exported, or you have built a counter.

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 used every week of the season by whoever has their phone out. claim it, keep the slug short, and make sure more than one person knows the address.

a season is a lot of saturdays.

05 / keeping it around
anonymous
24h

one match. the page stops serving 24 hours later with a 7-day recovery window, and the squad list goes with it.

keep it around
a season of matches needs a page that lasts the season.
custom url
more than one person will end up scoring. they all need to find it.
stable updates
the squad changes through the season; update the page without changing the link.

questions.

06 / questions
can parents follow the score from the car park?

no. the match is on the scoring phone and there is no shared state, so anyone opening the url sees an empty page. a message at half time is the honest alternative.

does it run a clock accurately?

well enough for a sunday league, as long as the page stays open — browsers throttle background tabs, so a phone that locks mid-half may drift. keep it on screen, and correct it if needed.

can it handle our sport?

describe what gets recorded and it will. that is the advantage over a generic scorer: cards, innings, tries and conversions, or a scoring system somebody in your club invented.

what do we get at the end?

a summary with the score, the scorers and a timed event log, exportable as text you can paste into the team chat or into a league’s own system.