one page for the day ahead.
everyone rebuilds this eventually: a start page with the six links you actually use, the two lists you keep, and whatever number you want to see first thing.
the dashboard products want an account and give you widgets. the browser’s new-tab page gives you what the browser vendor wants to show you.
yours can be a single html file that loads instantly and contains exactly what you said. describe the morning, get the page, set it as your home page.
a start page with nothing on it but yours.
01 / what it isthe honest constraint shapes this whole recipe: a self-contained page makes no network requests, so it cannot show you the weather, your inbox, or your calendar. what it can do is links, text, dates, arithmetic and anything you type in — which turns out to be most of what people actually wanted from a dashboard.
that constraint is also why it is instant. there is nothing to fetch, nothing to authorise, nothing that breaks when a third-party api changes its terms. it opens in the time it takes to paint.
- your links, grouped the way you think about them
- a scratch list or notes area that persists
- countdowns to the dates that matter
- the date and time, and anything else computable offline
- a layout that loads instantly because there is nothing to load
- export and import for anything the page stores
- what is on it
- links, lists, notes, countdowns, the date — anything that needs no server
- what cannot be
- weather, email, calendar, anything live. no requests are made
- what it stores
- your notes and lists, in this browser only
- changing it
- new links or a new section: one sentence and a republish to the same url
see one in action.
02 / examplea start page with eight links, a short list, two countdowns and the date
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 personal start page as a single web page.
Ask me first:
- The links I open regularly, and how I would group them.
- Whether I want a notes or scratch-list area that persists.
- Any dates I want counted down to.
- Whether I want the page to be dense and information-first, or calm and mostly empty.
- Whether I use it mainly on a laptop, a phone, or both.
Build from my answers. Do not invent links, do not add placeholder services I do not use, and do not invent dates.
WHAT IT DOES
- Shows my links grouped as I described, as plain text links — not tiles with logos fetched from anywhere.
- If I asked for notes or a list: a persistent text area or checklist that saves as I type.
- Countdowns to my dates, in days, calculated from the current date in my browser.
- The date, and the time if I want it.
- Nothing else. Specifically: no weather, no news, no email count, no calendar, no stock prices, no quote of the day.
WHY NOT
- This page is a single self-contained file and makes no outside requests. Anything live would need an API, a key and a network call. Do not add any of that, do not use an iframe to fake it, and do not leave a placeholder implying it could be turned on later.
DESIGN
- Instant. Nothing that blocks the first paint, no web fonts that delay text, no images unless I supplied one.
- Match the density I asked for. If I said calm, leave real space; if I said dense, use the whole screen and let it be a control panel.
- Keyboard-friendly on a laptop: links reachable by tabbing, and consider access keys for the top few.
- Works on a phone too, since I will occasionally open it there.
BE HONEST ON THE PAGE
- Note that anything I type into the page is stored in this browser only.
- Do not describe it as syncing between my devices, because it does not.
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="personal-dashboard">
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 page is only worth making if it becomes your home page, and a home page has to be a permanent url. claim it, then set it in your browser on every device you use.
a home page that expires is a broken new tab.
05 / keeping it arounduse it to see whether the layout is right. it stops serving after 24 hours with a 7-day recovery window, and a dead home page is a genuinely annoying thing to wake up to.
claimed, it is permanent at a url you chose — which is the only state in which setting it as your browser home page makes any sense.
- keep it around
- a browser home page pointing at an expired url is worse than no home page at all.
- custom url
- you will type or paste this address into browser settings on several devices. short matters.
- stable updates
- links change constantly. republishing to the same url means you change the page, not the settings on four devices.
questions.
06 / questionscan it show the weather?
no. the page makes no network requests, so there is nothing to fetch a forecast from — and an agent that adds one has either broken the self-contained rule or built something that silently fails. the prompt rules it out explicitly for that reason.
can it show my calendar or unread mail?
no, for the same reason plus authentication. what works well in practice is a prominent link to each, which is one click and needs no access to anything.
is my scratch list private?
what you type stays in your browser and never reaches us. the links and structure are in the published html, so anyone with the url sees those — keep genuinely private urls off it, or accept that the link text is public.
can i use it on my phone and laptop?
the page works on both, but anything it stores is per-browser, so notes typed on the laptop will not be on the phone. links and layout are the same everywhere because they are part of the file.