2015 — 2026
EOBlend — Calculator and Knowledge Base
Essential oil blends guided by chemical and aromatic profiles.
Product creator and developer
The challenge
A large compatibility table required manual comparison of every pair. Users needed a sequential, visual selection process.
What I built
- Designed and built an interactive, sequential composition workflow.
- Developed four architecture generations, from Drupal/jQuery to FastAPI/Nuxt.
- Built the catalog, multilingual pages and server rendering.
- Developing a scientific knowledge base of sources, molecular data, chemical profiles and aromatic classes to support combinations and blend hypotheses.
Results
- Four generations of a working product, from an interactive calculator to a catalogue and research platform.
- Long-term organic traffic from relevant search queries.
Components & connections
Eo Experience
- Nuxt SSR interfaceCatalog and sequential selection interface.
Eo Api
- Typed APIApplication use cases.
- RecommendationsSelection factors and explanations.
Eo Knowledge
- Oils & compositionsProduct entities and composition data.
- Chemical profilesMolecules, properties and aroma profiles.
- Claims & confidenceStatements, evidence and applicability.
Eo Research
- SourcesSource material for the knowledge model.
- Nuxt SSR interface↔Typed APIquery
- Typed API↔Oils & compositionsdomain data
- Oils & compositions↔Chemical profilescomposition
- Claims & confidence→Sourcessupported by
- Chemical profiles→Recommendationsfeatures
- Claims & confidence→Recommendationsconstraints
- Recommendations→Nuxt SSR interfaceexplanation
Engineering takeaway
Context
A tool for creating fragrance compositions and a catalogue of essential oils.
- Domain sources vary in quality and completeness.
- Preserving the catalogue and search pages through architecture changes.
Approach
Developing the product from a concrete user action towards a deeper knowledge model.
- Sequential selection instead of manual table comparisons.
- Separate entities for sources, properties and composition.
- A data model that evolves with the product.
Lessons
- A long-lived product evolves through its data model and user workflows, rather than through stack changes alone.
Stack
- FastAPI
- Nuxt
- Vue
- SSR
- PostgreSQL
- Research dataset