- so many rendering modes - SSG, SSR, ISR, streaming SSR, PPR, client and server components.
- de facto Vercel lock in: edge runtime, middleware, image optimization, ISR, and lots more are massively complex to set up or less performant off Vercel.
- fragmented ecosystem between app and page router.
- so much boilerplate with the app router: layout.js, loading.js, error.js, page.js
Not everything here is bad - in fact some parts are excellent. There's just so much of it, so many ways of doing any single thing and already so much legacy code in a system that's only a few years old, and it's growing in complexity with every release.
Next.js feels like a tech demo that exists to demonstrate a bunch of highly optimised paths to frontend development. Yes, my page probably will load faster if I did so and so, but all the work required for it is not worth the 2ms saved.
I'm sure someone will chime in with "skill issue", and that's true to some extent, but you gotta admit it's an over-engineered "solution".
Next was so good at first with just the page router and ISR. That solved like 90% of common front-end headaches, especially compared to the hodgepodge of other React Frankensteins at the time.
Then they pivoted to the overengineered insanity that is RSC and the app router.
I have yet to see a project or developer use that to its potential. I don't know who they're targeting anymore, feels like some sort of mythical 100x developer who loves hyper optimizing every paragraph differently.
I work in support (for another company) now and several times a week I see Next users confused by all the different options. Their documentation isn't great at explaining all the differences either. They're moving way too fast and leaving all the developers behind and adding more and more black box magic optimized for Vercel hosting.
Enshittification as always, I suppose.
Maybe it's time to fork it into something simpler and stabler? I would be perfectly happy with Next from four or five years ago. Prev.js?
Git. Most people have no need for 95 percent of its features and don't have a good mental model of how it works. Just copy and paste commands to get it to work, more or less.
I have to disagree with this strongly. Git is probably the perfect software. It is designed around a mental model that is exactly matched to its use case. Far from copy pasting experienced developers are often fluent in the git model and use it intentionally. I took a look at the man page out of curiosity given your 95 percent comment and I would agree that the majority of ancillary and log level commands are unused. But looking only at the main porcelain commands I would say I regularly use 80 percent of them.
Git is the one software that I know less about the more I use it. 10+ years now, and every month I learn some new quirk. It very much has that "designed by engineers, for one particular super smart engineer, gl everyone else" vibe. I'm like a 0.5x dev at best and my brain doesn't have enough folds to fit its mental model.
On the other hand, I don't feel punished for not using the complex stuff. Still miss (some parts of) Darcs, though... it was so "user first" compared to this.
A lot of people have taken on git too, but at this point it’s so entrenched I’m not sure it’s going away anytime soon.
Maybe we’ll have more agentic SCM that auto solves merges and all that fun stuff in the future. But for now we are stuck with a pretty challenging piece of software
JIRA gets a lot of deserved hate but I think nearly all software work tracking systems suffer from the same issue: marketing over promises about velocity and predictions about project delivery timelines.
Have we as an industry gotten any better at delivering projects on time? If you have a lot of dysfunction in your organization no software is going to fix that. Or to put it another way, you can’t solve people problems with software.
We just stopped using story points when nobody could agree on them. I used emojis as story points once. A colleague asked wtf the :D meant vs :/ or :( or :').
I said I had no idea. I just put how I felt. Some things looked simple but gave me a bad feeling; the bad feeling was always mostly justified.
Every day I'd add up all the emojis for the day, which adds up to ~8 hours. After a week, we add them up again for ~40 hours. Eventually we got a pretty decent estimate that :) meant half an hour and the vomiting one would be at least 3 days.
Some emojis like the grimacing were an indicator that we needed to run a spike on this - it just wasn't groomed enough. Some are an indicator that we didn't trust the other person expected to handle this.
Everyone has different emojis just as they have different emotions about the same task. One person may like refactoring, another may be better at UI.
None are entirely accurate but such is the nature of software. Story points are misleading because they are precise but inaccurate.
It's used to justify jobs of scrum/pm people and I'm tired of being polite about it. Imagine we enter a tech company, decide it's LARPing time, and create DnD rules for a completely made up role and then pay someone to do it. That is literally what has been happening in the tech industry.
Maybe I am the odd one out, but I don’t hate JIRA. From my POV it works pretty well. I would agree Github Issues would be nicer though.
By the way in last few companies I worked at I’ve been using Azure DevOps and that feels over engineered to me. I think much stuff could be done with Github Actions instead.
At times I looked at AWS services, but also seems quite complex and I find the website navigation horrible - at least last time I tried.
It's not what you'd expect for a linux machine but it just works and has a reliable ecosystem with iOS. The worst is trying to understand how it stores information, but again if you're expecting control like in a linux machine, prepare to be disappointed.
I think MacOS is simply a terrible UNIX environment, period. The BSD bones are good, but the XNU kernel itself is a disaster and the way Apple handles user isolation, package management and runtime idempotency borders on outright neglect. Kernel extensions are depreciated and no DKMS equivalent exists, 32-bit support gets axed overnight and even simple drivers can't be ported from other UNIX-likes to MacOS. No wonder Linux is considered a more serious standard, all the UNIXes are trying to fucking murder each other instead of progressing the POSIX standard!
It really does not "just work", unless you're treating the Mac like an iPad. 20 years ago the Mac compiled software just as good as anything else, today it can't install Vulkan headers because third-party software scares Apple. Simply holding Apple to the standards of their contemporaries reveals that they're paranoid and do not trust their users.
That’s spanning decades. The current lineup is highly consistent: macOS, iPadOS (I don’t think Apple uses a space here), tvOS, watchOS, audioOS all use product categoryOS.
homeOS doesn’t exist yet for the public, does it?
The only outlier is iOS, which should have been called phoneOS or iPhoneOS.
I think you could copy/paste this excuse for the failings of every computer operating system since XP.
"Just enough" isn't going to cut it when the rest of the experience is subscription slopware, dark patterns and hidden advertisements. Microsoft doesn't get a free pass for it and neither does Apple - OSes weren't always like this!
JIRA might be like C++. It's OK if you just use a subset, and everyone uses the same one. If you use all of it, though, you get a mess.
The fundamental problem with JIRA is that it's trying to be usable for all the workflows in all companies in all the world. It's hard to do that simply.
And the problem with using it is that companies don't fix their workflow; they just try to port their existing workflow to JIRA. The result is that all the frustrations with the workflow turn into "frustrations with JIRA" (on top of the frustrations that are actually due to JIRA itself).
Everyone I know who uses Jira hates it. I don’t think there’s a lack of people ready to point out the things they hate about it.
I have one:
I hate that browsers (except Firefox) won’t let me copy a column of data from a table on a webpage. It’s 2025, most tables are going to be data these days, not layout.
- so many rendering modes - SSG, SSR, ISR, streaming SSR, PPR, client and server components.
- de facto Vercel lock in: edge runtime, middleware, image optimization, ISR, and lots more are massively complex to set up or less performant off Vercel.
- fragmented ecosystem between app and page router.
- so much boilerplate with the app router: layout.js, loading.js, error.js, page.js
Not everything here is bad - in fact some parts are excellent. There's just so much of it, so many ways of doing any single thing and already so much legacy code in a system that's only a few years old, and it's growing in complexity with every release.
I'm sure someone will chime in with "skill issue", and that's true to some extent, but you gotta admit it's an over-engineered "solution".
Then they pivoted to the overengineered insanity that is RSC and the app router.
I have yet to see a project or developer use that to its potential. I don't know who they're targeting anymore, feels like some sort of mythical 100x developer who loves hyper optimizing every paragraph differently.
I work in support (for another company) now and several times a week I see Next users confused by all the different options. Their documentation isn't great at explaining all the differences either. They're moving way too fast and leaving all the developers behind and adding more and more black box magic optimized for Vercel hosting.
Enshittification as always, I suppose.
Maybe it's time to fork it into something simpler and stabler? I would be perfectly happy with Next from four or five years ago. Prev.js?
I think if the interface were better, fewer people would be copy pasting git commands.
Maybe we’ll have more agentic SCM that auto solves merges and all that fun stuff in the future. But for now we are stuck with a pretty challenging piece of software
Have we as an industry gotten any better at delivering projects on time? If you have a lot of dysfunction in your organization no software is going to fix that. Or to put it another way, you can’t solve people problems with software.
I’ve never worked on a team where any nontrivial task could be done by any two people in roughly the same amount of time.
Experience, skill, subject area familiarity — everyone is different.
It is utter madness to estimate sprints before assigning the work!
I said I had no idea. I just put how I felt. Some things looked simple but gave me a bad feeling; the bad feeling was always mostly justified.
Every day I'd add up all the emojis for the day, which adds up to ~8 hours. After a week, we add them up again for ~40 hours. Eventually we got a pretty decent estimate that :) meant half an hour and the vomiting one would be at least 3 days.
Some emojis like the grimacing were an indicator that we needed to run a spike on this - it just wasn't groomed enough. Some are an indicator that we didn't trust the other person expected to handle this.
Everyone has different emojis just as they have different emotions about the same task. One person may like refactoring, another may be better at UI.
None are entirely accurate but such is the nature of software. Story points are misleading because they are precise but inaccurate.
The obsession with predictability in an unpredictable process is the real problem, especially in copilot and cursor era. :D
If people are arguing between 3 and 21 points there's a mismatch in understanding what the work entails.
By the way in last few companies I worked at I’ve been using Azure DevOps and that feels over engineered to me. I think much stuff could be done with Github Actions instead.
At times I looked at AWS services, but also seems quite complex and I find the website navigation horrible - at least last time I tried.
It really does not "just work", unless you're treating the Mac like an iPad. 20 years ago the Mac compiled software just as good as anything else, today it can't install Vulkan headers because third-party software scares Apple. Simply holding Apple to the standards of their contemporaries reveals that they're paranoid and do not trust their users.
In my house I have Apple branded hardware running:
Mac OS
Mac OS X Server
Mac OS X
OS X
macOS
iOS
iPad OS
tvOS
watchOS
homeOS
audioOS
And now I’ll have the strange honor of having two Macs, one running Mac OS X Server 1.23 and one running macOS 26.
homeOS doesn’t exist yet for the public, does it?
The only outlier is iOS, which should have been called phoneOS or iPhoneOS.
https://en.wikipedia.org/wiki/A/UX
https://en.wikipedia.org/wiki/Mach_(kernel)
Hey, you should pick up some carrier-grade Cisco routers and switches, and run IOS to tie 'em all together!
https://en.wikipedia.org/wiki/Cisco_IOS
It just feels so far from Steve Jobs 2x2 grid of products.
It's shit but it's just enough to get the job done/get out of your way, As long as you play by its rules
"Just enough" isn't going to cut it when the rest of the experience is subscription slopware, dark patterns and hidden advertisements. Microsoft doesn't get a free pass for it and neither does Apple - OSes weren't always like this!
The fundamental problem with JIRA is that it's trying to be usable for all the workflows in all companies in all the world. It's hard to do that simply.
And the problem with using it is that companies don't fix their workflow; they just try to port their existing workflow to JIRA. The result is that all the frustrations with the workflow turn into "frustrations with JIRA" (on top of the frustrations that are actually due to JIRA itself).
I have one:
I hate that browsers (except Firefox) won’t let me copy a column of data from a table on a webpage. It’s 2025, most tables are going to be data these days, not layout.