create-elm-app icon indicating copy to clipboard operation
create-elm-app copied to clipboard

Roadmap for Create Elm App

Open halfzebra opened this issue 7 years ago • 0 comments

Create Elm App Roadmap

In this issue I will document the roadmap for future features of Create Elm App. This is the first version of it and it most likely to be updated in the future.

The current list consists of:

  • [x] Introduce a way to extend the configuration
  • [x] Introduce the configuration file
  • [ ] Monorepo
  • [ ] Plugins

Legend: 🍏 Non-breaking change 🍎 Breaking change

🍏 Introduce a way to extend the configuration

Described in #265

Primarely aimed at use-cases when users want to do something we don't intend to support in the default setup or plugins like #262 or #263.

Examples of the APIs: https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader https://github.com/timarney/react-app-rewired

🍏 Introduce the configuration file

.elmapprc or any other format supported by davidtheclark/cosmiconfig

Advantages:

  • Reduces the usage of env varaiables and enable the configuration for optin-in into plugins.
  • Enables the users to re-configure https://github.com/halfzebra/create-elm-app/blob/master/config/paths.js
  • A safe way to fix #160 #255

🍏 Monorepo

Currently Create Elm App is bundling way too many features and it does not provide a way to extend the functionality.

To support this idea it would be very helpful to run a monorepo with all the plugins and ship a smaller set of features by default.

This will enable us to ship smaller amount of features by default (No ES6, no progeressive webapp setup), and let user decide what to include using the set of curated plugins. Enables us to work on better ejection experience

Goals:

  • Split-up the elm-app and create-elm-app CLIs
  • Move utils to the separate packages

Work is being done in #273

🍎 Plugins

Enables:

  • Opt-in support for stuff like SASS, WebComponents or React in a form of installable plugins.
  • Community to step-in and extend the functionality.

Plugins are to be installed locally for every specific project.

halfzebra avatar Sep 03 '18 09:09 halfzebra