I used Postman for years. It was the first thing I installed on every new laptop, the default answer to "how do I test this endpoint," and for a long time it was genuinely good at that job.
Then Postman killed free teams.
That wasn't what made me leave, but it did make me look at my setup again.
I realised something weird, why does testing an API running on my own machine require a cloud account?
What started bothering me
This isn't really about pricing. Plenty of people will tell you to just pay for Postman, or just use the free tier, or just wait for them to walk it back. That misses the point.
At first I didn't care. Then I started noticing things
Your data isn't really yours. Every request, every header, every auth token you've ever tested lives on Postman's infrastructure, not your machine. I went looking and found that Postman, like most cloud-first tools, collects telemetry by default. None of this is secret or hidden, it's in the privacy policy, but most of us never read it before clicking through setup.
You're testing a localhost API through someone else's cloud. This one actually bothered me once I noticed it. Hitting an endpoint running on my own laptop, through a tool that wants an internet connection and an account first, started to feel backwards.
Vendor lock-in is real, even with an export button. Postman lets you export collections as JSON. In practice, every export I've done has lost something: an OAuth flow, a binary body, a header that didn't quite map. "You can always export" is true and also not the same as actually owning your data.
What I looked at instead
I didn't jump straight to one alternative. A few options came up enough times in threads and comment sections that I actually tried them.
The first thing I tried was Bruno because that's what almost everyone recommends when somebody says they're leaving Postman.
I actually liked it. Requests live on disk, Git works properly, and I never felt like I was fighting the tool. For a while I thought my search was over.
The thing that eventually bothered me was the .bru format.
Maybe this won't matter to everyone, but one of the things I was trying to get away from was tool-specific formats. If I open a request file in a text editor, I want to immediately understand what's going on. With .bru files, I still felt tied to Bruno.
I also spent some time with Yaak.
The UI is great. It's fast, lightweight, and honestly one of the nicest API clients I've used. If all I cared about was the experience of sending requests, I could have happily stayed there.
But I kept coming back to the same question:
"If this tool disappeared tomorrow, what happens to my API definitions?"
That's when I started paying a lot more attention to the actual files being stored on disk rather than the application around them.
Where I landed
I ended up on Voiden, and the reason is almost embarrassingly simple: it stores API requests as plain Markdown files.
Not a proprietary format that happens to live on disk. Actual Markdown. A .void file opens and reads fine in VS Code, in Vim, in GitHub's file viewer, with nothing installed beyond a text editor. That's the whole pitch, and it turned out to matter more to me than I expected.
A few things that made the actual switch from Postman easier than I assumed it would be:
- It imports Postman collections directly, drag and drop, into native
.voidfiles. I lost less in that import than I lost moving between two different versions of Postman itself a few years back. - Requests are built from reusable blocks instead of static forms. Auth, headers, and params can be shared across requests instead of duplicated in every single one. The first time I updated one auth block and watched a dozen requests update with it, I understood why people make a big deal out of this.
- No account, no login screen, nothing to set up before sending a request. The thing I do most often, test something on localhost, finally just works without a network round-trip to someone else's server first.
- It's open source under Apache 2.0, which matters to me more after this whole experience than it did before. If a small team's funding model changes, I want my tooling to survive that, not vanish behind a new pricing page.
It's not the most established option here. Bruno has a much bigger community, and that's worth weighing honestly if community size and plugin ecosystem matter to you more than file format does. For me, the actual day-to-day difference, files I can read, share, and review like code, was worth being on a smaller, younger project.
The actual lesson here
I'm not saying Postman is bad.
It solved a lot of problems and I used it for years.
I just realized I care more about local files, Git, Markdown and owning my data than I do about cloud workspaces.
That's what made me switch.
Download Voiden here: https://voiden.md/download
Repo, if you want to see how it actually works: https://github.com/VoidenHQ/voiden
Top comments (1)
The local API client argument is stronger than just pricing. If the service under test is local, the request history, environment values, and team workflow should not silently depend on a cloud account. Offline-first devtools still matter.