Fragrance Collection Tracker

Your personal perfume wardrobe — track every bottle, log remaining levels, and let the app pick today's scent. Everything lives in your browser; nothing is sent anywhere.

Add a Bottle

📷 Tap to add photo or take one
Change photo

Pick Today's Scent

A bottle is chosen at random, weighted by remaining level — bottles with more liquid are proportionally more likely to be picked.

My Wardrobe

0 bottles
🧴
No bottles yet — add your first one above.

How it works

This tool stores everything in your browser's IndexedDB — no account, no server, no cloud. Your collection is private and persists across sessions on the same device.

Add bottles Enter brand name, fragrance name, add an optional photo, and set the remaining fill level with the slider.
Weighted random pick The "Pick Today's Scent" button draws a bottle weighted by fill level — a 90% full bottle is 3× more likely to be picked than a 30% bottle.
Shake to pick (mobile) On phones with a motion sensor, shake the device to trigger a random pick — just like shaking a bottle.
Share today's pick After a pick, tap "Share as image" to download a PNG card you can post or send.

Frequently asked questions

Does my collection sync between devices?
No — data is stored locally in your browser using IndexedDB, which means it stays on this device. If you use the same browser on a different phone or computer, you'll start with an empty wardrobe. This is intentional: there's no account, no password, and no server storing your data.
How does the weighted random pick work?
Each bottle is assigned a weight equal to its remaining level percentage (e.g., 80% remaining → weight 80). The picker draws from that pool — so a nearly-full bottle has 4× the chance of a quarter-full one. Empty bottles (0%) are excluded from the draw. This way you naturally rotate through your collection in proportion to what you have left.
Will my collection survive if I clear my browser data?
No. Like all browser-local storage, IndexedDB is cleared when you wipe site data or use private/incognito mode. Use the "Export" option (coming soon) to keep a backup, or simply note your collection elsewhere before clearing your browser. For now, treat this as a convenience tool rather than a permanent archive.
Can I edit a bottle's details after adding it?
Yes — tap any bottle in the wardrobe grid to open its detail panel, where you can update the remaining level or delete the entry. Brand and fragrance name can be updated the same way. Changes save instantly to IndexedDB.
How do I update the remaining level over time?
Tap a bottle in the wardrobe to open it, then drag the fill slider to your best estimate. There's no exact measurement needed — a rough visual estimate (quarter full, half full, etc.) is enough for the weighted pick to work well. Making a quick update every few weeks keeps your collection accurate.