-
-
Save ronsims2/c50c0811147efb3ef9ffe6894771d704 to your computer and use it in GitHub Desktop.
📝 Note: If you are not interested in the articles fluff, scan the article read the bulleted, bold text and points that begin with emojis.
💡If you are responsible for implementing, architecting or greenlighting development using React, this post is for you. I dive deep into the economics of React to outline how expensive the free lunch of these open-source technologies might actually be.
Normally, I book one tech conference a year. Since I am usually paying out of pocket, I typically pick the event that most supports my personal interests.
Usually, Pycon US, the Python programming language's community conference is the heavy favorite.
This year was no exception; I attended Pycon in Pittsburgh back in May and with that burned through my personal tech self-improvement budget.
While Pycon was worth every penny, I really needed to get in the room with leading figures in the frontend ecosystem to better undersatnd what the future of web development looked like.
Anyone that's recently spoken to me about frontend development, has gotten an earful of the chaos and confusion in the space.
Luckily, I got a golden ticket from the React Conf lottery, borrowed some money from my savings, and thanked my wife for being extremely understaning.
At the conference, It was acknowledged that a huge mistake was made in the official React docs by implying that NextJS (Vercel) was a preffered way to start new React projects.
This notion gave the impression that SPAs were dead or dying tech and that SSR (server side rendering) was the future for React development.
This could not have been futher from the truth.
SSR was announced as a new feature, but here is a dirty little secret, React has had SSR since its initial release.
At the time, Vercel was the only vendor with a public implementation of SSR and its was baked into its NextJS framework.
Whiel NextJS is open source, its a little misleading: many of its features (especially related to SSR) are implemented at the proprietary platform level and not in the open software layer. This point is so important, I am going to say it again.
☢️ Many of NextJS's features are implemented as part of the proprietary platform and not in the open software.
This is legendarily sneaky lock-in. Enterprise NextJS projects could very easily run into scaling issues with only 2 solutions: deploy to Vercel or rewrite.
Vercel's oversized influence (they were also hovering up core contributors) was a pretty big issue dividing the larger React community. Forturnately, Meta responded by listenign to the community calls to form a foundation. I'll talk more about this point in the next section React is the new Java.
Today, every major player implements SSR (which your app/website probably isn't able to take advantage of) and each is fighting for a seat at the table.
Here's my take on the leading contenders
- Tanstack Start - is positioning itself as the metaframework that works across FE
One of the first announcements made at React Conf was the formation of the Raect Foundation.
The foundation was create to counter the sentiments that Vercel was having an oversized influence on the React ecosystem.
💡 React is no longer the cool tech that at the bleeding edge of frontend UI and the folks behind React know it. Instead, the announcement of the foundation was a coming out party announce its self-acknowledgement of boring enterprise tech.
A panel that hosted all of the major metaframework players revealed that they generally agreed on a few points:
- Framework APIs are converging.
- React is actually a framework, especially considering how much more control it wants to own related to app architecture.
- A single party dominating the ecosystem is bad for React (I think the Vercel rep squirmed in his seat at this).
💡 Lastly, on this point the React compiler is available to tell us exactly how bad we have been writting React. It is here to enfource the React way of thinking - their patterns.
You should at the very least configure your react project to use the React compiler linter. It will help you identify potential problems.