Before they went off the deep end with SSR/Server Components and the App Router it was actually somewhat decent, but now it's unbearable to use. I still can't believe the React core team is recommending it as their preferred framework.
I found it absolutely hilarious that one of the react core maintainer's Dan Abramov admitted to not really making anything with react while working at FB. It completely explains that ecosystem so well, a bunch of people that are far removed from workers deciding how to make the most convoluted library while stating any competing tool as inferior since it didn't come from a company that profits off of teenage misery.
I thought you said fictional components at first but it made sense because I was read some of the docs yesterday and it was recommending in many places to use a hook useEventEffect and when I decided to look up the hook it doesn’t exist yet, it’s still not in stable lol like they’ve gone the opposite way now, documenting stuff you can even use yet.
There's also the whole gaslighting affair of telling the community they are using hooks wrong when they literally gave dozens of talks stating to use the hooks this exact way.
Gaslighting is one of those skills that only devs at Meta seem to master.
This generation of tech influencers are all a bunch of wankers.
It's terrible but it makes sense when you look at the careers of the people that designed in (those that do little frontend work).
It's why things like alpine, htmx are so refreshing. Turns out frontend development can be vastly simpler, easier to maintain, and quicker to develop if you remove the unnecessary complexity for basic CRUD apps.
React pays my bills but I'd never advocate to use it in 90% of projects.
Well, SPA react is bad, but making widget-like react is good, just need to handle some ssr and it's fine. Pretty good if you need to handle states.
Previously with class components, contexes and pure functional component with HOC, is IMO where react is at the best. Sure some state manager like redux (personally I use mobx) is needed, but it has better abstraction than hooks.
I should have learned when they were dragging their heels on web components. Angular was pretty happy to integrate it. SPA frameworks need to move on and adapt web standards.
App router makes much more sense to me than page router with the arcane _document.tsx invocations. As for server components, I'm building an app with them currently. It is calling a ton of APIs, and will be used mainly on a high-latency connection. Server components are great fit there, I can do most of my work on server side, then seamlessly "promote" parts of the app to the interactive client-only level as needed, without changing how I write them.
Yes, the whole thing is not perfectly intuitive, and I often get frustrated with one limitation or another. But that's nothing new, I've been wrangling less-than-ideal things into working shape for most of my career. In the end, NextJS maps pretty well to the kind of application I'm working on currently. I'd struggle much more building with the other stacks I've tried.
Look, it's quite possible that the user didn't see it since it only got 300 points several days ago. The user is an occasional and consistent poster. One of the most legit accounts I have seen on reddit.
I mean, that's my experience every time I try to look into webdev. None of this makes sense
I can write system C code, assembly in a dozen dialects, reverse engineered obscure crap... No problems. But webdev? That's wonderland-levels of nonsense
I also tried nextjs for a side project and found it to be the worst web framework I ever tried. The only interesting part, and the reason it became popular, is the ability to mix server side and client side code.
Everything else about the framework (file structure, dev setup, middleware, routes handling, etc) is so bad though
I've done a lot of angular dev. It feels so bloated and clunky, and the ecosystem is kinda garbage. Change detection straight up sucks - you're better off disabling it and using manual CD - and the more RxJs you introduce the more you're forced to use, and the faster it becomes a quagmire. Some stuff that Angular does easily - like dependency injection - can be weird to work around in React, but really you don't need Angular's DI for the vast majority of use cases. It still gets adopted tho, and now you have more bloat.
Oh, what are we doing here. It's like r/webdev of 8 years ago. I was just answering what I prefer. You don't have to downvote brigade every mention of a framework you don't like.
I'm a stronger believer that the vast majority of software projects is better suited by a server side framework such as Ruby on Rails, Laravel or Django.
They provide you all the base tools required for web development, in a well organized project, while still providing you with enough flexibility to arrange the code to your needs.
You can use their templating engine for most of the static sections of the webpage and tap into the J's framework of your choice for the most dynamic components.
I've never used Django before, but tried it over the weekend and was able to create a fully functional proof of concept site. I decided to convert to NextJs to take advantage of free cloudflare edge hosting and have been working on it for the past two weeks. I'll admit I don't have any React or NextJs experience, but it is very unintuitive and the documentation doesn't help that much. And when you do find helpful tutorials, they are already out of date with deprecated methods...
Rails has a some good benefits like a phenomenal orm and good cli but the lack of async support, mediocre grpc implementation and terrible experience with low latency ws makes me favor node based frameworks.
I think that for a lot of dynamic components something like htmx would suffice. Htmx and similar projects like Unpoly work very well with server side rendering.
For an SPA app, just mix a router of your choice with React-query, and if need be some state management like Zustand. You don't really need a framework for a React ecosystem.
If you are looking for an SPA framework, Angular has made leaps in terms of the developer experience!
Not sure what difference RR7 would make for SEO. I would use RR for complex projects with a lot of routes and data fetching like dashboards and the like but for most other fairly simple projects like blogs, websites etc you could very easily just use Astro. It has server side rendering also
Yeah... that's the point. The only thing next adds on top of react, or nuxt adds on top of Vue is server side rendering.
That's how people used PHP as well, to render the initial pageload. The point is mixing server side logic into your templating will result in a convoluted mess 99% of the time, we tried that and there is a reason the only time you see PHP nowadays is as a Laravel rest API.
By the way, try to zoom out a bit more, invalidating comparisons is a conversational dead end.
The point of next and similar frameworks is to provide both interaction on the client and server side rendering In a single unified codebase with shared language and utilities.
PHP only does the server rendering, so I struggle to understand the point of the previous comparison.
To me it is equivalent of comparing it to svelte or Vue, it is kinda pointless imho
I started using it when it first came out. That time it was simple, clear and to the point.
Over the years a lot of “features” has been added to next which makes it very hard to follow, also the docs have become too confusing to follow.
I tried, I mean I really tried to learn next in a capacity where I could use it at work and present it as the next big thing where frontend only devs could leverage both ends if something's burning but my god was it such a waste of time. Everything just feels like a black box and debugging is atrocious and customizing the black box felt even worse. Tried nuxt as the competition and it just worked? I'm unsure if it was because of how the documentation was written but it just worked. Debugging, built in, black box things customizable but restricting, however the learning curve was just so easy
Spoiler: This is not to denigrate your points, which I agree with.
The funny thing is that while reading a long piece of content, i highlight the piece of text i'm currently reading, in order to better focus on it.
And, with your blog, I can see you have a custom code/plugin which triggers social sharing.
Well, long story short this is not only annoying (for me) but you also managed to completely freeze my browser on a mac m1 (not just the tab, the entire browser, which never happened before)
Holy shit. I haven’t used next in 3 years, but my last thing at my previous job was trying to get useful fucking logs out of the stupid thing with Pino. Dealt with middleware, custom server, all that shit that he blogs about. I see it’s still a problem.
I run a very real next.js app in production. I was early adopter of next as well. I have to say that I regret betting on next.js and wish that I would have gone with something like laravel or rails.
I’ve from the greener pasture. Laravel is joy to develop with, but is a mess to host. And it is soooo horribly slow.
Rails is still solid, though. That community is silently shipping and thriving. Still.
But I would be remiss to not talk up Vue/Vite, with a Supabase backend. It can scale to the moon and back. I have a few projects that can be served entirely from a CDN. Highly recommend.
It really is. Prime way to deploy it is through Vercel.
What's funny is that this is a good way to fund open source: host the service for the users, reinvest the funds back into development (accept contributions, pay bounties). It's just that this particular tech, unfortunately, sucks.
Tried to build a side project with it twice and it did not help one bit. It would have been faster to simply use React with any web framework (Django, Rails). There's very little advantage offered for the trade-off in training time and maintenance.
Easy to deploy the nextjs frontend without vercel? I am a backend dev w some fullstack experience. Starting a personal project to have this exact setup with next frontend and best backend. Trying to draw on what i learned on the fullstack team best i could, lol
Next isn't too hard to deploy to non-Vercel hosts. I've used Next + Nest for a couple of projects and it's ok, but in future I'm going to skip Next entirely. It just has too many warts.
I write a lot of random one-off node projects. I tried nextjs, and have used it in one project and that's it. SSR is neat but I feel like you're better off served just doing it with something else (or better yet, for personal projects, not caring about SSR and just doing things normally)
The fact that next.js authentication was 1 header modification away from giving you full admin access on websites tells you everything you need to know about the majority of modern web technologies.
PositivelyAwful@reddit
Before they went off the deep end with SSR/Server Components and the App Router it was actually somewhat decent, but now it's unbearable to use. I still can't believe the React core team is recommending it as their preferred framework.
UnidentifiedBlobject@reddit
React has also gone off the deep end. It can be infuriatingly complex or cumbersome to make any large app properly performant.
teslas_love_pigeon@reddit
I found it absolutely hilarious that one of the react core maintainer's Dan Abramov admitted to not really making anything with react while working at FB. It completely explains that ecosystem so well, a bunch of people that are far removed from workers deciding how to make the most convoluted library while stating any competing tool as inferior since it didn't come from a company that profits off of teenage misery.
PositivelyAwful@reddit
No surprise there. It took them what, five years to finally update the docs to reference functional components instead of class?
UnidentifiedBlobject@reddit
I thought you said fictional components at first but it made sense because I was read some of the docs yesterday and it was recommending in many places to use a hook useEventEffect and when I decided to look up the hook it doesn’t exist yet, it’s still not in stable lol like they’ve gone the opposite way now, documenting stuff you can even use yet.
teslas_love_pigeon@reddit
There's also the whole gaslighting affair of telling the community they are using hooks wrong when they literally gave dozens of talks stating to use the hooks this exact way.
Gaslighting is one of those skills that only devs at Meta seem to master.
This generation of tech influencers are all a bunch of wankers.
leixiaotie@reddit
react hooks are one of the leakiest abstraction I've ever seen
teslas_love_pigeon@reddit
It's terrible but it makes sense when you look at the careers of the people that designed in (those that do little frontend work).
It's why things like alpine, htmx are so refreshing. Turns out frontend development can be vastly simpler, easier to maintain, and quicker to develop if you remove the unnecessary complexity for basic CRUD apps.
React pays my bills but I'd never advocate to use it in 90% of projects.
leixiaotie@reddit
Well, SPA react is bad, but making widget-like react is good, just need to handle some ssr and it's fine. Pretty good if you need to handle states.
Previously with class components, contexes and pure functional component with HOC, is IMO where react is at the best. Sure some state manager like redux (personally I use mobx) is needed, but it has better abstraction than hooks.
iamapizza@reddit
I should have learned when they were dragging their heels on web components. Angular was pretty happy to integrate it. SPA frameworks need to move on and adapt web standards.
slvrsmth@reddit
Curious, what don't you like with it?
App router makes much more sense to me than page router with the arcane _document.tsx invocations. As for server components, I'm building an app with them currently. It is calling a ton of APIs, and will be used mainly on a high-latency connection. Server components are great fit there, I can do most of my work on server side, then seamlessly "promote" parts of the app to the interactive client-only level as needed, without changing how I write them.
Yes, the whole thing is not perfectly intuitive, and I often get frustrated with one limitation or another. But that's nothing new, I've been wrangling less-than-ideal things into working shape for most of my career. In the end, NextJS maps pretty well to the kind of application I'm working on currently. I'd struggle much more building with the other stacks I've tried.
FullPoet@reddit
Would the spammers, karma farmers and AI bots please at least wait a week before reposting?
https://old.reddit.com/r/programming/comments/1n4rpq7/nextjs_is_infuriating/
NewFuturist@reddit
Look, it's quite possible that the user didn't see it since it only got 300 points several days ago. The user is an occasional and consistent poster. One of the most legit accounts I have seen on reddit.
DocMcCoy@reddit
I mean, that's my experience every time I try to look into webdev. None of this makes sense
I can write system C code, assembly in a dozen dialects, reverse engineered obscure crap... No problems. But webdev? That's wonderland-levels of nonsense
Giannis4president@reddit
I also tried nextjs for a side project and found it to be the worst web framework I ever tried. The only interesting part, and the reason it became popular, is the ability to mix server side and client side code.
Everything else about the framework (file structure, dev setup, middleware, routes handling, etc) is so bad though
buttertoastey@reddit
What do you prefer?
Super-Tumbleweed-460@reddit
Angular and a real backend.
bi-bingbongbongbing@reddit
I've done a lot of angular dev. It feels so bloated and clunky, and the ecosystem is kinda garbage. Change detection straight up sucks - you're better off disabling it and using manual CD - and the more RxJs you introduce the more you're forced to use, and the faster it becomes a quagmire. Some stuff that Angular does easily - like dependency injection - can be weird to work around in React, but really you don't need Angular's DI for the vast majority of use cases. It still gets adopted tho, and now you have more bloat.
Super-Tumbleweed-460@reddit
Oh, what are we doing here. It's like r/webdev of 8 years ago. I was just answering what I prefer. You don't have to downvote brigade every mention of a framework you don't like.
bi-bingbongbongbing@reddit
Lmao I was offering my opinion since - ya know - this is a forum where people offer their opinions.
OutOfDiskSpace44@reddit
The React side is no better, Redux and MobX and all the state management libraries...RxJs is at least a nice idea, DI is at least useful for testing.
Though I agree, I wouldn't want to work a day job in Angular, React is enough.
Giannis4president@reddit
I'm a stronger believer that the vast majority of software projects is better suited by a server side framework such as Ruby on Rails, Laravel or Django.
They provide you all the base tools required for web development, in a well organized project, while still providing you with enough flexibility to arrange the code to your needs.
You can use their templating engine for most of the static sections of the webpage and tap into the J's framework of your choice for the most dynamic components.
TheCritFisher@reddit
I love Django with just basic ass React. Tanstack router and my shit is smooth and simple.
slappy_squirrell@reddit
I've never used Django before, but tried it over the weekend and was able to create a fully functional proof of concept site. I decided to convert to NextJs to take advantage of free cloudflare edge hosting and have been working on it for the past two weeks. I'll admit I don't have any React or NextJs experience, but it is very unintuitive and the documentation doesn't help that much. And when you do find helpful tutorials, they are already out of date with deprecated methods...
feindjesus@reddit
Rails has a some good benefits like a phenomenal orm and good cli but the lack of async support, mediocre grpc implementation and terrible experience with low latency ws makes me favor node based frameworks.
Brainvillage@reddit
Ey, let's not sleep on .NET 8+. It's probably the most elegant and easy to use of them all.
Asyncrosaurus@reddit
Razor Pages with htmx is *chefs kiss*
Giannis4president@reddit
I personally have not tried it but yeah, it is very liked so it should be in the list
-Knul-@reddit
I think that for a lot of dynamic components something like htmx would suffice. Htmx and similar projects like Unpoly work very well with server side rendering.
puketron@reddit
we must retvrn
Tackgnol@reddit
My recommendations are:
Remix / React Router7 for that easy SEO.
Use Astro if your site has more static content.
For an SPA app, just mix a router of your choice with React-query, and if need be some state management like Zustand. You don't really need a framework for a React ecosystem.
If you are looking for an SPA framework, Angular has made leaps in terms of the developer experience!
aniforprez@reddit
Not sure what difference RR7 would make for SEO. I would use RR for complex projects with a lot of routes and data fetching like dashboards and the like but for most other fairly simple projects like blogs, websites etc you could very easily just use Astro. It has server side rendering also
Icy_Physics51@reddit
I just use Astro for everything. You can do SPA and SSR in it too.
WitchHunterNL@reddit
We had "mixing server side and client side code". It was called php, and it's known for the unmaintainable messes it caused
Giannis4president@reddit
If you think this is a legitimate comparison you don't know what you are talking about lol.
What PHP does is the current definition of server side rendering
WitchHunterNL@reddit
Yeah... that's the point. The only thing next adds on top of react, or nuxt adds on top of Vue is server side rendering.
That's how people used PHP as well, to render the initial pageload. The point is mixing server side logic into your templating will result in a convoluted mess 99% of the time, we tried that and there is a reason the only time you see PHP nowadays is as a Laravel rest API.
By the way, try to zoom out a bit more, invalidating comparisons is a conversational dead end.
Giannis4president@reddit
The point of next and similar frameworks is to provide both interaction on the client and server side rendering In a single unified codebase with shared language and utilities.
PHP only does the server rendering, so I struggle to understand the point of the previous comparison.
To me it is equivalent of comparing it to svelte or Vue, it is kinda pointless imho
theshubhagrwl@reddit
I started using it when it first came out. That time it was simple, clear and to the point. Over the years a lot of “features” has been added to next which makes it very hard to follow, also the docs have become too confusing to follow.
Kyan1te@reddit
Nest.js with something similar to Laravel's inertia or Livewire etc would be the solution the TypeScript ecosystem truly needs (& deserves) imo
hugot4eboss@reddit
I tried, I mean I really tried to learn next in a capacity where I could use it at work and present it as the next big thing where frontend only devs could leverage both ends if something's burning but my god was it such a waste of time. Everything just feels like a black box and debugging is atrocious and customizing the black box felt even worse. Tried nuxt as the competition and it just worked? I'm unsure if it was because of how the documentation was written but it just worked. Debugging, built in, black box things customizable but restricting, however the learning curve was just so easy
thewritingwallah@reddit
Next.js is primarily made for Vercel and requires a ton of investment to make it work outside.
gabriel_dny@reddit
Spoiler: This is not to denigrate your points, which I agree with.
The funny thing is that while reading a long piece of content, i highlight the piece of text i'm currently reading, in order to better focus on it.
And, with your blog, I can see you have a custom code/plugin which triggers social sharing.
Well, long story short this is not only annoying (for me) but you also managed to completely freeze my browser on a mac m1 (not just the tab, the entire browser, which never happened before)
I'll attach a video of the bug I experienced:
https://drive.google.com/file/d/1FjQGzaewxVVcyfxUxOHQatMsfaOm62WH/view?usp=sharing
Take it as a sign that software development is hard in general :)
alfcalderone@reddit
Holy shit. I haven’t used next in 3 years, but my last thing at my previous job was trying to get useful fucking logs out of the stupid thing with Pino. Dealt with middleware, custom server, all that shit that he blogs about. I see it’s still a problem.
zergotron9000@reddit
I run a very real next.js app in production. I was early adopter of next as well. I have to say that I regret betting on next.js and wish that I would have gone with something like laravel or rails.
who_am_i_to_say_so@reddit
I’ve from the greener pasture. Laravel is joy to develop with, but is a mess to host. And it is soooo horribly slow.
Rails is still solid, though. That community is silently shipping and thriving. Still.
But I would be remiss to not talk up Vue/Vite, with a Supabase backend. It can scale to the moon and back. I have a few projects that can be served entirely from a CDN. Highly recommend.
TheCritFisher@reddit
God I hate rails. But it pays my bills. My projects are all Django though. Less magic. Same speed and ease of use.
Maybe-monad@reddit
Next.js is Vercel propaganda
OutOfDiskSpace44@reddit
It really is. Prime way to deploy it is through Vercel.
What's funny is that this is a good way to fund open source: host the service for the users, reinvest the funds back into development (accept contributions, pay bounties). It's just that this particular tech, unfortunately, sucks.
OutOfDiskSpace44@reddit
Tried to build a side project with it twice and it did not help one bit. It would have been faster to simply use React with any web framework (Django, Rails). There's very little advantage offered for the trade-off in training time and maintenance.
Just like this comment says: https://www.reddit.com/r/programming/comments/1n6f10x/comment/nc0bl6g/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button
QuantityInfinite8820@reddit
Yeah, your first mistake is using nextjs for backend which sucks. I connect nextjs with nestjs backend in each of my project that works much better
FuzzyZocks@reddit
Easy to deploy the nextjs frontend without vercel? I am a backend dev w some fullstack experience. Starting a personal project to have this exact setup with next frontend and best backend. Trying to draw on what i learned on the fullstack team best i could, lol
polaroid_kidd@reddit
Just go with a stock react app bootstraped with react router (if you need), react query and ky (instead of axios).
Or a svelte app. No side project of mine is react based anymore.
kani_kani_katoa@reddit
Next isn't too hard to deploy to non-Vercel hosts. I've used Next + Nest for a couple of projects and it's ok, but in future I'm going to skip Next entirely. It just has too many warts.
Xenofonuz@reddit
I'm sure there are many ways but I just publish a Docker image of my nextjs app and deploy that. Easy
UnidentifiedBlobject@reddit
Ehh it was great for a bit but app router is just shit.
AndrewNeo@reddit
I write a lot of random one-off node projects. I tried nextjs, and have used it in one project and that's it. SSR is neat but I feel like you're better off served just doing it with something else (or better yet, for personal projects, not caring about SSR and just doing things normally)
zlex@reddit
Glad I skipped the hype train on this
who_am_i_to_say_so@reddit
Same. When learned of it, I was like: Neeeext!
freecodeio@reddit
almost everything has been a hype train regarding web development since ~2010
Inevitable-Plan-7604@reddit
It's just atrocious isn't it. So slow too
Kissaki0@reddit
That's a crazy text selection popover menu.
Loaatao@reddit
I’m convinced that next JS was invented by the capitalist to sell us infrastructure that we don’t really need
freecodeio@reddit
The fact that next.js authentication was 1 header modification away from giving you full admin access on websites tells you everything you need to know about the majority of modern web technologies.
thetruetristan@reddit
Yes.