Show HN: Yaak – An open source, Git-friendly desktop API client
yaak.appHi HN! I'm Greg and I've been working on Yaak for just over a year. I usually describe it as a Postman alternative since most developers are familiar with that, but it's targeted more toward users that just want an API client (no mocking, testing, spec design, etc).
Having also created Insomnia for a similar purpose, I never thought I'd build another API client again. But, after selling Insomnia in 2019 and watching it expand into the broader feature set of Postman, I was left wanting a simpler tool again. Yaak was my answer to that.
It's hard to describe how it's better than the 100 other API clients, since its main benefit is design, but there are a few stand-out features:
- Optionally sync data to a local directory as plain-text, for use with Git/etc - Build and install plugins for authentication, template functions, or generic actions - Support for REST, GraphQL, WebSocket, server sent events, and gRPC
Yaak requires a license for commercial use but this only applies when using the prebuilt binaries. If building from source, a license is not required.
It's available for Mac, Windows, and Linux and the source is at https://github.com/mountain-loop/yaak
I'd love to hear you think!
The Software tool lifecycle:
1. Dev makes a cool lightweight productive tool
2. Tool becomes popular
3. Company buys tool
4. Company adds a bunch of shit nobody needs making the product bloated and annoying to use.
5. Dev makes a cool lightweight productive tool
> The interface is clean and much nicer to use than bloated alternatives like Insomnia and Postman.
As I recall, both _used_ to be the same way.
Yes indeed. This is why I stared over with Yaak
> Yaak is still open source under the MIT license. You can view, modify, and run the source code for both personal and commercial use. Licensing applies only to the prebuilt binaries.
That's a pretty interesting pricing strategy. I think REHL is the only other project I saw with this type of pricing.
I remember seeing another one while coming up with this, but now I can't remember what it was. It's definitely rare.
Since the binary and source release come under different terms, are there any technical differences between them? For example, some projects (like Visual Studio Code) will telemetry in the binary release, but do not enable it by default in the source.
No difference. You can see the build pipeline in the GitHub repository which builds directly from HEAD
I see, thanks! Very interesting project by the way, am looking forward to switching from Insomnia due to its enshittification.
"Is still open source"
Does this mean that you anticipate Yaak not to be open source anymore at some point?
Yaak used to not require a commercial use license (original plan was to do cloud sync), so "still" refers to the fact that the commercial use license now exists, but the open source nature hasn't changed. I'll update the wording there, thanks!
Would love to see a comparison with Bruno[1].
[1]: https://usebruno.com
Here’s my own take [1] when I was on the hunt for a good HTTP client a month or so ago.
[1]: https://royathan.com/blog/the-api-client-hunt/
Hah, and you chose Yaak!
Also, bruno has a custom declarative API request DSL that is suitable for text-based editing, complementing the usage in the GUI application.
https://docs.usebruno.com/bru-lang/overview
I've been meaning to put some comparisons together!
Bruno is also a good local-first client but leans more toward Postman's market.
The main advantage Bruno has is the ability to run tests, and a CLI to do so.
Yaak supports more protocols (eg. gRPC and WebSocket), has plugins, and more powerful templating for doing things like generating UUIDs (also extendable via plugins).
would you consider adding pre-request and post-request script in yaak also?
It's definitely under consideration. Yaak has Request Chaining [1] to solve some of the use-cases that scripting is typically for, though, so there isn't a ton of demand for it.
[1] https://feedback.yaak.app/help/articles/7017237-request-chai...
This is excellent Greg thanks for sharing! One thing I do find missing from a lot of these API clients is synced environment variable entries between environments.
For example if I create a `dev` environment that contains a `base_url` environment variable, it's expected that when I create a `prod` environment, it will also have a `base_url` environment variable. Then in the future if I add more environment variables to my `dev` environment, I need to duplicate the work of adding an environment variable entry to `prod.
I can't be the only one that experiences this pain :P The UX of this could be handled in any number of ways:
- When you create a new environment, ask if you want to duplicate an existing environment's variable names (with empty values)
- If you add a new environment variable, ask if you want to add the environment variable name to another environment
- Option to enable syncing between all environments i.e. deleting a variable row in one environment deletes it for the rest etc
I was about to post this as a github issue for traction but given Issues are turned off thought this may be the next best place.
Regardless, Yaak is excellent!
The feedback board is linked in the readme! I do agree with your points and have been passively thinking of an overhaul to how environments work. It's one of the most important features and has so much potential (like activating multiple at once)
Ahh I’m a silly sausage then, thank you! I’m very glad you’re so responsive. Whilst postman is excellent, it’s become so big and enterprisey that it doesn’t feel like requests are heard let alone would be considered given the breadth of customers they deal with.
Ya, I feel like their need for growth is forcing them into it. I'm glad I only have to earn enough income for 1 person, not 1000.
Yaak is great, I have been using it since the launch Greg.
I'm kind of curious why you picked Tauri over Electron for this one? I know one big benefit is smaller binaries but I'd love to know your thoughts behind this decision.
Thought this was about the language learning app https://yakk.app/ for a brief moment looming at the URL!
I’ve been using Yaak for a few weeks now and it’s great.
I bounce around API clients a lot because the UX just never feels right, they always get in the way or start to feel clunky sooner or later.
With Yaak it feels natural, it’s clean and simple and is a joy to use.
I’m looking forward to seeing it grow and improve further.
I just hope as its feature set grows it can hold on to that simplicity. Hopefully the plugin system can be used to bridge any gaps without overloading the main app.
Yes, that's the goal for the plugin system. The overall interface should not noticeably change from here on out.
How can we be sure that Yaak won't be sold and enshittified two years from now?
Maybe I'm nitpicky, but I love sticking to software for years, had to ditch Insomnia after an auto-update killed my collections and wanted me to sign up for a cloud service. Could happen with this (yes, any software for that matter), too, because you'll sell it in a year from now.
I agree, there's no way to know for sure. But I feel like I'm the least likely person to do this with Yaak since I learned from experience already.
You can't. Ever. So you just need to live with uncertainty.
For Insomnia I had to disable auto-update...and also cancelled my paid subscription the day after the enshittification.
Did you consider JetBrains licensing model? I don't like renting software, I'd rather buy it upfront, but JetBrains with their fallback licenses really got me – you get your perpetual fallback license for a particular version of product. And guess what, I keep paying them anyway, because of confidence I can fallback, but they keep innovating with new updates.
I basically copied this. Yaak also has a perpetual fallback license.
This got much less attention than I would have expected.
Yaak is awesome, please please please keep it local-friendly
Ya, the gamble of HN I guess. Thanks for saying so! It will be local friendly for as long as I'm working on it, and I'm in it for the long haul this time.
Glad to see this picked up :)
Any chance there’s room for assertions in your vision for Yaak? Running API tests is important for some teams which might force them to stick with Postman / Bruno
IMO the local focus also makes this better—can run tests directly in pipeline without calling out to some SaaS solution
What about a license for devs to use when it’s commercial, but their company won’t buy it?
Kind of like how Quokka has a “personal pro” license.
https://quokkajs.com/pro/
That's the idea behind individual license. It's a non-transferable license that's cheaper than business.
Ah! I was so happy I can put postman to rest. What I didn't like is the landing page did not clearly communicate I am installing a non-free product with a trial, so I uninstalled it. I am only letting you know that this trick might affect retention.
fantastic. i was about to make my own after being frustated with bruno's change in billing and just lack of quality.
having gone from postman -> insomnia -> back to postman -> bruno - id like to just have something simple that _just works_ without making it a pain.
looking forward to giving this a spin.
https://hurl.dev/index.html
Probably the only tool that won't get SASSified into oblivion. CLI only is like plot armor for enshitification.
Thanks! Let me know if there's anything missing :)
> But, after selling Insomnia in 2019 and watching it expand into the broader feature set of Postman, I was left wanting a simpler tool again. Yaak was my answer to that
I'd love to read about your experience building two distinct but similar products in the same space years apart
I'd say the only real differences are that (1) I know what I'm building from the start and (2) I can avoid the fundamental technical mistakes.
It's actually been way harder to gain traction this time, I think because APIs are no longer sexy and there are so many good tools out there.
Was looking for a simple API fiddler, and you presented one! Thank you, will jump on it ASAP to play.
Cool stuff, how does it compare with httpYac? > https://httpyac.github.io/
Not sure, I haven't used it!
Looks great!! I would love to move to this as my go-to API client but my fear is it stops getting maintained overtime like httpie.io but at least this is open source so a great win!
I use yaak! Great piece of software for just not having to memorize curl syntax, wrestle postman
What’s the end goal though? Planning to sell a licensed version? I’d be happy to pay for a model where I can own it for life but only get updates for a year.
This is how it works now, though I need to make it more clear.
If you subscribe to the annual plan (or the monthly plan for 12 months) and cancel, you get a perpetual license, meaning you can continue using the current version indefinitely.
The end goal is generate a sustainable income for as long as possible, so I can enjoy life with my family.
Downloaded it, looks great. I am building a desktop app as well (very different functionality) and I wonder how do you do license management?
Just a basic server. Licenses are attached to paying users. The app checks the license against the server periodically to unsure it's still valid. It's not that complicated since I don't care about piracy.
I love your landing page & overall design of the home page. So clean. Love the color scheme as well.
Thanks, I just did a big overhaul on it and came up with something I'm very pleased with :)
If you were to develop an MVP and release your first Saas in the next month, what would you like to know beforehand?
Congratulations ! Will test this out tomorrow :)
Awesome! Let me know what you think.
Yaak is so underrated!
[dead]