Home

Awesome

CRAFT

Create React App From Template

Use your own starting point when setting up a new app, e.g. CSS, JS, manifests an such.

Install

$ npm install -g create-react-app
$ npm install -g craftool

Create a new app

$ craft MyApp https://github.com/stoyan/fail/archive/master.zip
$ cd MyApp
$ npm install . # sets up create-react-app

This creates an app called MyApp using a zip template from github

Get serious

$ npm start .   # start developing
$ npm run build # deploy

Creating templates

To create your own template you use create-react-app first. Then you tweak the app until you're happy with it and you want to use it as a template for other apps.

Now you zip everything in the root of your app except for any build/ or node_modules/.

Normally your zip contains:

If you put these things on Github, let Github do the zipping.

An example template's code is located at https://github.com/stoyan/fail/

And the ZIP file's URL is available from...

Example template

Special files in templates

CRAFT has a spacial treatment for some files:

CRAFT has a special treatment for all .CSS, .JS, .HTML and .JSON files. In all of these files all strings matching the template's name (read from package.json) are replaced with the name of the newly generated app (set by the user). So if the user does...

$ craft MyApp https://github.com/stoyan/fail/archive/master.zip

... then the template's index.html (just one example) turns from...

<title>fail</title>

... to...

<title>MyApp</title>

... provided the template's package.json has...

{
  "name": "fail",
  "...": "..."
}

Fiddling with/contributing to CRAFT

Another writeup

... is on Medium