Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Why would you use something other than a JS framework to build a web app back-end? You don't have to deal with OpenAPI or GraphQL, you can just use server actions.


"server actions" seems to be a NextJS thing, not a JS thing? JS does not mean React and NextJS. The communication between frontend and backend is (almost) always HTTP, regardless of the languages and frameworks (server actions are http). Having a wrapper around HTTP isn't really a compelling reason to choose a technology for the very large majority of people: probably the opposite actually.

IDK what you mean by "deal with OpenAPI", OpenAPI is a spec not a technology like graphql.

In all honesty (and sorry for the directness), you don't really seem to understand these concepts and how relevant or not they are to this conversation


> server actions" seems to be a NextJS thing, not a JS thing?

It's a JS framework thing. Every mainstream JS framework has server actions or equivalent.

> Having a wrapper around HTTP isn't really a compelling reason to choose a technology for the very large majority of people: probably the opposite actually.

It is way more convenient to write a server action and be able to immediately use it in a client component than having to write an HTTP endpoint in a separate back-end project, and then regenerate your client via OpenAPI, or whatever else you use.

> IDK what you mean by "deal with OpenAPI"

I mean dealing with tooling to generate an HTTP client from OpenAPI schema.

> In all honesty (and sorry for the directness), you don't really seem to understand these concepts and how relevant or not they are to this conversation

Wrong


> Every mainstream JS framework has server actions or equivalent

No. "Server actions" are a React concept, it has little to do with backend technology (the backend still speaks HTTP). This concept is completely irrelevant to most big frameworks like Express, NestJS, Koa, Hapi. Next is barely a "backend" framework: it's rather a React server framework that has a few basic backend functionalities.


Okay, every full-stack JS framework.


Raising my hand with the opinion that you're wrong. Making it confusing as to whether code is executing on server or client is imho an antipattern.


I’m wrong in what? Even if you’re confused whether server actions run on the server or on the client, it doesn’t take away benefits I listed before.


Better/scalable performance, actual runtime type checking without wrapping everything with third-party libraries and paying the associated overhead, talent pool in my area, better (or even existing) libraries for the task at hand, better observability instrumentation, personal preference... is this really an honest question?


> is this really an honest question?

Yes, there is nothing that works better than server actions. None of what you listed really makes sense to me. I have never had any runtime performance problems with TypeScript and wasn't JavaScript the most popular programming language in the world (the talent pool argument)?.


Because there are other options available that might be better? Personally I'd chose Clojure for anything I have a choice with. Cargo culting a language like that does no one any favors.


> Personally I'd chose Clojure for anything I have a choice with.

And then you would have to solve the problem of how to communicate with the client.


I dunno, HTTP works pretty well for me as a transport layer to communicate with clients. Otherwise Websockets. Not sure why you'd think that be a difficult thing?


> Not sure why you'd think that be a difficult thing?

You aren't suggesting to handwrite an HTTP API client, right? You would have to set up either OpenAPI which is a mess, or GraphQL which is also a mess. LMK if you have a better solution.


What exactly is the problem you're encountering when trying to interact with HTTP APIs? If you really want to use OpenAPI for whatever reason, there are plenty of ways of doing that even in Clojure/Java, so I'm sure it's possible in other languages as well. But it's not like using OpenAPI or GraphQL are the only two options, if you're of that opinion I'm afraid you've drank way too much of the koolaid.


> What exactly is the problem you're encountering when trying to interact with HTTP APIs?

The problem is that, unlike when using server actions, when using HTTP APIs, there is nothing that automatically generates bindings.

> If you really want to use OpenAPI for whatever reason

No, I don't. But people use OpenAPI to avoid having to handwrite an HTTP client. This is especially relevant if you are developing a public API.

> But it's not like using OpenAPI or GraphQL are the only two options

What are other options?


> when using HTTP APIs, there is nothing that automatically generates bindings.

Is that really the biggest problem you face when programming? How many endpoints do you have? Even with projects with ~30 endpoints, it doesn't seem problematic to me, but maybe people regularly work on projects with 100s of endpoints, then it kind of makes sense. But I'm not sure that's typical enough.

> No, I don't. But people use OpenAPI to avoid having to handwrite an HTTP client. This is especially relevant if you are developing a public API.

People do a lot of stuff for a lot of nonsense reasons, doesn't mean that's the best way to approach things. The JS/TS ecosystem seems extra easy to fall into cargo culting too.


"handwriting" an HTTP client is too much work for a developer? you need to import a library that does it for you? wow. abstraction at any cost, eh?


Yes, you have to waste time handwriting it and making sure that you actually wrote a proper binding. Then you also probably need to deal with API versioning. All of this goes away with server actions.


nextjs or bust? This is a wild take


Yep, Next.js has the best support for vibe coding.


> vibe coding

"Vibe coding" as a concept is a fun joke, not a workflow you employ for doing serious engineering. It was a tiny experiment that somehow people thought was a suggested way of developing software, which obviously it isn't. Read the code yourself, otherwise it'll be really hard to call yourself any sort of engineer.


> "Vibe coding" as a concept is a fun joke, not a workflow you employ for doing serious engineering.

Well I guess making Next.js apps isn't really "serious engineering"

> Read the code yourself, otherwise it'll be really hard to call yourself any sort of engineer.

I do read the code but I barely write any code by hand.


> Well I guess making Next.js apps isn't really "serious engineering"

Where did I say that?

> I do read the code but I barely write any code by hand.

Right, so you use the words "vibe coding" yet you don't actually understand the concept? A lot of things make sense now. The description "vibe coding" is explicitly about "programming" with a LLM without reading or writing any code at all, for any purpose. If you read the code, you're not really vibe coding as originally described by Karpathy.


> Where did I say that?

You replied to a comment that says "Yep, Next.js has the best support for vibe coding."

> Right, so you use the words "vibe coding" yet you don't actually understand the concept? A lot of things make sense now.

You can stop arguing that if one glances at the code one is no longer vibe coding, because in practice by looking at the code or even the LLM's thoughts you can catch things you don't want early.


You don't need to deal with those anyway. RPC it. fetch one one end, route on other.


> RPC it. fetch one one end, route on other.

What do you mean by this?


JS fetch function in three browser.

Add a route on the back end.

RPC means just call it! don't worry about REST, GQL etc.


Wow…




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: