2018-02-19 21:34:33 +00:00
# Boilerplates and CLIs
2019-06-21 21:19:21 +00:00
Electron development is unopinionated - there is no "one true way" to develop,
2018-02-19 21:34:33 +00:00
build, package, or release an Electron application. Additional features for
Electron, both for build- and run-time, can usually be found on
2018-03-02 18:41:55 +00:00
[npm ](https://www.npmjs.com/search?q=electron ) in individual packages, allowing developers to build both
2018-02-19 21:34:33 +00:00
the app and build pipeline they need.
That level of modularity and extendability ensures that all developers working
with Electron, both big and small in team-size, are never restricted in what
2018-02-21 18:12:19 +00:00
they can or cannot do at any time during their development lifecycle. However,
2018-02-19 21:34:33 +00:00
for many developers, one of the community-driven boilerplates or command line
tools might make it dramatically easier to compile, package, and release an
app.
## Boilerplate vs CLI
2018-05-08 05:16:09 +00:00
A boilerplate is only a starting point - a canvas, so to speak - from which
2018-02-19 21:34:33 +00:00
you build your application. They usually come in the form of a repository you
can clone and customize to your heart's content.
A command line tool on the other hand continues to support you throughout the
development and release. They are more helpful and supportive but enforce
2023-04-03 11:20:10 +00:00
guidelines on how your code should be structured and built. _Especially for
beginners, using a command line tool is likely to be helpful_.
2018-02-19 21:34:33 +00:00
2023-01-02 10:52:18 +00:00
## Electron Forge
2018-02-19 21:34:33 +00:00
2022-09-21 20:49:22 +00:00
Electron Forge is a tool for packaging and publishing Electron applications. It unifies Electron's tooling ecosystem
into a single extensible interface so that anyone can jump right into making Electron apps.
2018-02-19 21:34:33 +00:00
2019-08-30 20:40:37 +00:00
Forge comes with [a ready-to-use template ](https://electronforge.io/templates ) using Webpack as a bundler. It includes an example typescript configuration and provides two configuration files to enable easy customization. It uses the same core modules used by the
2020-10-05 20:01:40 +00:00
greater Electron community (like [`electron-packager` ](https://github.com/electron/electron-packager )) –
2018-02-20 15:47:18 +00:00
changes made by Electron maintainers (like Slack) benefit Forge's users, too.
2018-02-19 21:34:33 +00:00
2018-03-02 18:41:55 +00:00
You can find more information and documentation on [electronforge.io ](https://electronforge.io/ ).
2018-02-19 21:34:33 +00:00
## electron-builder
A "complete solution to package and build a ready-for-distribution Electron app"
2018-03-02 18:41:55 +00:00
that focuses on an integrated experience. [`electron-builder` ](https://github.com/electron-userland/electron-builder ) adds one
2018-02-21 18:12:19 +00:00
single dependency focused on simplicity and manages all further requirements
2018-02-19 21:34:33 +00:00
internally.
`electron-builder` replaces features and modules used by the Electron
maintainers (such as the auto-updater) with custom ones. They are generally
tighter integrated but will have less in common with popular Electron apps
like Atom, Visual Studio Code, or Slack.
2018-03-02 18:41:55 +00:00
You can find more information and documentation in [the repository ](https://github.com/electron-userland/electron-builder ).
2018-02-19 21:34:33 +00:00
## electron-react-boilerplate
2018-05-08 05:16:09 +00:00
If you don't want any tools but only a solid boilerplate to build from,
2018-03-02 18:41:55 +00:00
CT Lin's [`electron-react-boilerplate` ](https://github.com/chentsulin/electron-react-boilerplate ) might be worth
2018-02-19 21:34:33 +00:00
a look. It's quite popular in the community and uses `electron-builder`
internally.
2018-02-20 15:47:18 +00:00
## Other Tools and Boilerplates
2018-02-19 21:34:33 +00:00
2018-03-02 18:41:55 +00:00
The ["Awesome Electron" list ](https://github.com/sindresorhus/awesome-electron#boilerplates ) contains more tools and boilerplates
2018-02-19 21:34:33 +00:00
to choose from. If you find the length of the list intimidating, don't
forget that adding tools as you go along is a valid approach, too.