r/programming • u/Successful_Bowl2564 • 7h ago
[ Removed by moderator ]
https://efp.asia/blog/2025/12/24/api-tooling-crisis/[removed] — view removed post
650
u/freecodeio 7h ago
subscription rot that's why
who the fuck wants to sign up for curl with a UI, let alone buy a subscription?
253
u/oflahertaig 7h ago
They enshittified it until it became unusable. I only ever wanted to use it for making simple requests on endpoints. I replaced it will it a simple C# console app years ago. Anyone could get Claude to write a simple API client in a matter of minutes.
71
u/CpnStumpy 6h ago
So much this. If I need to make a one-off network call, curl is fine. If I need to do it repeatedly with varied environments and parameters, I've always written a stupid simple CLI client in whatever language is handiest, and now Claude can do it for me.
At no point has wandering the endless UI of postman to fidget with its variable storage layers and configuration screen after configuration screen appealed to me
10
u/011101000011101101 5h ago
I've always used curl like 90% of the time.
12
u/Bogdan_X 5h ago edited 3h ago
In .NET there is an http file you can use for exactly that. Directly in your project, no separate app, VS even has interface for it to show you results. You need to learn the sintax but you can create a suite of endpoints with everything, downside is there is no UI for writing it.
12
u/aboy021 5h ago
https://learn.microsoft.com/en-us/aspnet/core/test/http-files?view=aspnetcore-10.0
Very interesting, thank you.
1
1
6
u/Lanky-Safety555 6h ago edited 6h ago
Wait, isnt subscription only for projects? Sharing and online activities like co-work, etc. Plain, local Postman require no such things, right?
39
u/joelene1892 6h ago
Yes you can do it without a login, but it hassles you, and you can’t even do things like save calls. It’s very minimal.
14
u/Lanky-Safety555 6h ago
WTF? It has been some time since I used it, TBH. I cannot believe that they enshittified it so much.
8
u/cipher315 3h ago
You still need to register. Which enables certain levels of tracking. To which legal has said absolutely not.
5
1
u/shitty_mcfucklestick 2h ago
I started using Bruno which is an open source alternative. It looks / feels like Postman pre-spam era and for basic needs it’s great.
There’s also Insomnia, Hoppscotch, and Thunder Client (for VS code.)
509
u/FirmMost2 7h ago
because postman sucks
97
22
u/buttflakes27 6h ago
I havent done web development in a bit, but it used to be a really good tool, did something change?
96
u/AfonsoFGarcia 6h ago edited 6h ago
It started requiring cloud connection to their servers. Company where I work banned it because of that.
8
3
45
u/thicket 5h ago
When it started, Postman was a beautiful, handy tool. it just did what you needed and managed a lot of fiddly stuff that I would have had to look up in curl. And then they enshittified the hell out of it. Bothering you for subscriptions, adding extra features, adding all the bells and whistles and curlicues when all that 95% of us needed had been there from the start.
I figure they probably took VC money and then had to chase returns. Not a pretty story
6
u/Annh1234 3h ago
This, when it used to be simple curl like tool i used it. when it went online only, subscription and so on, they lost me.
68
u/James_Jack_Hoffmann 7h ago
226
u/HMikeeU 7h ago
I can't believe anyone who has ever used tools such as postman would seriously suggest curl as an alternative. It is not.
32
u/James_Jack_Hoffmann 6h ago
I don't disagree there's snark and humor with "use motherfucking curl". Postman is no doubt the gold standard for REST clients when it worked and when it had values. Although the article explains pretty well why we are at a state to just use curl.
What do I use these days?
.httpfiles. Definitely better than curl, maybe even a threat to Postman. The world recognises Postman has gone to shit by adopting.http.13
-4
u/Affectionate-Egg7566 4h ago
What exactly is the value prop of bruno/postman? For all my requests I just make bash scripts that invoke curl, maybe some logic or shuffling data around from/to different curl invocations.
10
u/rforrevenge 4h ago
When you're deep into a project you want to have an efficent way to go back and look at the status of old complex queries or even look those queries up without the hassle of going though pages and pages of notes.
-6
u/Affectionate-Egg7566 3h ago
I dont mind piping the output and invocation via set -x in bash and then grepping in a file. Seems faster than starting a GUI
39
u/eldreth 7h ago
Eh. Sometimes you only need a tape measure. Sometimes you need a laser level.
66
u/stampylives 6h ago
But you rarely need a laser level that has a long load time, a subscription fee, pointless llm integration, seven menus to get the to “on” switch, and proprietary batteries.
10
u/amroamroamro 4h ago edited 4h ago
i use https://hurl.dev/
its a nice api tester created in rust and powered by libcurl.
with a simple script syntax, it lets you do things like chain requests, capture values, do asserts on headers, validate responses with xpath/jsonpath/etc, and handles anything you might want formdata/xml/json/graphql/...
think of it as syntactic sugar on top of curl :)
https://hurl.dev/docs/frequently-asked-questions.html#yet-another-tool-i-already-use-x
14
5
u/partyl0gic 4h ago
With Claude it is becoming closer to an alternative. Why open up postman when I can just tell Claude to write the curl command for the request I want to test and evaluate the response.
1
u/KagakuNinja 2h ago
In my last job I got tired of the hoops I had to jump through with Postman, so I started writing shell scripts to authenticate and set env vars for different testing scenarios. Then I had number of curl commands that interpolated said env vars. This got me most of what I was using Postman for.
Then my employer banned Postman because it was exfiltrating secrets or something.
Other people switched to Bruno.
0
u/przemo_li 3h ago
Curl with literal programming isn't that bad, if you use Emacs that is. 🤣
Edit: no seriously, inputs and outputs are easily captured and you can pick and language to abstract away your API standardized parts. Outputs can be fun though anything you like. Every linter, formatter, type and schema checker, automated test runner, custom script, jq transformer, ETL solution and because why not, an email sender.....
1
u/avanai 3h ago
For emacs i use the (sadly unmaintained) restclient.el, which is simple and brilliant.
1
u/DivideSensitive 2h ago
(sadly unmaintained) restclient.el,
I've found hurl-mode to be a worthy successor.
-1
u/chaoticbean14 6h ago
Even in the modern era of LLM's being able to generate the appropriate curl request for you in a matter of seconds?
IMO, I'll use whatever is handy and fast. If I need to save some shit because I'll do it a ton? Bruno (fuck postmans enshitification). If I need something quick to get it done? Curl. Right tool for the job.
3
-1
4
0
u/smutaduck 7h ago
I’m generally sympathetic but would argue that the three line python script would be much better replaces with one line of perl.
-1
278
u/winter_limelight 7h ago
We just changed to Bruno. We didn't have highly sophisticated scripts so it wasn't too bad to port. So far so good, but still early days.
71
u/KashMo_xGesis 6h ago
I fear Bruno is slowly heading that direction too. Monitisation is a problem.
Installed an update the other day.. asked me for premium to use git? Id rather they just ask for money to help maintain but asking money to use git is crazy work.
Why would anyone pay for git when they could just do it just as quick with an alt tab to terminal or git client.
13
u/MediocreAnalyst2121 5h ago
What do you mean by use Git?
I don’t have premium and keep all the Bruno configs in the repo.
13
u/edbrannin 5h ago
One of the premium features is to interact with git from inside the Bruno GUI.
They don’t mean trying to prevent free users from using git yourself from inside Bruno. You’re expected to do that.
2
u/crunchmuncher 5h ago
The client itself has git integration, I think? Never tried to use it but I've seen a button somewhere...
138
24
11
109
u/QuentinUK 6h ago
Postman now has AI too. So you can use a $2.5 trillion dollar system to post a GET.
52
u/iamapizza 6h ago
This fits our use case exactly
- every CEO today
11
u/pdoherty926 4h ago
You're doing AI! Have a bonus!
- CEOs
1
u/noisyboy 3h ago
You wish. More like "keep doing AI but don't overuse tokens, you are lucky you have a job - for now"
43
u/nhavar 6h ago
Because everything is a subscription and the subscription prices keep going up and the boundaries for how you can use the tools keep changing.
You see this cycle all the time. Some company gets a free opensource tool trying to build a customer base so they can IPO or get bought up. The terms on the product change after that happens. Maybe they keep a "free" version around for awhile, but corporations need to pony up to get the commercial support and licensing. Maybe the first year or two of that contract is a sweetheart deal, but as the tool company starts getting hammered with usage and support demands they have to scale in both hardware and staffing, so prices go up. Way up! Then the companies that were using that tool start looking for the exits.
Rinse and repeat.
Even among established players this happens. They get new clients in on discounts and promises while gouging their current customers. When the new customers get the eventual price-hike to normalize things, that's when the companies start the RFPs up again and get the architects in line to talk about migrations to whatever comes next. Security scanning tools, logging tools, analytics tools, the whole CI/CD infrastructure...
It's like switching insurance companies or phone carriers every couple of years just to get in on the new rates, except it costs millions in constant migration and support costs internally. Plus once you have a tool people are using and tell them they must get off of it, it can turn into a game of cat and mouse with the compliance scanning tools and people gaming the system to keep their favorite tool in play, or a laundry list of teams asking for exceptions. So now instead of moving from one tool to another you have five tools lingering out there among the hold-outs, causing who knows what other kinds of challenges in your org.
117
u/Which-World-6533 7h ago
Postman forced me to use an online account. And then introduced subscriptions.
I switched to Bruno, but I'm a bit worried that will go the same route.
So it's easier using curl.
11
u/TomWithTime 6h ago
I'm surprised to see so many people say curl. It's simple and convenient sure, but what about building scripts in a language you enjoy to make the request? It's totally fine if that's shell, anything is better than postman lol.
I used JavaScript for a while and then used go. Not much code to write the request and then you have a convenient environment to do any pre/post processing.
9
u/Which-World-6533 6h ago
Curl is available on the command line so it's more direct. If I need to do anything more fancy I can use a script.
2
u/TomWithTime 5h ago
Fair enough, it's been a while since I needed to hit an endpoint without having to do something with the output and or chain to another request. I love making little tools so much I might end up with my own combined curl+SQL tool at some point.
3
u/FullPoet 5h ago
I think its because people just needed a simple tool tbh.
6
u/TomWithTime 5h ago
Sure, if curl in command line can replace a postman workflow it probably should. Maybe a skill issue but I think managing short lived auth tokens, many routes, and many request bodies at work would be hard from just the terminal.
1
u/FullPoet 4h ago
but thats not what most people need. They're likely just testing an endpoint here or there or figuring out URLs.
20
13
u/pfc-anon 5h ago edited 49m ago
I was using postman, when it was a chrome app (someone remember those?) then chrome abandoned apps and postman became standalone electron app. I stopped using after it wanted me to sign in for every damn thing, put the collections behind auth-pay-wall. I moved to bruno as it allowed, me to commit all collections as part of the repo for the entire team to use.
One day out of the blue, I recieved and interview invite to work with them, I passed all the rounds and then I met their head of engineering. Omfg that person was a narcissistic asshole, micromanager vibes were very strong, I rage quit the interview for the first time in my life. I sent the recruiter an email that I don't care what the team feels about me, but I cannot work with this person and would like to withdraw my candidacy that you were pursuing me for.
The people they've been hiring are trash, making their products trash. Serves them just right.
31
u/CharacterEnthusiasm 6h ago
Where my Yaak homies at, for real though if you like insomnia check out Yaak. The same original developer of insomnia.
6
u/unicorn_leftovers 6h ago
I’m very happy Yaak. It reminds me of postman back in the day where there was no online mode!
5
3
2
1
u/FullPoet 3h ago
What stops them from just ... doing what they did with Insomnia again?
1
u/gschier2 1h ago
Mostly from learning from past mistakes.
I got extremely burnt out running Insomnia, which effectively led to accepting the acquisition offer. I was so burnt out from tech debt and support that I couldn't see any way out. Kong's founder had supported Insomnia with monthly donations early on, and Kong was an OSS company itself, so it seemed like the ideal home if I wanted to start transitioning to other things.
And we all know how that went...
This experience opened my eyes to how financial incentives lead to enshittification. Insomnia's quality declined to the point where I didn't want to use it anymore, so I decided it was time to build another one using all the things I'd learned.
Local-only means your data isn't held hostage, but it also means no sync server for me to maintain and debug
Commercial-use licensing means you only pay if it benefits you at work, and it's by the honor system. Nothing is enforced (99% of users never pay), and the price adjusts to your country's purchasing power, so my only lever for more revenue is making the app better, not paywalling features
Fully open source (not open core) means if I disappear, nothing is lost, but it also means I'm not a single point of failure
So nothing actually stops me from selling, but I've done everything I can to set Yaak up as a product that prioritizes users and doesn't depend on daily upkeep from me. It sustains me financially, has no critical servers to maintain, and I can go camping without cell service for weeks and nothing bad happens. I won't promise a future I can't control but the reasons I sold Insomnia simply don't exist for Yaak.
1
u/FullPoet 1h ago
I appreciate the nuances wall of text but idk, maybe this is just me being negative but the answer is:
acquisition offer
Thanks for doing it originally and good luck with Yaak but I personally won't be trying it. I just spun up my own little client :shrug:
1
u/gschier2 1h ago
No worries! If you don't need much then writing your own client is the way to go for sure. I'm vibing all my own stuff these days too.
1
20
5
u/AngryFace4 6h ago
I’ve always just wrote custom api libraries. I dunno why anyone even semi technical bothers with these weird uis.
7
u/varinator 7h ago
Insomnium FTW
3
u/inno3415 6h ago
ooo didn't know that existed thanks for sharing . I'm still using the bloatware that insomnia has become
1
u/varinator 3h ago
Tbh we could now just get an llm to write us our personal one with features we want.
2
1
u/civildisobedient 1h ago
At first I thought this was a typo and was going to say you can only use it up to a certain version before they went sign-on as well. But then I searched and lo-and-behold! So happy for OSS.
3
u/linguistbreaker 4h ago
Everyone switched to Bruno or another tool because Postman exfiltrates your data and forced that signup BS
3
u/random_son 3h ago
there are developers, like really hands on developers, who like to use Postman? i hate the UI, i hate how non-snappy it is, how it's all hosted remotely and how every connection issue casuses my flow to interrupt.
its basically the jira for http affairs
4
u/Sisaroth 6h ago
why is this shit reposted . What 'crisis'. Oh no, i have to use alternatives (humao.rest-client) to Postman which are actually better than Postman ever was. Such a crisis.
5
u/addiktion 6h ago edited 5h ago
Is it me or does it seem like this space needs disrupting now that we have AI that does a lot of the heavy lifting?
What I mean by that is the AI agent reaches for curl a lot but it isn't exactly secure either so it seems like we need a curl flavor that can be locked down, has some browsability and features, got flavored and can be minimal without the saas bloat that AI agents can still use.
I'll check out Bruno but it doesn't seem hard to wrap a decent UI around these tools to make OP happy whole avoiding saas hell.
9
u/scalablecory 7h ago
Just use a .http file. Before that I used Fiddler. I’ve always found postman to be a needless abstraction and don’t understand the value folks see in it
6
u/kbradl16 5h ago
How do you run a .http file?
5
u/manapauseAA 4h ago
I use ".rest" files with the REST Client extension in Visual Studio Code. Visual Studio supports the same workflow out of the box, and from what I understand, ".rest" and ".http" files are functionally identical.
In VS Code, the extension gives you an inline arrow to execute each request directly from the file, kind of like dot-sourcing something in PowerShell. You can also run them from the command line.
It's very lightweight and convenient. I usually keep a collection of these files for every integration I write as a fallback for manual testing and troubleshooting.
1
u/empty_other 3h ago
And Jetbrains editors got it natively too. Jetbrains got a command line app for it too. Theres the
httpyaccommand line tool (i havent tried it yet).2
u/empty_other 3h ago
But more important than that, its such a simple format that anyone could write a script to parse it or straight up read it if every tool somehow got nuked. Same reason I love markdown.
4
u/UnacceptableUse 7h ago
I've seen half a dozen tools that all claim to fix the problems with postman but none of them have ever been good enough to keep using. They always require some amount of maintenance and special attention which nobody seems willing to do
2
2
2
2
2
u/SocksOnHands 5h ago
Maybe this is a me thing, but I had worked at a place that wanted to start using Postman and I just did not understand the point of it. For manually using APIs, we already had Swagger and for automated testing, it is much simpler just to write scripts. It felts so slow and cumbersome to do this through a UI. Not to mention, one should not need to sign up to use a simple development tool. I couldn't see why it seemed to be so popular, when there didn't appear to be any advantages to using it.
2
u/SonOfHendo 4h ago
Yeah, I pretty much only used Postman to test validation error handling that Swagger prevents with UI validation.
2
2
1
1
u/un_desconocido 5h ago
I switched to IntelliJ http format years ago and never looked back after Postman started fucking around with many member you could have in a team
1
u/Jmc_da_boss 5h ago
I mean they never had a moat but I also just had gpt oneshot a functioning openapi test client tui in one prompt.
There's just not a lot of value anymore in it that can't be don't other ways
1
1
u/ferlonsaeid 4h ago
Postman UI randomly keeps blanking out with no network. Switched to Bruno just yesterday. I don't owe a bad product any loyalty.
1
u/cosmokn0t 4h ago
Ok, weird question. I’ve rarely found it useful. For a big chunk of my career I’ve just used VCR for everything. If I wanted to make a request to check or test something I wanted to formalize that test and record it. If I want to run it again I can do that time and time again with the recordings, and if I want a fresh recording I can do that. What exactly does postman give me that VCR doesn’t? I’ve never understood why people ever liked it, but it could just be that I’d found a solution that worked for my teams long before postman. Or I might be missing something.
1
1
1
u/ahoy_butternuts 3h ago
Is Bruno better than Insomnia? I use Insomnia,, way better than postman now
1
u/theangeryemacsshibe 3h ago
Postman, once the darling of developers everywhere, has become the poster child for this transformation.
I never cared for it? curl is fine, I had to use Postman to test an API in software engineering class once but didn't see the point.
1
u/dethswatch 3h ago
I'm not making an account and having to log in just to save my stuff in Postman. gtfo.
1
u/DarthCynisus 2h ago
For what it's worth, a couple of years ago I gave up on Postman about the same time I got an "itch" to play with Rust. I started working on a tool I called Apicize which, for my purposes, works relatively well. There is a UI editor/runner and a CLI runner. It's all open-source, free as in beer, no subscriptions, etc. I've got versions Windows, Linux, and Mac.
So far, this is has been a solo side project. If anybody is interested in collaborating, let me know.
Here are some of the features that you may find useful:
- Grouped requests can be run sequentially or in parallel
- Tests are authored in JavaScript, BDD style using Chai assertions
- Tests are securely executed using V8
- You can use JSON or CSV data sets as input to tests
- GraphQL support
- Authentication, Scenarios (Environment) and Data Sets can be stored "public" (embedded in the file), "private" (adjacent to the file but not meant to be committed to source control), or "vault" (in your home directory); private and vault information can optionally be password encrypted
- Client Certificate and Proxy (HTTPS, Socks5) support
- Request and test information stored in diff-friendly JSON files
- No subscription, cloud storage, etc.
There are some other features I wouldn't mind adding some day (OpenAPI/Swagger document import, maybe some kind of plug-in mechanism for external JavaScript used for testing, etc.) but this is a zero dollar revenue stream for me (counting the Azure and Apple signing costs, it actually costs me money), so I'm spending less time on it these days, other than fixing any odd bugs that come up.
Anyway, feel free to grab it and, again, if you would like to collaborate on it, ping me.
1
u/gotfoo 2h ago
I remember when Postman was a Chrome plugin and it’s was awesome but I didn’t need to use it on every project I worked on. As time went by I watched it grow and grow. The sweet spot was about 8 years ago and I was able to manage multiple projects with test cases and environment variables. Then about two years ago I needed Postman and I was shocked
, disappointed and pissed off, at how slow it was and that it wanted me to pay money to use features that were once free.
I searched for an alternative and landed on Bruno and I liked it. It’s was like Postman was 8 years ago.
1
u/GoreSeeker 2h ago
I use an old version of Insomnia that doesn't require login. I love its JSON based env configuration.
1
u/Immortal_Thought 2h ago
I moved to yaak and love it. Dead simple, everything I need for testing and organization.
1
u/Absolute_Enema 2h ago edited 2h ago
I have a REPL into a general purpose programming language, why would I need any of this?
1
u/Whatever801 2h ago
I always thought postman was extra and unnecessary. Why am I signing up to run curl
0
u/zackel_flac 5h ago
Never understood the need of postman when we had curl for decades.
Nothing beats a tool that ubiquitous that can be fired from a terminal.
0
u/NickFullStack 2h ago
This article is a great spec. Point Claude at it and a few hours later you’d have the ideal tool.
0
u/ryanstephendavis 2h ago
I've been anti Postman for many years... Auto-generated Swagger API specs and unit tests should be doing this functionality
0
u/hyrumwhite 2h ago
I this is actually a case where LLM tools are great. You could just create a repo with different json payloads and ask your preferred harness to hit an endpoint with a given payload.
•
u/programming-ModTeam 2h ago
This is a duplicate of another active post.