3

I have to build a frontend project from scratch.

This project is ambitious and will last for a long time. My main goal in this first weeks of development will be to start on a good basis.

Therefore, i'm wondering if create-react-app is a good option because it's easy to begin with and this toolbox is optimized for production.

However, how modular my project will be if i use this solution ?

Does anybody know if some drawback can appear on project using CRA ?

My main worry is about bundler.

If the project is getting bigger and bigger, do i have to optimize the webpack config of CRA ?

Isn't better to create my project from scratch with my own bundler configuration ?

Sinane
  • 674
  • 1
  • 6
  • 15

1 Answers1

3

CRA is a lightweight environment which generates the HTML on the client side (browser).

Which means it goes under the advantages and drawbacks of Client Side Renderding (google it).

For CRA advantages see docs.

Disadvantages:

  • Opinionated setup (like almost all tools).
  • Hard to configure.

I don't think there are more interesting drawbacks to talk about.


Very important side note: the developing cycle should be decoupled from the production environment.

There are some fundamental issues that I want to tackle because I see many questions resemble this one.

React is all about Composition and Isolation (see Design Principles, Thinking in React). Meaning that your React components should work on any environment

So, when developing an app, you should focus on developing in isolation, therefore developing with tools like Storybook is actually the only thing you need.

My opinionated developing cycle of a new project:

  1. Decide on any environment (like CRA/Gatsby/Next etc.)
  2. Develop components in isolation (like with Storybook).
  3. Push changed to production environment.
  4. Repeat 1-2 till you get to bottle neck (For example you found that CSR isn't working well for you application).
  5. Switch production environment (remember that your components should work on any environment). Goto 1.

Good Luck.

Dennis Vash
  • 31,365
  • 5
  • 46
  • 76
  • 1
    Thank you for answering, it is really helpful. I don't need Server Side Rendering for this app, so CRA seems to be a good option. I edited my post to be more precise on my worries – Sinane Aug 26 '20 at 12:53
  • 1
    I thought the question was about using `create-react-app` vs doing a react project from scratch. – FedericoCapaldo Apr 12 '21 at 15:20