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

I've wondered about this for years.

Express was the default with Node for some years but it was mostly used for APIs to feed front ends. These days lots of people have switched to Fastify but again mostly for APIs.

There's really nothing fullstack in the JS world that can be compared to Rails, Laravel, or Django.

Current fullstack solutions (Next, Nuxt, SvelteKit, etc) in JS are trying to kludge front end components into the server which IMO is a mistake. And I say this as someone who has been doing mostly front end since the 90s.



> There's really nothing fullstack in the JS world that can be compared to Rails, Laravel, or Django.

I would like to introduce you to Adonis. https://adonisjs.com


It's cool. Another similar option is Platformatic by the creator of Fastify.

https://platformatic.dev/

But still... There are no queues or jobs. No HTML over the wire. No colocation of presentation logic. Etc.


All of that stuff can be easily added using 3rd party packages, just like Laravel, Rails, Django, etc all have userland addons. https://packages.adonisjs.com


I didn't know about these packages. But still, nothing really that improves rendering.

https://packages.adonisjs.com/?category=Rendering

And the fact that these aren't official is kind of the point I've been making. In the JS world there isn't a holistic fullstack framework. You have to stitch it all up yourself. In Adonis, Express, Fastify, Next, SvelteKit, etc.


> But still, nothing really that improves rendering.

Because most people are content with using Adonis' Edge templating with something like Alpine for sprinkling in interactivity, or using Vue.

> In the JS world there isn't a holistic fullstack framework.

This is true for all monolithic frameworks in every other language. Even Rails you have to use 3rd party addons for stuff. It's not feasible to build everything in for every possible use case, so they make it easy to add on stuff.

I think now you're just starting to move the goalposts.


> Because most people are content with using Adonis' Edge templating with something like Alpine for sprinkling in interactivity, or using Vue.

I'm not talking about adding client-side interactivity though. Read my comments again.

> I think now you're just starting to move the goalposts.

I think you're not really reading my comments.

Obviously no solution will solve everything 100%. That's not even an argument.


> to kludge front end components into the server which IMO is

I think you make a good point here, JS is uniquely able to be executed both frontend and backend, hence things such as underscore templates.

Other languages don't have that ability. Therefore I would agree that there is no point in making a 1to1 copy of existing MVC ideas.

Being an ex-rubyist and now doing a lot of NodeJS, I really enjoy moving server code to the client at zero mental cost since it's mostly the same APIs


Sharing code is cool but OTOH the back and front end are two completely different beasts.

Trying to use client patterns to solve the server has been mostly a mistake. OTOH separating server and client and using an API to glue has produced a lot of issues too (SPAs, etc).

I think the future is a hybrid model where 80-90% of the front end is orchestrated from the server (LiveWire, Hotwire, LiveViews, etc) and 10-20% is a pure client side solution.


I totally agree (also originally a Rails dev). And with Typescript and Remix I get type safety and auto complete from the database layer (Prisma) all the way to the React UI. It’s amazing.


>Current fullstack solutions (Next, Nuxt, SvelteKit, etc) in JS are trying to kludge front end components into the server which IMO is a mistake.

why?




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

Search: