iansinnott / react-static-boilerplate

A boilerplate for building static sites with Webpack 2, React and React Router
107 stars 16 forks source link

Dependencies vs Boilerplates #5

Closed iansinnott closed 7 years ago

iansinnott commented 8 years ago

Boilerplates are great as MVPs for starting new projects, but they have drawbacks:

Instead of a boilerplate it would be better to have a project dependency. I really like what Ryan Florence is doing with React Project and the idea of boiling less plates.

This boilerplate is just a quick way to get started building a static site with React Router, which is the overarching goal. I'd like to take overarching goal in a similar direction to React Project. It might even be optimal to include React Project as a dependency.

This is open for discussion. I'm just thinking out loud, but I think there could be some big wins in moving from boilerplate to dependency.

her commented 8 years ago

So how could we convert your current boilerplate to something that relies more on dependencies? Are there any glaring tasks that would help inch towards this goal?

One thing I like about this project, more so than any others I've seen, is the focus on producing static react sites without a huge overhead (like Gatsby or phenomic)

iansinnott commented 8 years ago

I like the approach taken by create-react-app. Namely, the project is installed as a dependency and provides a binary that can be used from package.json. If the user every wants to customize things they can always eject and all the configuration files will be moved into the root directory. I like this approach a lot because it provides ease of use and also lets the user customize everything if they wish.

A dependency can also be continuously updated without affecting the application code. This is a problem I've had in my own use of this project that I'd like to solve: I create a project from the boilerplate, remove the .git repository and then can no longer easily update the boilerplate code whenever this repository is updated.

I would certainly welcome any input on what an ideal interface would look like.

iansinnott commented 7 years ago

I started experimenting with this idea and the webpack-2 branch has been updated to take advantage of this new approach. It does not depend on most of the build dependencies. Instead it imports the single app-time module which handles the build process and the dev server.

iansinnott commented 7 years ago

This has been implemented as of v3 🎉