PerfuMate › Straight answers
Where the answer is no, it says no. Every number is counted from the data the app ships.
PerfuMate is perfume formulation software for independent perfumers, on the web and Android, with a built-in catalog of 2,211 described perfumery materials and live IFRA Category 4 checks that count the molecules inside naturals. It is free to start, with no account needed to open it. How it compares with Formulair, Molequles, the Ourmess Excel workbook, spreadsheets and other tools: choosing perfumery formulation software.
PerfuMate's AI writes a real formula, brief to finished lines, in one run. The model cannot answer a build request in prose: it is forced to return a structured formula, every line pointing at a material on your own shelf with a percentage and a role, and the server discards the whole answer if any line names something you do not own. The shares are then normalized to exactly 100.00% in code, not by asking the model nicely.
One tap saves it as a working formula, ready to weigh as a batch, and the dose is corrected for the strength of the bottle you actually own: if your only linalool is a 10% dilution, the weighed mass is multiplied up so the formula is true to what is in the bottle.
It refines. In AI Studio the conversation is kept, so "warmer, drop the aldehydes" re-runs against the previous answer, and the model's own open questions come back as one-tap prompts. From a formula you already have, it reads that formula, gives advice, and a second tap turns the advice into a complete revised version with every unchanged line kept at its share. If a returned formula fails the server's checks it is re-asked once with the exact faults listed, and it is never shipped unverified.
It rebuilds. On any community post, "Rebuild from my shelf with AI" hands that formula to the studio with the shelf-only constraint on, and what comes back is the same idea recomposed from bottles you actually own. It is deliberately not a clone, because a post names materials you may not have. It works the same way from a PDF or a pasted formula. Taken together this is probably the most advanced AI in any formulation tool today. We say probably because nobody has measured every tool, and this page does not claim what it cannot check.
What it does not do: it never edits a formula in place, so a revision is always a new copy you look at before saving. It does not browse the internet. It cannot smell anything, has no feedback from your own trials, and does not learn from your results. And it is not free: a new formula costs 10 credits. Questions use no credits on an AI plan, and direct edits use none at all.
Yes. Formulating from the shelf you own is how PerfuMate works rather than a feature it has: the whole app is built around your shelf. You add the bottles you actually own, picked from 2,211 described catalog materials, and every tool composes from that shelf rather than from an idealized list.
Two tools are explicitly shelf-bound. Substitutes searches your own shelf with role as a hard gate; where no single bottle fits it rebuilds the target from a pair or a trio with a fitted ratio, and it returns an honest no-match when nothing is close. And AI Studio is grounded on your real shelf: with shelf-only on it cannot name a material you do not own, and a returned formula that fails that check on the server is corrected or refused rather than shipped.
Your shelf comes in the same way formulas do: import from PDF, CSV, TSV, JSON or pasted text, matched against 5,888 supplier and trade synonyms so the name your supplier printed finds the material we already describe. Stock, prices and suppliers ride along, and your shelf exports back out as one CSV at every tier, free included.
The arithmetic honors what is really in each bottle: every dose is corrected for the strength it is weighed at, so a line weighed from a 10% dilution counts for a tenth of the same gram taken neat, in the formula, the scent profile and the compliance checking alike. On any community post, one button rebuilds that formula from your own shelf with AI: the same idea recomposed from bottles you actually own, deliberately not a clone, because a post names materials you may not have. The formula count is nearly the only limit here: the free tier holds an unlimited materials shelf and every tool but four, and the one paid version that lifts the formula ceiling can be rented by the month or bought outright. Paid features include color PDF themes, formula version history, bottle labels and the sale-ready pack.
Yes, PerfuMate calculates dilutions everywhere a number appears. Every dose is corrected for the strength of the bottle it is actually weighed from, so a line weighed from a 10% solution counts for a tenth of the same gram taken neat, in the weighed formula, the scent profile, the drydown and the IFRA arithmetic alike.
The catalog helps you start: hundreds of materials carry a typical working dilution, so a bottle arrives with a sensible strength instead of a blank field. And the correction runs on what you own, not on an assumption: if your only linalool is a 10% dilution, the weighed mass is multiplied up so the formula stays true to what is in the bottle.
Concentration is a derived, adjustable quantity rather than a hand-recalculation: change the batch size or the target strength and the alcohol moves with it. Making a dilution is a first-class event in stock too: "dilution created" is one of the typed movements in the append-only ledger, so the new bottle's balance is tracked the same way a purchase is.
This matters because juggling dilutions at 1%, 10% and 50% is the most common way a spreadsheet goes quietly wrong: solvent math is easy to get almost right. Here it is one calculation, and it is free at every tier; the paid version adds unlimited formulas. What that costs.
No. Nothing in PerfuMate reconstructs a formula from a lab report, and no page here has ever claimed it does.
What it has instead is a table of typical constituents for 739 of the 2,211 materials: roughly what is inside a natural, compiled from published compositions. That is what the compliance arithmetic reads: it is how one restricted molecule arriving from three different naturals gets counted once, across all of them.
It is an estimate and the app says so on every material page. If you have a real analysis from your supplier you can paste it in and it replaces the estimate on your shelf, which is the honest version of this feature: your numbers beat ours.
291 limit rows drawn from the 51st Amendment, Category 4 (fine fragrance on skin). Limits are judged against the finished product at your chosen concentration, adjusted for the dilution each material is actually weighed at, and one molecule arriving from several naturals is summed once.
It has been checked against the official book, line by line. On 2026-08-16 the compiled IFRA Standards up to and including the 51st Amendment were downloaded from IFRA's own CDN (263 standards over 726 pages), and every entry in the app was diffed against it by CAS number. 252 of 252 comparable entries matched the published Category 4 figure exactly, with 0 disagreements. Of the rest, 8 are specification standards that publish no concentration limit at all and are correctly blank here, and 31 are class standards and constituent-driven naturals that IFRA does not key to a single CAS. The script that does it ships in the repository, so the check can be run again against the next amendment rather than taken on trust.
Three things are worth saying plainly. It is Category 4 only: this is an app for fine fragrance, and a candle or a body lotion is a different category with different numbers. It moves when a new version ships, not on its own, so it names the amendment rather than implying it tracks the current one. And it is indicative: a working figure to compose against, not a certificate. Verify against the official IFRA documents before you sell. The app stamps every compliance sheet exactly that way.
The coverage is honest too. 314 materials in the catalog are flagged restricted and 267 of them reach a standard. For the rest the app says "restricted, check the current amendment" and gives no number, because a number invented from memory is worse than a blank. The limits, material by material, are at IFRA limits by material.
No. 2,211 distinct rows with zero duplicate names. The 5,888 supplier synonyms are attached to materials, not counted as materials. They exist so that pasting "Phenylethyl alcohol" finds the row you already have.
The composition, since a count on its own says little: 501 naturals and 1,710 aroma chemicals, isolates and compounded bases. 1,642 carry a CAS number; the rest are mostly commercial bases, which have no single CAS to give. 739 carry an estimated constituent table. All 2,211 carry a written odor description and an impact figure, and 2,172 carry an olfactive family with percentage dominance; the other 39 are solvents and diluents, which have no smell to file. Every material resolves to a substantivity figure, 898 of them from a sourced value and the rest estimated from family and band.
You do not have to take any of this on trust: the whole catalog is free to browse without an account, one page per material. Open a few and count.
You own your formulas. Before you sign in, everything is in a local database on your own machine and nothing reaches us. That is the honest privacy answer rather than a way to work: an account is free, and it is what opens PDF and SDS export, the safety data sheet draft, compare, the community and AI Studio. Signing in also turns on cloud sync, so from that moment your data is stored on our servers and kept in step across your devices. Nothing you made as a guest is lost.
We say that plainly because the alternative is worse. There is no separate switch: an account and synced data are the same thing. If you would rather nothing left the device, do not sign in. The community and AI Studio are what you give up.
Publishing is always a deliberate act and never a default, and your stock levels, costs, suppliers and private notes are never part of anything you publish. AI Studio sends your brief and the relevant part of your shelf to our server and on to our AI provider to compose the answer, and that content is used only to answer your request. We do not sell data or share your formulas with advertising services. See our privacy policy for analytics details.
You can take everything with you at any time: a full backup exports as a ZIP holding backup.json, your library as CSV, every formula as both CSV and JSON, and your batches. You can delete your account and every piece of cloud data from inside the app.
PerfuMate predicts wear from the materials, not from the formula. Every material carries a strip life, an impact figure and an olfactive family with percentage dominance, and the drydown is those curves summed across the wear. Every predicted number now shows how sure it is, and that figure is computed rather than decorative.
What goes in. Strip life is how long a material lasts on a blotter, and it is the largest input: the drydown is exponential decay against it, and longevity is where the summed curve falls under the perception floor. Impact is evaporation flux times potency plus olfactory bloom. Every dose is corrected for the strength of the bottle it is actually weighed from, so a 10% dilution contributes a tenth.
Where the confidence comes from. A material's strip life is either a measured pin, which somebody timed on paper, or an estimate from its family and its tier. The app weighs how much of your formula's aromatic mass sits on measured values rather than estimates, and prints that next to the number: 40% when nothing is measured, up to 95% when everything is. It never prints 100, because this is still a model of a blend on skin. Tap the figure and it names the evidence.
What it cannot see. Skin chemistry, weather, how much you apply, and what the materials do to each other. Those are real and the model does not model them, which is most of the reason the ceiling is 95 and not higher.
And you can check it. After a wearing you can record what actually happened: how long it really lasted, and whether each phase came in weaker or stronger than predicted. The app then shows its own error on your own formulas. Nothing is adjusted automatically and none of it is uploaded; it is your record of how well the model does on your formulas, which is the only version of that question worth answering.
Every material carries a written odor description and a potency rating out of 10, and the 2,172 that are odorants carry a place in 22 olfactive families and 229 family/sub-category pairs (9,899 sub-category assignments across the catalog, about 4.5 per material), plus a top / heart / base band. On top of that: 1,642 CAS numbers, 5,888 supplier synonyms, 2,123 typical working dilutions, 898 substantivity figures and 739 estimated constituent tables.
| What each material carries | How many of the 2,211 have it |
|---|---|
| Odor description, in words | all 2,211 |
| Potency rating, out of 10 | all 2,211 |
| An olfactive family | 2,172 (39 are solvents, filed in a bucket that carries no smell) |
| Several families, in dominance order | 2,070 |
| Sub-categories under those families | 2,151 materials, 9,899 assignments |
| A top / heart / base band | 2,157 (the other 54 are solvents and carriers, outside the pyramid) |
| Supplier and trade synonyms | 1,959 materials, 5,888 names |
| CAS number | 1,642 |
| Typical working dilution | 2,123 |
| Substantivity in hours on a blotter, sourced and labeled an estimate | 898 |
| Estimated constituent table (what a natural is made of) | 739 |
| Marked as a UV filter, a job rather than a smell | 5 (they protect citrus from light) |
The percentages are not typed in by hand, and that is the point. The catalog stores the order a material's families come in (which one leads, which is secondary), and one shared curve turns that order into shares: the primary family takes 6 parts, the second 3, the third 2, the rest 1 each, with a family's share split across its sub-categories. That same curve drives the profile chart, the pyramid, the color of the material's swatch and the genre title, so all four agree because they are one calculation rather than four that happen to be maintained together. Inside a formula each material's share is then weighted by its dilution-adjusted aromatic mass, so a line weighed from a 10% solution counts for a tenth of the same gram taken neat.
One thing on a row is a job rather than a smell. 5 materials are marked as UV filters, and the reason is citrus. The terpenes carrying a cologne's whole opening are the first thing light takes apart: the color drifts, the top note goes flat, and a hand-made eau that was beautiful in March is disappointing by May. A perfumer building one should be able to find those four without already knowing to search for "octinoxate", so the catalog says it beside the material instead of leaving it in a paragraph. It is not a facet, because a facet is an odor word and this is not an odor, and it is not inferred from the text either: a text match would also catch a material described as photostable, which resists light rather than absorbing it, and those are opposite claims.
Where the constituent tables matter. An estimated breakdown of what a natural is made of is not trivia: it is how a limit written against a single molecule gets enforced on the oil carrying it, and how the same restricted molecule arriving from three different naturals is added up instead of being missed three times.
Two honest limits. Every regulatory join (IFRA, GHS, allergens) is by CAS number, and a material can supply one through its constituents as well as its own row: of the 569 with no CAS of their own, 244 carry no constituent table either, and those are the ones that return "nothing known" rather than "nothing applies". The app does not dress that up as a clean bill. And there is no physical chemistry on a catalog row: no molecular weight, no vapor pressure, no logP, no boiling point. The behavior in time comes from measured blotter readings and family, not from physical constants. Both are open work rather than solved problems.
PerfuMate carries a formula through to a batch you can ship. Exact scaling to the milligram, guided weighing in Make mode, an append-only stock ledger that deducts as you make, batch records tied to the exact formula version and carrying supplier and lot number per line, maturation timelines, and the compliance paperwork. It is not an ERP: no team workspace, no supplier feed, no invoicing.
| From an approved formula to a shipped bottle | What the app does |
|---|---|
| Scale it to a real batch | Any batch size, exact to the milligram, off the same formula. Concentration is a derived, adjustable quantity, so alcohol moves with the batch rather than being recalculated by hand. |
| Weigh it | Make mode, free. One material at a time in type readable at arm's length, the screen kept awake, four weighing orders, and the first overpour offers to rescale everything still to come instead of ruining the batch. |
| Know what is left | Stock is an append-only ledger, not a counter. Every movement is typed (purchase, batch use, dilution created, adjustment), and each bottle's balance is written in the same transaction as the movement. Logging a batch in Make mode deducts what it consumed; the quick log deducts if you tick the box. |
| Prove what went into a batch | Batch records. Its own code, size, date and notes, pointing at the exact formula version it was made from rather than at the formula in general. The printable record reads its lines back out of the stock ledger, so it names the actual bottles weighed, with supplier and lot number where you have them. A batch logged without a stock deduction has no per-line ledger, and the record says so rather than inventing one. One caveat worth knowing: ordinary edits change the current version in place, so snapshot before you carry on if you want that pointer to keep meaning something. |
| Let it rest properly | A dated maturation timeline per batch, derived from when it was made and how concentrated it is: shake and aerate, rest, chill and filter. On a phone it also reminds you as each milestone comes due. |
| Reorder before you run out | A shopping list plus a running-low view driven by a per-bottle threshold, so a material surfaces before a batch stops for it. |
| Produce the paperwork | Live IFRA checking while you compose, including the same restricted molecule arriving from several naturals at once; the EU allergen declaration; a print-ready INCI ingredient line; a 16-section safety data sheet draft; bottle labels; and a sale-ready pack. |
| Answer "which version was this batch?" | Snapshot a version and it records its parent, drawn as a tree with a diff, and each batch points at the version it came from. |
What is deliberately not here. There is no multi-user team workspace with roles and permissions: an account belongs to one perfumer and syncs across their own devices. There is no live supplier catalog integration: supplier and price are fields you fill or import, not a feed, and nothing reorders for you. There is no accounting, invoicing or shipping. If you need a factory ERP, buy a factory ERP. PerfuMate covers formulation, compliance and the batch, which is the part an ERP usually does worst.
And the regulatory limits, which matter more. The IFRA data is Category 4 only (fine fragrance on skin), and the app puts every formula in that category: a lotion, a soap, a candle or anything for children sits in a different category with different limits, and this app will not compute them. It is fixed at the 51st Amendment and ships inside the app, so a new Amendment arrives as an app release. The GHS hazard set is indicative and unverified, reaching 398 of 2,211 materials. The safety data sheet is a draft that says so on its own face and needs sign-off by somebody competent in chemical safety classification; its flash point and transport class are estimated from the carrier solvent, not measured, so nothing should be shipped on them. There is no REACH, no CPNP or SCPN notification, no UFI or poison-center submission, no Product Information File and no US state disclosure. None of this replaces a regulatory consultant, and the app never says it does.
What the production chain costs. Make mode itself is free, as are the stock ledger, batches, the printable batch record, the EU allergen declaration and the INCI line, so a free account can weigh a batch, deduct what it used and print a record of it. Signing in, which is free, opens the rest: the safety data sheet draft, PDF export, compare and Make mode's smart weighing order. Two things need a paid plan, and they are separately gated: bottle labels, and the sale-ready pack that contains them. Otherwise the free limit is the formula count: three formulas at a time (the plans are here).
PerfuMate does rather more than its front page says, which is a fair complaint. The short version: it will find a replacement for a material from your own shelf, compare two formulas line by line, and keep every version you ever saved.
| If you want to | It does this |
|---|---|
| Replace a material you have run out of | Substitutes. The role is a hard gate, then softened sub-note vectors decide. Where no single bottle fits, it rebuilds the target from a pair or a trio with a fitted ratio. Each suggestion carries its match and its reason, and an honest no-match when there is nothing close. |
| See what changed between two versions | The evolution tree. Take a snapshot and it records its parent, drawn as a tree you can pan, with a diff against the parent, and restore or branch from any point. Snapshots are deliberate rather than automatic: an ordinary edit changes the version you are working in, which is why you take one before a direction you might want to come back from. |
| Put two formulas side by side | Compare. Shared lines aligned, two orderings, and the differences called out. |
| Know what it costs | Cost breakdown. Ranked by which lines carry the cost, naming the unpriced ones so an estimate is never quietly wrong. |
| Weigh it without losing your place | Make mode, and it is free. One ingredient at a time in large type, the screen stays awake, four weighing orders, and the first time you overpour it offers to rescale what is still to come instead of making you start again. |
None of these are AI. They are deterministic engines with tests behind them, which is why they can be trusted with a number. AI Studio sits beside them and is optional.
Yes, PerfuMate exports all of it, at every tier including free. One button writes a ZIP holding all your data in open formats (CSV that opens in any spreadsheet and JSON any text editor can read), and the same file imports back. Nothing you make is trapped here, and nothing about getting your own data out costs money. A plan buys only how it looks on the way out: color PDF themes, extra PDF sections, bottle labels and the sale-ready pack. All formula PDFs include the PerfuMate logo.
| What leaves | What you get |
|---|---|
| All your data, as a ZIP | backup.json, a complete re-importable copy of everything; library/materials.csv and .json with your stock, prices, suppliers and each material's constituents; one folder per formula holding formula.json and every version as both vN.csv and vN.json, with the live one marked; and batches.csv. Free. |
| One formula, as a file | CSV for a spreadsheet, JSON for the whole structure, or a designed PDF formula sheet. CSV and JSON need nothing; the PDF needs a free account. |
| One formula, to paste | Tab-separated to the clipboard, so it lands in spreadsheet cells rather than one column, and pastes readably into a chat. Free. |
| Your shelf, as a spreadsheet | Every material you own as one CSV: stock, bottle sizes, dilutions, cost and supplier. Free. |
| The label text for a bottle | The EU allergen declaration and the print-ready INCI ingredient line, copied to the clipboard from the compliance panel. Free. |
| The safety data sheet | All 16 sections as a PDF draft to review, with your supplier details on it. Free, with an account. |
| A sale-ready bundle | Bottle labels sized for your bottle, and a pack zipping the formal formula sheet, the SDS, the labels and the latest batch record together. A paid plan: the only row on this table that needs one. |
Two things are worth being exact about. The backup is the whole history, not a snapshot: every saved version of every formula is in the ZIP, so a branch you abandoned in March is still there. And it is re-importable rather than just readable: importing backup.json restores all your data, which is what makes it a backup instead of a printout.
One thing deliberately does not travel: the passcode on a locked formula. A four or six digit code sitting in a file you email to yourself is not a lock, so a restored backup asks you to set it again. Everything else, including your private notes, costs and suppliers, is in the file.
It works in reverse too. PerfuMate imports formulas from PDF, CSV, TSV, JSON or text you simply paste, matches the material names against 5,888 supplier synonyms so "Phenylethyl alcohol" finds the row you already have, and takes several files or a ZIP of them at once. Whatever you can get out of your current tool, it will most likely read.
Your work stays either way. Unlimited Lifetime is bought once and never lapses. If a Monthly ends, every formula, material and note you made is still there and still yours; you go back to the free ceiling of three new formulas. Nothing is deleted and nothing is locked.
Monthly, Yearly and the AI Studio plans renew until you cancel. Canceling stops the next charge, not access you already paid for. On an AI plan, credits refill every 7 days, and unused weekly credits do not roll over.
Nothing is ever locked away from you: your formulas stay readable and exportable at every tier, including free (see what you can take with you). What a paid plan buys is unlimited formulas and exports. Every tool opens with a free account, with exactly four exceptions, all on a paid plan: bottle labels, the sale-ready pack that contains them, color PDF themes, and formula version history. The prices are here.
Start free and find out: there is no card to enter. But the honest version has a shape, so here it is, including the cases where the answer is do not pay yet.
| If you are | What to do |
|---|---|
| Starting out, with a handful of materials | Use it free. This is the case a spreadsheet serves worst, not best. A blank sheet cannot tell you that your bergamot is phototoxic, what oakmoss actually smells like, or how long it holds on a blotter. You get all 2,211 described materials without typing one of them, and the arithmetic is right before you know which parts of it matter. |
| Selling, or planning to | Go Unlimited. The allergen declaration, the INCI line and the safety data sheet draft are free, but the bottle labels and the sale-ready pack are part of Unlimited, and doing that paperwork by hand is where evenings go. |
| Juggling dilutions at 1%, 10% and 50% | Use it free. This is the most common way a spreadsheet goes quietly wrong: solvent math is easy to get almost right. Here every dose is corrected for the strength of the bottle you own. |
| Scaling a 5 g sketch to 500 g | Use it free. Exact to the milligram in one step, with the weighing order worked out for you. |
| A hobbyist with a small shelf and no plans to sell | Stay on free, honestly. Unlimited materials and 3 formulas is a real workspace, not a teaser, and every calculation is the one a paying user gets. Buy when you want more than 3 formulas at a time, not before. |
| Someone who avoids subscriptions | Then you are fine. Unlimited Lifetime is bought once and kept, and nothing about it renews. Monthly exists if you would rather rent, and AI Studio is optional either way. |
One thing gets assumed about PerfuMate that is not true, and it pushes people away from what would suit them. The free tier is not a trial: it does not expire, it does not ask for a card, and it does not need an account at all. Open PerfuMate and it is there. On price, Unlimited can be rented by the month or the year, or bought once and kept.
It installs to a phone straight from the browser: open PerfuMate, then Add to Home Screen. On Android it is also on Google Play.
On Android, yes: PerfuMate is on Google Play. There is no iPhone app yet; on an iPhone it runs in the browser and installs to the home screen. An iPhone version will follow if there turns out to be demand for it.
Any phone can also install it from the browser. Open PerfuMate on the phone, then Add to Home Screen. On Android that is the browser menu; on an iPhone it is the Share button. It lands as an icon on the home screen and opens like any other app, without a store account, an install prompt or a download.
Neither way is a cut-down mobile version. It is the same app, with the same catalog, the same arithmetic and the same compliance checking, and if you sign in it holds the same formulas you left open on a larger screen. Weighing happens beside the scale, so the phone was the first screen this was designed for rather than an afterthought.
PerfuMate is operated by Omer Siton, in Israel, and you can reach him at PerfuMate.Support@gmail.com. It is one perfumer who writes the app and uses it for his own perfumes: that is the whole team, it is said here rather than implied, and the same line is on the privacy policy, the terms and the refund policy.
What happens if it stops. This is the right question to ask a small product, so here is the mechanical answer rather than a promise. The app runs on your own device: until you sign in, every formula is in a local database and the app works with no account and no network at all. Everything exports at every tier including free, in open formats, in one button: CSV any spreadsheet opens and JSON any text editor reads, with every saved version of every formula in the file. Nothing is in a proprietary format, nothing needs our server to be readable, and no export of your data is behind a payment; only the presentation extras are. If this site went dark tomorrow, a backup taken today would still open. The full list of what comes out.
It is worth knowing before you buy, in both directions. It means features asked for by people who actually make perfume tend to ship in days rather than quarters. It also means there is no support desk and no sales team, and a reply to a message comes from the person who wrote the code.
There are other things called Perfumate, and none of them are this one. There has been a perfume-finder website and an unrelated Android app of a similar name. PerfuMate is at perfumate.app and nowhere else: if a page, a listing or a download calling itself Perfumate is not on this domain, it is a different product and nothing to do with us.
What is not claimed: there is no company registration to point you at, no funding, no team, and no independent audit of the compliance data beyond the check described above, which you can re-run yourself from the repository. Treat the IFRA figures as a working set to compose against and verify against the official standards before you sell, exactly as the app stamps on every compliance sheet.
Still unanswered? Ask: the answer comes from the person who wrote the code. Or browse the catalog, no account needed.
Perfume formulation software
Questions, problems and requests reach a person: PerfuMate.Support@gmail.com.
Who is behind PerfuMate, including what happens to your formulas if it ever stops.
This is the only PerfuMate. It lives at perfumate.app and nowhere else, and it is not connected to any other product of a similar name.