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
Starting a new app #289
Comments
I think everyone would agree on that the correct answer would be that this depends on what you and your new project needs. As far as I know Next.js is a complete framework which can be optionally used as a part of the ZEIT ecosystem? or platform?. Whereas Razzle is way more minimalistic. So it doesn't includes features which you may not need, but it is also true that it doesn't includes features which you may need or you will may need eventually. I have also considered using Next.js before, but there were some small details which were irritating for me. For example Next.js doesn't minify the HTML output properly (I know this is not that important at all, but this was a deal breaker for me.). It also uses styled-jsx an CSS-in-JS, but I prefer Styled Components. Plus for my new project I didn't needed routing (yet 😄). Finally and luckily after testing a bunch of example projects, I ended up finding and using Razzle. Actually I have started with creating an example project called Razzle Material UI Styled Example including some modules and features I need. So now I can work on my new project almost shamelessly. Feel free to use the mentioned repository if you need the same features or some of them. |
Thanks @knipferrc A similar experience led me to creating Razzle. About 6 months ago, I started a huge app with Next.js right after it came out and the churn was too much for me to handle. I literally submitted the PR for the parameterized routing example (i.e. Looking for something more stable, I moved to NYT's kyt project. This was sufficient for around ~2 months, but 1) build times became insanely slow (>45s) as the app grew, 2) kyt's SCSS rules weren't the right fit for the project, and 3) I found kyt's logging (with the insane amount of emoji) pretty annoying. So I decided to start working on a thinner, faster replacement for kyt, but with universal HMR and a similar configuration API to Next.js-- Once all was said and done, I realized I had created a nearly framework-agnostic build system and that this level of abstraction was more suited for my project's needs. By "framework-agnostic," I mean that Razzle will 100% work with Angular, Vue, Rax, Preact, Inferno, React-XP, RN-Web, Reason-React and, most importantly to me, whatever crazy stuff comes next. IMHO, Adaptability is the key differentiator between Razzle and pretty much everything else I've seen. With Razzle, you can read about something in a blog post, create a fork, add a babel-transform/webpack config/parallel build system and just go try shit. Why? Because unlike Next, Razzle isn't a framework and unlike CRA, Razzle lets you augment the underlying configuration without forking it. That's huge for the way I learn, teach, experiment and do business. Razzle's flexibility and agnosticism have already paid off for me and my team:
As for Razzle's future. Two days ago, "adding SSR support to CRA" was mentioned as a top ~15 todo on the React Core team's roadmap. If SSR support is added to CRA, Razzle may no longer need to exist...and I am totally cool with that. Until that happens though, Razzle will push forward as a framework-agnostic build tool for server rendered universal JavaScript. |
Wow!! Thank you guys so much for the awesome replies. |
Hi Jared, I am not very clear on how to use Razzle to convert an SPA Angular project into SSR. |
+1 for a Razzle Angular solution. #1109 |
This project looks awesome. Im going to be creating a new project and was just wondering between next.js, create-react-app, and razzle, what are the benefits, or what would be best long term. I would really like SSR so CRA is probably out of the question. I have built an app with next and then discovered this project. Hopefully this is an ok place to ask this but just wanted to get some thoughts on whats best for the long term.
The text was updated successfully, but these errors were encountered: