Setup Modern Javascript Applications with a single command

Usage no npm install needed!

<script type="module">
  import createElectrojet from '';



npm version code style: prettier coding style: standard


npm init electrojet <project-name>

The CLI will walk you through a set of options for you to select the template/starter.


1. Template

This option allows you to select the template beforehand.

npm init electrojet <project-name> --template=electron

See list of currently available templates

2. Starter

This option allows you to select a starter beforehand.

npm init electrojet <project-name> --starter=<User>/<RepoName>

This format works for repositories hosted on github.

How do I customise it to work with Gitlab / Bitbucket?

How are they different?

A template offers a default configuration for a given technology. For eg. selecting electron as a template, gives you a package with Electron, Javascript, CSS and HTML.

A starter is much more customised and opiniated in it's design. For example, a starter may have Electron with React and Redux installed and setup for you to start working.

How do I add _______ to the configuration?

  1. Add a plugin

    There are plugins available for Electrojet that can add functionality to existing configurations. You can add them to electrojet.config.js plugins array.

    List of Plugins

  2. Roll your own

    If you can't find a plugin, you can always write one.

    In your plugins directory, add a function that takes the format:

module.exports = {
  plugins: [
      resolve: function (
        env,  // Current running env, either "dev" or "prod". Allows you to create multiple configs for development and production
        context,  // The current configuration, mutating this won't help
        options,  // options from the user, you don't need this for writing custom config
      ) {
        return customConfig; // Return custom configuration

The webpack configuration object that you return from the resolve functions gets shallow merged into running configuration.

List of available templates

  1. Electron
  2. Carlo
  3. Phaser CE

List of plugins

  1. SASS
  2. LESS

How do I build a CLI for my favorite technology?

  1. Install @electrojet/core for defaults in building Webpages.
  2. Use Node APIs for @electrojet/core to extend the start and build scripts.
  3. If you are building a Template (and not a starter, [see difference]), give us a PR to include in electrojet templates.

See Electrojet Carlo for an example.

How do I customise it to with Bitbucket / Gitlab Templates

Docs in progress