Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/n1k0/elm-kitten

Create an SPA using Elm and SASS.
https://github.com/n1k0/elm-kitten

elm ria sass scss spa

Last synced: about 2 months ago
JSON representation

Create an SPA using Elm and SASS.

Awesome Lists containing this project

README

        

# elm-kitten

![build status](https://github.com/n1k0/elm-kitten/actions/workflows/node.js.yml/badge.svg)

This project has been forked from [elm kitchen](https://github.com/allo-media/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](https://en.wikipedia.org/wiki/Single-page_application) application skeleton based on rtfeldman's [Elm Example SPA](https://github.com/rtfeldman/elm-spa-example/), for [Allo-Media](http://tech.allo-media.net/)'s own needs.

[Check for yourself](https://n1k0.github.io/elm-kitten/)

## Features

- Elm 0.19.1 ready
- Multiple pages navigation & routing, based on URL fragments
- [SASS](https://sass-lang.com/) support with [Bootstrap 5.1](https://getbootstrap.com/docs/5.1/) integration
- Live development server with hot reloading (Elm + SASS)
- [elm-test](https://github.com/elm-community/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](https://dev.to/rtfeldman/tour-of-an-open-source-elm-spa).

## 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](http://localhost:3000/).

## Tests

```
$ npm test
```

Tests are located in the `tests` folder and are powered by [elm-test](https://github.com/elm-community/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](https://pages.github.com/).

```
$ npm run deploy
```

## License

[MIT](https://opensource.org/licenses/MIT)