6 ms·
Pleased to say I had a meaningful hand in this :) As some background, this finally happened because: - React 19 broke CRA - I griped about it loudly on Blues
by acemarke 2y ago
Pleased to say I had a meaningful hand in this :) As some background, this finally happened because:
- React 19 broke CRA
- I griped about it loudly on Bluesky (https://bsky.app/profile/acemarke.dev/post/3lggg6pk7g22o https://bsky.app/profile/acemarke.dev/post/3lggg6pk7g22o) and that started a long debate
- I filed an umbrella issue describing the specific breakage and recommending an actual official deprecation announcement (https://github.com/facebook/create-react-app/issues/17004 https://github.com/facebook/create-react-app/issues/17004)
- The React team finally took action to fix the CRA breakage, then wrote the blog post, updated the setup docs page, and redid the docs SEO to get Google to stop showing the legacy docs as a search result.
So, kudos to the React team for making meaningful changes here!
(It's not _exactly_ what I was hoping for, and I gave them some additional review feedback that they didn't include, but gotta give credit for the actual changes and steps forward!)
- 0xblinq 2y agoThanks a lot for your effort and all the work you did to get this done. May I ask about the feedback you provided and they didn't include?
- acemarke 2y agoSome of the main points I had: - At least _mentioning_ Vite directly on the "Create a Project" page _is_ genuinely a step in the right direction. That said, they're going out of their way to still not just directly say "creating a basic SPA with Vite is a valid option for using React", and at this point it just looks pretty ridiculous. (Someone pointed out that the Svelte docs start with "Use SvelteKit"... and then the very next thing is "or add Svelte to a basic Vite project with this template". That's what's needed here.) - I get the _intent_ of the "Build Your Own Framework" phrasing (ie, "choosing to self-install a router, data fetching lib, etc, results in a poor self-created framework"). That said, the "BYOF" page is the opposite of what's needed. It needs to be concrete steps to guide beginners into setting up an app with Vite or Parcel and recommending specific tools to add and techniques to use. Instead, it's "Step 1: Install Vite or Parcel"... and then multiple sections of "Look how hard routing, data fetching, and rendering are, you'll _never_ get this right yourself, use an existing framework instead, DON'T DO IT YOURSELF!". The content would be great if it was on a page titled "Web App Perf Basics", or "Framework Capabilities". But given that this is linked from the "Create" page with the hint of "follow steps here to get going DIY", this is the wrong content entirely. - Similarly, the repeated use of "framework" to mean "a pre-existing thing someone else built" vs "a set of libs you added yourself" is confusing. Along with that, the overall tone generally comes across as "we don't want to acknowledge the breadth of ways that people use React in practice, and we're going to keep repeating the word 'framework' because we don't trust users to know how to make decisions themselves and we know what's best for you". - I understand why they tried to emphasize "Next/RR/Expo can all export plain SPAs with no server needed!". That knowledge is genuinely not widespread. But, I don't think a bright green callout with that info should be the _first_ thing on the "Create a Project" page. _Somewhere_ on the page, sure, but it's not the most critical thing to show right away. So, actual genuine improvement... and yet still kinda frustrating to read and see the phrasing and messaging so far off from what it _ought_ to be.
- iuvcaw 2y agoThe React team really does not like SPAs, which I think is a bit of a shame. I'm not a big fan of the mish-mash approach of client and server components that Next et al now encourage. For the type of app that React excels at, or at least the type I like to build, the performance issues with a SPA aren't a big deal.
- thdhhghgbhy 2y agoThe hybrid server render, then hydration step is too magical for my liking. There's a bunch going on in there that would be very difficult to debug, if some mysterious error at this stage of the app were to present itself. I prefer either wholly SPA or serverside, can debug and understand the whole thing.
- pjmlp 2y agoNext.js is the only way I find React barelable, exactly because it lets me keep the Spring/ASP.NET MVC style.
- bananadonkey 2y agoAgreed on the BYOF page. I excitedly clicked expecting some new nuggets of wisdom from the core team but was quite disappointed.
- ianschmitz 2y agoThank you Mark for all the hard work you’ve put in to the React community over the years.
- codinhood 2y agoThis perfectly captures my thoughts about the situation. I don't know why they're so resistant to do treat SPAs as a completely valid way to use React in 2025. The majority of devs still use React primarily as a SPA. Recent State of React has it at 85% for SPA and 63% for SSR (1). Probably they know their answer is unpopular and thus we get a lot of deflection and phrases like "you should only consider a SPA if you have unusual constraints" whatever that's suppose to mean. I've said it before, but changes don't happen when random devs like me complain, because I'm easy to ignore. So I really appreciate you specifically bringing this topic up, it really helps to get things going. 1. https://2024.stateofreact.com/en-US/usage/ https://2024.stateofreact.com/en-US/usage/
- worthless-trash 2y agoYet i got told here that CRA is not react https://news.ycombinator.com/item?id=42613221#42620021 https://news.ycombinator.com/item?id=42613221#42620021 Seems like they are responsible for it, so .. it react.
- thiht 2y agoYou can say it in 10 threads if you want, that’s still not true. CRA is a template using React. The team working on React can work on a React template, that doesn’t mean they’re the same thing. It doesn’t even make sense.
- worthless-trash 2y agoI've learned today the reccomended toolchain isnt part of the base react ecosystem. Thanks for the education.
- ForHackernews 2y agoThis is true throughout the React universe. React itself does almost nothing useful. In order to build an app that does anything, you need routing, state management, API connections, etc. etc. Reactland is all just a grab bag of random half-maintained unofficial libraries that sort of work with each other. Compared to Angular or Vue, it's the wild west. I don't understand why anyone puts up with it.
- madeofpalk 2y agoIf CRA is dead, does that mean React is dead? I don't think so, so CRA is not react.
- ianschmitz 2y agoThey are still going out of their way to not say Vite or similar SPA tooling is a completely viable path for a lot of projects. SEO is not critical for all projects like they make you think it is. I’m pretty disappointed by the direction they took in this post. I was given word back in 2019 while I was working on CRA that the React team was cozying up to the Next team and was going to be pushing Next as the future of React. That never sat well with me and I stopped contributing the following year. This post took way too long to be sent to the community, but I’m glad they finally did something. It’s been dead for years.