know what you own, and where.
there are three moments when you need a list of what you own: an insurance claim, a move, and standing in a shop wondering whether you already have one.
the first two are stressful and the third is expensive, and in all three the list does not exist because making it is boring and no tool makes it less so.
a page built for your things — your categories, your rooms, the fields you care about — makes it about as painless as it can be. and it stays in your browser, which for a list of your valuables is the right place for it.
a list you make once and are glad of later.
01 / what it isthis is the least fun recipe in the library and possibly the highest-value one. the reason to build your own rather than using an inventory app is the same reason people do not finish inventory apps: the fields are wrong. you want serial numbers for electronics, purchase dates for anything under warranty, and nothing at all for the sofa.
a page built from your description has your fields, your rooms and your categories, which is the difference between an afternoon’s work and an abandoned afternoon’s work.
- items grouped by room, category, or however you think about them
- the fields you care about — value, purchase date, serial number, warranty
- running totals per group and overall
- search across everything
- export to json and to something you can hand an insurer
- a page that never uploads any of it
- what it records
- items with whichever fields you asked for, grouped how you asked
- where that goes
- localStorage in one browser. not uploaded, not visible to us
- photos
- not embedded — a page storing photos hits browser limits fast. keep them in your own album
- the export
- json for reimporting, plus a readable list you could send an insurer
see one in action.
02 / examplea household inventory by room, with purchase dates, values and a total
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 inventory as a single web page, for insurance and for knowing what I own.
Ask me first:
- How I want things grouped: by room, by category, or something else.
- Which fields matter to me per item — name, value, purchase date, serial number, warranty expiry, notes — and which of those are optional.
- Whether I want a total value, per group and overall.
- Whether this is a whole household, one collection, or something narrower.
Build from my answers. Do not invent items, values, or an insurance schedule.
WHAT IT DOES
- Adding an item is fast and forgiving: name first, everything else optional. A list of two hundred things only gets made if each one takes ten seconds.
- Groups as I described, collapsible, with counts and totals per group if I asked for values.
- Search across every field, matching as I type.
- Sort by name, value or date within a group.
- Editing and deleting items, and moving an item between groups.
- A total value, clearly labelled as the sum of what I entered rather than any kind of appraisal.
EXPORT — THIS ONE MATTERS
- Export everything as JSON for reimport.
- Also export a plain readable version — a table or CSV — that I could send to an insurer or a loss adjuster.
- Import from the JSON.
- Say on the page that browser storage is the only copy and that this particular list is worth exporting somewhere else, since the reasons you would need it are the same reasons the device might be gone.
DESIGN
- Dense and tabular on a laptop, since that is where a long list gets entered and read.
- Usable on a phone for adding one thing as you buy it.
- Plain. This is a reference document, not a showcase.
BE HONEST ON THE PAGE
- Say the inventory is stored in this browser only and is not uploaded anywhere.
- Do not embed photographs into storage — explain that images belong in my own photo library, referenced by name, because browser storage is not the place for them.
- Do not value anything for me, estimate depreciation, or describe the total as an insured amount.
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-inventory">
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
- the data is in your browser, not on the page, so what publishing buys you is a permanent reader for it. claim the page and export the inventory somewhere else as well — this is the one list where a single copy is not enough.
you will want this in five years, not this week.
05 / keeping it aroundthe page stops serving 24 hours after publishing, with a 7-day recovery window. an inventory you cannot open is an inventory you do not have.
claim it. the useful lifespan of this page is measured in years and its whole purpose is being available on a bad day.
- keep it around
- this is a page you need on the worst day of the year, possibly years from now. it has to still be there.
- custom url
- an address you can find under pressure, rather than a random id in a browser you may no longer have.
- stable updates
- you will want more fields once you start. change the page without moving it.
questions.
06 / questionsis my inventory uploaded anywhere?
no. it is stored in your browser and never sent to us — we hold the html page, not its contents. that is good for privacy and it means the export is your only backup, which for this list is worth acting on.
can i attach photos?
not sensibly. browser storage is small and images fill it fast, so the prompt tells the agent to reference photos by name instead and leave the files in your own album. that keeps the page fast and the export portable.
is the total an insurance valuation?
no. it is the sum of numbers you typed in. no depreciation, no market lookup, no appraisal — the page says so, because a total that looks official is exactly the kind of thing that causes trouble in a claim.
what if i move house?
rename the rooms in the page and move items between them. that is one of the two moments this list pays for itself, and it is worth exporting before and after.