Back to profile

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.
  1. Nuxt SSR interface↔Typed APIquery
  2. Typed API↔Oils & compositionsdomain data
  3. Oils & compositions↔Chemical profilescomposition
  4. Claims & confidence→Sourcessupported by
  5. Chemical profiles→Recommendationsfeatures
  6. Claims & confidence→Recommendationsconstraints
  7. 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.

Products, systems and ideas brought to life in working software.