cd /news/ai-tools/we-replaced-fyxer-overnight · home › topics › ai-tools › article
[ARTICLE · art-154378] src=madewithlove.com ↗ pub= topic=ai-tools verified=true sentiment=↑ positive

We Replaced Fyxer Overnight

Madewithlove replaced Fyxer with an in-house meeting notetaker called Notes, built in one evening and one night in a single Claude Code session after Fyxer's pricing change more than doubled the company's bill for the same service. In a 72-judgement blind listening test across six real meetings, ElevenLabs Scribe won 24 of the 44 snippets it appeared in, while Fyxer won 9 and local Whisper won 7, leading madewithlove to combine Scribe for speaker-change detection with pyannoteAI for speaker identification. The service runs on a Rust Worker on Cloudflare with a D1 database, a queue and an R2 bucket, stores data in Cloudflare's EU jurisdiction with pyannoteAI running in France, and uses ElevenLabs' US transcription as its one stated exception pending an EU-residency Enterprise plan.

by read6 min views3 publishedOct 21, 2026
We Replaced Fyxer Overnight
Image: source

I lean on Fyxer every single day. It sits in my meetings, writes the transcripts, and its MCP server lets Claude read them back to me. So when Fyxer changed its pricing and our bill more than doubled for exactly the same thing, I had a choice. Pay up, or find out how hard a notetaker really is to build.

It's a pattern I see everywhere in SaaS. Growth slows, so the product doesn't get better. The plans get bigger. The one feature you rely on moves up a tier, bundled with ten features nobody was waiting for, and the bill follows. That's not a pricing strategy. It's a lock-in strategy dressed up as one.

I picked the second option. One evening and one night later, madewithlove has its own: Notes. It transcribes English, Dutch and the mix of both that our meetings actually are. It knows who said what. It has an MCP server, so Claude can search our meetings, name speakers and manage the vocabulary. And everything it stores lives in Europe.

I didn't write it alone. I wrote it with Claude, in one long Claude Code session. I set the direction, listened to audio, voted on transcripts and made the calls. Claude wrote the code, ran the benchmarks and deployed. This post is the honest version of how that went, step by step, including the parts that didn't work.

Step one wasn't code. It was a benchmark. Vendors test on clean English podcasts. Our meetings switch languages mid-sentence. So we took six real meetings from Fyxer and ran them through everything: Whisper and Parakeet on my Mac, Whisper and Deepgram's Nova-3 on Cloudflare, pyannoteAI, and ElevenLabs Scribe.

Local Whisper promptly turned a Dutch management meeting into bad English, because it opened with "good morning". That's exactly what averages hide.

Scoring wasn't easy either. Word error rates need a perfect reference transcript, and we didn't have one. So Claude built me a blind listening tool: the snippets where the engines disagreed most, the audio, and the competing versions without names. I spent an evening clicking. Seventy-two judgements later, the answer was clear.

ElevenLabs Scribe won the words. It was picked 24 times out of the 44 snippets it appeared in, in Dutch and English alike. Fyxer won 9. Local Whisper 7. The tool I was paying for came second or third on everything.

Speakers were more interesting. Scribe puts a speaker change on exactly the right word, but now and then merges two colleagues into one. pyannote recognises a voice across a whole meeting, but is sloppy about where turns start. So we use both. Scribe decides where the speaker changes. pyannote decides who it is.

Could we split the audio per speaker and transcribe the pieces in parallel? Faster, yes. Worse, too. The model needs the whole conversation as context.

The service itself is deliberately boring. One Rust Worker on Cloudflare, a D1 database, a queue and an R2 bucket. Sign-in follows the pattern of our other internal tools: staff log in through Cloudflare Access on the web, and Claude connects via OAuth. The transcription services get a signed link that expires, and every step saves its work before the next one starts. A hiccup at three in the morning costs nothing.

Then one rule: everything in Europe. Our meetings are full of client names and hiring talk. Cloudflare made that a setting rather than a project. The database and the recordings sit in its EU jurisdiction, the meeting bot runs in EU containers, and pyannoteAI runs in France.

One exception, said out loud. ElevenLabs transcribes in the US for now. Their Enterprise plan offers EU residency, and switching is one line of configuration.

Privacy shaped the features too. A voiceprint needs consent: name a colleague's voice and they approve the sample first. And in the app, nobody reads a colleague's meetings unless they're shared.

The rest of the night was "can we also". A company vocabulary generated from our Notion databases, so different members of my team come out right. Zoom cloud recordings, one click to transcribe. A meeting bot: paste a link, and "Andreas's notetaker" joins as a guest, records and leaves. And a Mac menu bar app that records any call, offers to start when Zoom grabs your microphone, and loses at most a second if it crashes.

So what does it cost? We had nine Fyxer seats at $252 a month. The new Team plan is $64 a seat, so the same nine seats now cost $576. Notes costs about $0.40 per hour of meeting we actually transcribe: $0.27 for ElevenLabs, including the vocabulary hints, and roughly €0.11 for pyannoteAI. When the bot records, its container adds up to $0.22 an hour. On top of that come the fixed parts, $5 a month for Cloudflare and €19 for pyannoteAI's plan. Assuming about four meeting hours per person per week:

Fyxer before Fyxer now Notes
How you pay $28 per seat per month $64 per seat per month About $0.40 per meeting hour, plus about $27 a month fixed
Our 9 Fyxer users, about 150 meeting hours a month $252 a month $576 a month About $90 a month, or $120 if the bot records all of them
All 25 of us, about 400 meeting hours a month $700 a month $1,600 a month About $190 a month, or $280 if the bot records all of them

In other words: the whole company on Notes costs less than nine people on Fyxer's new plan. For those nine, Notes would only catch up with Fyxer's new price at around 1,400 meeting hours a month, or 900 if the bot records all of them. The bot's container has two cores and 8 GB of memory, billed per second. Prices as of October 2026, from Fyxer, ElevenLabs, pyannoteAI and Cloudflare (containers).

What I took away is simple. Benchmark on your own mess, not on a leaderboard. The speed didn't come from typing faster. It came from decisions made quickly: which engine, what leaves Europe, what never happens without a click. And boring choices age well.

And I believe more than ever in tools that are good at one thing. Notes doesn't draft my emails or score my sales calls. It turns meetings into transcripts and hands them to whatever I use next, mostly Claude. A tool that does one thing well is easy to keep, easy to replace and hard to hold you hostage. A tool that does everything gets to charge you for all of it.

Is it finished? No. The bot needs more real meetings on Meet and Teams, and the switch to EU transcription is still on the list. But instead of paying per seat, we now pay per hour of audio we actually transcribe. And "we should build our own" became a working product in one night.

── more in #ai-tools 4 stories · sorted by recency
── more on @fyxer 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/we-replaced-fyxer-ov…] indexed:0 read:6min 2026-10-21 · —