Field Notes
A personal scent database for logging materials, observations and formulas, built for how I work at the bench.
- Year
- 2026, ongoing
- Role
- Design, development, data
- Built with
- HTML, JavaScript, JSON
- Holds
- 651 materials, 371 accords, 199 reference chemicals, 89 observations, 116 formulas

The problem
Perfumery notes scatter. Impressions live on smelling strips and in notebooks, formulas live in spreadsheets, dilutions live on bottle labels, and the reasons behind a change live nowhere. When I came back to a formula a week later I could see what I had weighed but not why, and I could not easily see what a single material had done across everything I had made with it.
I wanted one place where a smell, the material that carries it, the formula it ends up in and my judgement of that formula all point at each other.
To fill it, I digitized years of scattered notes, from smelling-strip impressions and notebook observations to the messy spreadsheets I used to work from. It now holds all of them.
Thirteen versions in four days
- v01 · 26 Apr First version. Cream page, italic serif, 64 materials and a simple search bar.
- v05 · 26 Apr The same night, the interface goes dark.
- v07 · 27 Apr Display type, a family filter bar, family color bars on each material.
- v13 · 29 Apr Thirteenth version. Fixes accord lines that failed to import without an error.
Why it looks like this
The interface borrows from the paper systems my notes used to live in, such as index cards, ledgers, file folders and forms. Each material is a card, each formula a ledger, each version a filed copy.
I use it for hours at the bench, so the screen holds information and little else. Color marks each material's olfactive family and nothing more.
Then and now
26 April First version
- 64 materials in one list, tagged by family
- A simple search bar
- Accords and reference chemicals as simple lists
- A hosted database and a single HTML page
- Import and export as JSON
21 October Now
- 651 materials, 371 accords with 5,235 lines, 199 reference chemicals, 89 observations, 116 formulas
- A Workbench where formulas are written in parts, with grams, percent and IFRA 51st Amendment limits for fine fragrance, ambient or functional use recalculating as I type
- Versions, a Compare view that marks every increase, cut and dilution change, and a Weigh view for several formulas on one scale
- A comment beside every line's rationale, open even on archived versions
- GC/MS reports and certificates of analysis attached to natural materials
- Serials, projects and a path from working to weighed to production
- Inventory, dilutions, an order list, suppliers and a reference library
- One file on my own computer, protected so two windows can never save over each other
Found through friction
Nothing here was planned in April. Each feature exists because something went wrong while I was working.
- MayAn export limit kept accord lines stuck at exactly 1,000 for six weeks. Paginated fetches. Every line now comes through.
- JuneThe hosted database paused after a week without use. Everything moved into the browser, then in September into one plain file on my computer that I own and back up.
- OctoberThe same material at two dilutions was treated as one. Dilution sits beside the material, and a different dilution counts as a different material.
- OctoberPrinted formulas lost the reasons behind each line. A print window with the option to include rationales.
- OctoberDuplicate entries had crept in. A cleanup merged 16 materials, the dip in the chart above.
- OctoberMaterial cards had nowhere for loose observations. A notes field on every card.
Two windows, lost notes
Weighing two formulas at once, I had two windows open, and they saved over each other. The app now checks the file before every save and shows a red NOT SAVED banner instead of losing work, and the Weigh view puts several formulas on one screen so a second window is never needed.
Somewhere to say too high
After evaluating, my notes had nowhere to go. A comment column now sits beside the rationale, so too high or reads as pea pod lives next to the line it is about, long rationales wrap instead of hiding, and archived versions stay open for comments because evaluation can happen days after weighing.
Plainer words
The command bar was rewritten without redundancy. Copy, Duplicate as new version, Evaluate versions and Mark as weighed became Weigh, New version, Compare, Archive and Print.

beforeafterInstead of reweighing from memory, I start each version from the written comments on the last one, and I can trace a material’s behavior across every formula it has been in.