Hector Arato.
Case study · 02

Scentsay

Held at validation gate

Fragrance advice today is a community average. But the same scent performs differently in Monterrey heat than in Madrid winter, and two people wear the same bottle for completely different occasions. Scentsay learns how you actually wear your collection.

RoleFounder · solo
StatusValidation stage · pre-build by design
MarketSpanish-speaking LATAM first
ArchitecturePostgreSQL + pgvector · three-signal engine

The idea

Every fragrance app on the market is built around a central database of community ratings. Scentsay inverts that. Users classify their own fragrances with their own occasions, vibes, and note perceptions, and the engine gives weather-aware recommendations from their personal wardrobe. It's a classification engine first and a recommender second.

The long-term thesis is the data: aggregated personal classifications form a dataset that doesn't exist anywhere, how people actually perceive and wear fragrance across climates. That, at scale, is the moat. Not the features.

Designed before a single line of code

  • A 20+ point weighted preference model covering occasion, vibe, performance, longevity, and note perception, with a quick 30-second mode and a full progressive-disclosure mode so casual users aren't punished for not being collectors.
  • A three-signal recommendation engine: explicit tags, behavioral patterns from daily wear logs, and collaborative taste-neighbor similarity, blended with a weight ramp so community data earns trust gradually instead of switching over on a date.
  • An architecture that grows honestly. PostgreSQL from day one, with the vector column shipped as schema early and embeddings populated only when production recommendations actually need them. No machinery before its moment.
  • A freemium model built around the flywheel: the data-collection features live in the free tier so the dataset grows, and the intelligence features are what people pay for.
  • A fixed infrastructure ceiling of a few hundred dollars a month, treated as a hard product constraint, not a hope.

The discipline is the story

the survey is out in real communities right now. no thumb on the scale

Here's the part I'm most proud of, and it's the part where nothing got built. Scentsay has a rule locked into its charter: no product code until validation clears. Phase 0 means a survey instrument designed, debated, and deployed into real Spanish-language fragrance communities, with explicit response thresholds and a decision gate for paid creator outreach if organic response falls short.

Before that survey went out, I personally tested the leading competitors hands-on rather than trusting secondhand research. That audit sharpened the positioning twice: it confirmed the architectural gap Scentsay targets, and it also killed a framing I liked. "Spanish-first" turned out to be an execution priority, not a moat, and the strategy docs were rewritten to say so. When a major incumbent shipped a feature near our space mid-validation, it went into the record as a documented competitive shift with an honest read: their window is real but conditional on our execution, not on them failing.

"Anyone can talk themselves into building. The rarer skill is designing the test your idea has to pass, and then actually letting it fail."
20+Weighted classification parameters designed
3Recommendation signals: explicit, behavioral, collaborative
42Open questions tracked and routed before build
0Lines of product code before validation. On purpose.

Where it stands

  • Phase 0 survey deployed to Spanish-language fragrance communities, response monitoring in progress with defined checkpoints.
  • Full product, technical, and business documentation maintained as a governed knowledge base with decision logs and drift audits.
  • Build unlocks when, and only when, the validation gate clears.

What this project says about me

Yummster shows I can ship. Scentsay shows I know when not to. Between the two of them you get an accurate picture of how I'd spend your capital: fast where the evidence is in, patient where it isn't, and honest with myself in both directions.

Next: TinkTink