elm-kitten

An utility to generate an Elm SPA skeleton, forked from elm-kitchen.

Usage no npm install needed!

<script type="module">
  import elmKitten from 'https://cdn.skypack.dev/elm-kitten';
</script>

README

elm-kitten

build status

This project has been forked from elm kitchen, which has been unmaintained for more than a year now.

This is a modest attempt at providing a simplistic yet opinionated Elm SPA application skeleton based on rtfeldman's Elm Example SPA, for Allo-Media's own needs.

Check for yourself

Features

  • Elm 0.19.1 ready
  • Multiple pages navigation & routing, based on URL fragments
  • SASS support with Bootstrap 5.1 integration
  • Live development server with hot reloading (Elm + SASS)
  • elm-test support
  • JavaScript build minification & optimization using UglifyJS.

Code organization

The application stores Elm source code in the src directory:

$ tree --dirsfirst skeleton/src
src
├── Data
│   └── Session.elm
├── Page
│   ├── Home.elm
│   └── SecondPage.elm
├── Request
│   └── Github.elm
├── Views
│   ├── Page.elm
│   └── Theme.elm
├── Main.elm
└── Route.elm

Richard Feldman explains this organization in a dedicated blog post.

Installation

$ npm install -g elm-kitten
$ elm-kitten my-app
$ cd my-app
$ npm install

Usage

To start the development server:

$ npm start

This will serve and recompile Elm code when source files change. Served application is available at localhost:3000.

Tests

$ npm test

Tests are located in the tests folder and are powered by elm-test.

Build

$ npm run build

The resulting build is available in the build folder.

Deploy

A convenient deploy command is provided to publish code on Github Pages.

$ npm run deploy

License

MIT