Shelflife is a single-file web app that tracks your skincare & makeup stash and flags what's expired, expiring soon, or still fresh — no spreadsheet, no printable checklist, no subscription. Pick from 100+ built-in product types for a shelf-life-after-opening estimate. Log the open date once and it does the math. Also tracks cost, brand & storage location, exports JSON/CSV backups, syncs to your calendar, and has full dark mode. Everything stays in your browser — no account, no server.
Hey everyone 👋 — maker here.
I built Shelflife because I kept opening my skincare drawer and finding a serum I genuinely could not remember opening — could've been two months ago, could've been eight. Vitamin C serums, retinol, sunscreen... a lot of these actually do go bad well before the container looks any different, and I was just guessing.
So I made myself a small tracker: pick a category, it suggests a typical shelf-life-after-opening estimate (the "PAO" thing you sometimes see printed on packaging as a little open-jar symbol), log the date you opened it, and it tells you when to actually worry. No app to install, no account, no subscription — it's one HTML file that saves everything to your own browser.
It grew into more than I expected — 100+ built-in product types, cost tracking so you can see what you're actually letting expire, CSV/backup export, calendar sync, dark mode. But the core idea stayed simple: stop guessing, start tracking, without signing up for yet another app.
Happy to answer anything about how it's built (it's genuinely just localStorage, no backend at all) or take feature requests — reading everything today.