API Clients: Bruno betrays, Yaak yaks
TLDR: Yaak is excellent
Imagine having application wipe out your local data, and force you to create an online account to get it back. Sounds a lot like ransomware. That’s what Kong did with their Insomnia REST Client during an automatic update.
So… time to shop around:
- Insomnia š
- Good will absolutely devastated
- Postman
- Bloated
- Closed source
- Insomnium (Insomnia fork)
- Not maintained (what happened here?)
- Bruno
- What felt like an obvious choice until you look at the path itās taking toward becoming the very thing it swore to destroy
- Locks key features behind paywall
- REST Client - VSCode
- Lacking a way to view request/response body history
- Requires using a VSCode project which is messy
- Clunky for my usage
- HTTP Client - IntelliJ/Goland
- Insanely slow startup if the IDE isnāt already running
- Rapid API for Mac
- Worried about lock-in
- Closed source
- Hopscotch
- Bloated
- Poor request/response history
- Curl
- No response history
- Yaak ā I like this one ā
- Open source
- No lock-in (local with import/export)
- Excellent future outlook (focused, sustainable income model)
Disappointment
The obvious fallback is Postman, the front-runner in developer headspace. But I wrote that off long ago for its lack of auto-save (which it finally added ārecentlyā), plus itās not open-source.
In my eyes, Insomniaās functionality was close to perfection so Iād have liked to use an Insomnia fork from before they did what they did, however, there isnāt a maintained fork (Insomium is archived under somewhat dubious circumstances š).
I think Rapid API Client (formerly Paw) is one of the highest quality options here and is free, but ultimately, itās closed source, MacOS only, and Nokia just acquired Rapid, so I donāt have high hopes for it staying free and maintained.
Then I finally landed on Bruno! But wait, the TLDR said Yaak: You see, Bruno does everything perfectly (for now), but only if you pay for it.
The Bruno Rant
So here is what we dont want to do
- We don’t want to raise VC funding
- We don’t want to sell the project (get acquired)
- We don’t want to add/support cloud sync
- We don’t want to start a company and hire people
- We don’t want to sell monthly recurring subscriptions
He then started a company and hired people.
We don’t want to start a company and hire people(edit: see here)
One user on the GitHub issue wrote:
Take your bets, which oneās getting crossed out next?
A strangerās responded:
Obviously the last one. And then the others. This is a todo list!
If you look at Brunoās pricing, you might notice indeed, Brunoās pricing model has changed to monthly subscriptions.
We don’t want to sell monthly recurring subscriptions
So Bruno is open core not open source. If the paid features werenāt impactful to the average user, it wouldnāt matter. Unfortunately, when your pricing model is based around individuals, you are incentivized to put the features individuals want behind a pay wall.
IMO the ability to see my previous API calls and look for changes in those responses is core functionality, but thatās locked behind Brunoās monthly subscription, with no perpetual license!
So you could take my opinion that Bruno has hostile pricing, or you could take the side of the creator:
Examples of hostile pricing that we shouldn’t do:
- …
- locking core functionalities
- monthly recurring subscription
Ah never mind weāre on the same page. Bruno is making excellent strides in the capitalism any% category.
Yakety Yaak
So I continued looking around until I stumbled across Yaak.
Yaak seems to get everything right. Excellent functionality, open source, and a pricing model that supports its open source development rather than conflicts with it.
As with any project, this could all change. However, thereās one important aspect to Yaak that gives me far more hope in its future success: Itās the brainchild of Greg Schier, the creator of Insomnia! He has already built one incredible API Client, and has seen first hand what an acquisition can lead to:
I’m finally internalizing the lesson that acquisitions are always terrible for the product. So long @GetInsomnia š„²
Since this has somehow turned into a sales-pitch: Another interesting comparison is that Bruno is built on Electron, takes about twice the memory of Yaak, and for some reason, slowly climbs in memory usage with each request. Yaak is built on Tauri and seems to have consistently lower memory usage.
Bruno Memory
Yaak Memory
Memory usage captured from btop on a fresh startup and making the same API call.
Summary
There are a lot of API Clients out there. Bruno is actively selling its soul, Yaak has yet to do so. Iād highly recommend you try Yaak.
P.S. I acknowledge this post makes me sound like a leech because I want my software to be good, and fully open source. Itās easy to assume that means I’m against paying for software. I think Yaakās pricing model fits the bill and I did pay for a year/perpetual fallback license to support Greg and his efforts, even though itās very easy to build from source for free (as in beer).