Our goal with this project is to have a super simple + low barrier to entry for development. All you should need is nodejs + git. There should be be no complexity in the development setup or workflow 🌹

NOTE: if you plan to work on a new feature please ask on gitter first https://gitter.im/alm-tools/alm. We are focused on a great default UX with limited customizability so not all features will be accepted.

Requirements

You need:

git (If you are windows please install the version of git that has git bash and run npm install from that).

node v5+

Setup

git clone https://github.com/alm-tools/alm.git
cd alm
npm install

Also you can use this build version of alm on another folder e.g. your project (i.e not our folder with our test files) simply by running:

npm link

Workflow

Once you have npm start running, if you edit any front-end ts file our Webpack setup will reload the front end only. Make a change to some backend file and our running nodemon will make the whole app restart 🌹

IDE

We use alm to develop alm.

ONCE (or whenever you want an update): Run npm run ualm to copy the current alm copy to node_modules

You run two instances of alm, once where you dev, and one where you test what you have written.

Where you dev

Run npm run malm (master alm) to launch alm to develop alm.

You are free to use some other IDE if you want. You can run npm run tscw to run the TypeScript in the background in watch mode and use your favorite IDE in the foreground.

Where you test

Run npm run salm (slave alm) in another terminal to start alm in live reload mode. Open the url mentioned in the console.

Any changes to the UI will result in UI reload
Any changes to the backend will result in backend restart

Webpack

All our front-end js gets minified into bundle.js. This is what gets npm deployed.

For dev time we have a setup (all code in devtime.ts) where we start a WebpackDevServer and proxy the bundle.js requests to it, additionally loading the hot loader to refresh our UI if any front-end JS changes.

Running tsc in watch mode

If you did something which resulted in a lot of errors you can run tsc in watch mode in a new window:

npm run tscw

Working on another branch

Get the latest git commits from that branch. Next all you need to do is npm install. Now run nodemon like you would normally do.

Idea Tracking

Since I am still doing a lot of thinking then rethinking I'm trying not to put too much stuff in the issues as it spams the watchers. Instead I've been using a private trello but its very raw (like a pen an paper). Feel free to ask me questions on gitter about what's in my headspace. I try to be open about it on twitter anyways.