Is a Project Built With `Next.js` Maintainable...? 💭
- Dominant language
- TypeScript
- Stars
- 14
- Forks
- 4
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 2
Description
At the time of writing, this is the `Next.js` page on `GitHub`: https://github.com/vercel/next.js
Some of these stats are a _positive_ sign including Stars (123k), Used By (3.1M) and Contributors (3,3k).
> **Note**: I always find it _interesting_ when a project has more _users_ than stars ...
I've always thought of "stars" as a way of showing _support_ for a project while keeping a bookmark of it.
So there are 30x more people _using_ the code than there are people who bothered to star it on `GitHub` ... 🤦♂️
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_ in `JS` and they probably haven't had time to port everything over to `TS` 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` and `TS`. 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: https://github.com/vercel/next.js/pull/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`** and **`2600+ releases`** for a project started in [**`October 2016`**](https://github.com/vercel/next.js/commit/04578072ec60eb9e5c5e1b6787ed695a16e4529e) (8 years ago); [2847 days](https://www.timeanddate.com/date/durationresult.html?d1=6&m1=10&y1=2016&d2=23&m2=7&y2=2024). ⏳
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_ have **`7 dependencies`**:
https://www.npmjs.com/package/next?activeTab=dependencies
https://npmgraph.js.org/?q=next
But the `devDependencies` are **`200`** which is what are _actually_ used to develop/deploy a `Next.js` app;
You cannot _build_ a `React` Framework App without `React`!!
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 updates
and 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 https://github.com/dwyl/nextra-demo/issues/5#issuecomment-2244984382 `Next.js` and `Nextra` are _slooooow_ for larger projects ...
Build time **`20 seconds`** for a medium sized project ... 🐌 😱 `#painful`
Morethan **10 _thousand_** modules compiled. 🤷♂️
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.