-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Is a Project Built With Next.js
Maintainable...? 💭
#12
Comments
For comparison, the dependency graph (including dev) for equivalent setups using alternative technologies:
Next.js has more dependencies, but offers more features. It overall looks pretty similar (all very large). |
@ianldgs Yeah, I'm not comparing I'm comparing to projects written in Nothing in But back to the topic of maintainability ... 💭
|
I feel like this will be taken out of context so let me clarify for the avoidance of doubt. We've seen it when that one person leaves the team and then nobody wants to maintain the project. |
Not good ... https://github.com/advisories/GHSA-gp8f-8m3g-qvj9/dependabot Still no fix/PR from @dependabot ... ⏳ |
Two CVEs the whole time we've been using Both were fixed fast and no known cases of them being exploited. |
At the time of writing, this is the
Next.js
page onGitHub
: https://github.com/vercel/next.jsSome of these stats are a positive sign including Stars (123k), Used By (3.1M) and Contributors (3,3k).
But the other stats are not as good
667 branches
https://github.com/vercel/next.js/branches who can possibly know what they all contain?!Every one of the active branches failing CI. Most of the CI checks pass ...
but 90+ checks tells me this project has grown out-of-hand trying to be all things to all stakeholders ...
That's a lot of actions ... https://github.com/vercel/next.js/actions
Obviously to someone who has been working on the project for a
while
this might all seem familiar.But to anyone looking at this for the first time it's a bit of a head-scratcher. 🙃
https://github.com/vercel/next.js/pulls?page=21&q=is%3Apr+is%3Aopen
Languages 💭
Still
69.5% JavaScript
. This reflects the fact that the project was started inJS
and they probably haven't had time to port everything over toTS
yet ... But there doesn't appear to be any ongoing effort to tidy this.And the docs are still littered with examples in both
JS
andTS
. Pick a lane.What is the
3.9% Rust
? 🦀When we tried looking for rust-related files the
GitHub
search failed:https://github.com/search?q=repo%3Avercel%2Fnext.js++language%3ARust&type=code
Perhaps one to return to later ... are they rebuilding in
Rust
...? 🤷♂️ref: vercel/next.js#67780
A quick glance at the issues searching for the "rust" keyword:
https://github.com/vercel/next.js/issues?q=is%3Aissue+is%3Aopen+rust
I feel like diving into this rabbit hole further is just going to consume time I don't have right now ... 🐇 🕳️ ⏳
Crucially for someone considering adopting the stack for project, we have to ask:
How Much Effort Does it Take to Maintain a Project Built With
Next.js
?If there are
2744 tags
and2600+ releases
for a project started inOctober 2016
(8 years ago); 2847 days. ⏳2600 releases / 2847 days = 0.91 updates per day.
That's almost one update per day for 8 years and crucially a lot of breaking changes to get to
v14.2.5
.Next.js
appears to only have7 dependencies
:https://www.npmjs.com/package/next?activeTab=dependencies
https://npmgraph.js.org/?q=next
But the
devDependencies
are200
which is what are actually used to develop/deploy aNext.js
app;You cannot build a
React
Framework App withoutReact
!!Including the
devDependencies
in the graph/tree it becomes illegible!https://npmgraph.js.org/?q=next#deps=devDependencies&sizing=&zoom=h
if each one of these
devDependencies
has just 2 updates per year you will be flooded with dependency updatesand forced to maintain your app at least once a day!! 😕
With a security hat on this number of
devDependencies
gives me nightmares!!You are relying on so many people not to be malicious.
If you build an App and have to step away from it for a few months, there's a good chance when you
return
to it,there will be a breaking change that will cause you a substantial waste of time.
# Bottom Line: Great to Get Started; Nightmare to Maintain.
If you don't do anything too advanced, you might be able to get away with it.
But from experience of seeing larger projects with multiple sub-projects I wouldn't want to inherit a
Next.js
project.As noted in dwyl/nextra-demo#5 (comment)
Next.js
andNextra
are slooooow for larger projects ...Build time
20 seconds
for a medium sized project ... 🐌 😱#painful
Morethan 10 thousand modules compiled. 🤷♂️
The text was updated successfully, but these errors were encountered: