Olfaria
An independent register that pairs designer and niche perfumes with affordable alternatives, and scores every pairing for similarity, price and performance.
The idea
„Dupe” lists are everywhere, mostly unsourced and full of affiliate noise. Olfaria treats the question as a dataset: every original and every alternative has its notes, concentration, bottle size and price, every pairing has a similarity estimate, and the scoring method is published.
The result reads like a register, not a listicle: search, sort, compare, and see exactly how much you save per millilitre.
In numbers
- perfumes
- 194
- scored pairings
- 125
- perfume houses
- 52
- top-10 leaderboards
- 3
How it works
A researched catalogue
Perfumes, houses and notes were researched with sources and loaded into Postgres through validated import scripts, so every update is consistent and repeatable.
Scored pairings
Every pairing carries a similarity estimate, the saving, the price per ml of both bottles, and how long each lasts and projects.
Find it fast
Search across perfumes, houses and notes; the full register as a sortable table, grid or list; compare up to four perfumes side by side.
Jargon, explained
Tap an accord, longevity or sillage to open a short animated explainer (GSAP), written for people who are new to perfume.
Tools and features
Perfume of the day
One strong pairing a day on the home page.
Leaderboards
Top 10 for men, women and unisex, from community ratings with a minimum vote count.
House pages
Each house with its story, collections and best pairing.
Compare
Up to four perfumes, notes and numbers side by side.
CMS and publishing
The Journal runs on a Studio CMS inside the Next.js app: an editor with SEO checks and a perfume picker, scheduled publishing, moderated comments, an internal link manager, IndexNow and backups.
Contact and comment forms are protected with Cloudflare Turnstile.
Built to be found
- Product structured data only where it is valid, with ratings out of 10.
- Titles and descriptions are fitted to length automatically.
- Trust pages: methodology, disclosure, about.
- Edge caching through Cloudflare, purged after every deploy.
Stack
- Next.jsApp Router, React
- PostgreSQLCatalogue and CMS, via Drizzle ORM
- GSAPExplainer animations
- CoolifyDocker deploys on my own VPS
- CloudflareDNS, cache, Turnstile
Key screens
On a phone