JavaScript CSS Shell
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.circleci [ci] fix `circleci` save cache job May 11, 2018
docs [docs] add `ENV` properties documentation Mar 24, 2018
modules [modules] fix passing of read changelog content to version updating f… Jun 6, 2018
source [styles] improve padding for `<code>` tag Jun 11, 2018
tasks [grunt] cache bust local assets declared with absolute URLs too Jun 11, 2018
tests/kotsu [modules][tests] make `changelog-version` testable Jun 6, 2018
.editorconfig [conf] do not trim whitespace in Jest snapshots Sep 29, 2017
.gitignore [misc] update to `jspm@0.17` beta package Sep 15, 2016
.gitmodules [submodule][sass] rename `ekzo.sass` submodule directory to `ekzo` Oct 26, 2016
.stylelintrc.yml [conf] enable `scss/dollar-variable-colon-space-after` Stylelint SCSS… Mar 24, 2018
.travis.yml [ci] run tests on travis too May 11, 2018 [package] v1.14.1 Jun 11, 2018 [misc] added license text file and copyright mention in readme file Jun 14, 2016 [misc] update readme Mar 29, 2018
appveyor.yml [ci] update `appveyor` to use node v10 and `npm ci` May 11, 2018 [ci] get rid of extra variable in deploy script May 11, 2018
dockerfile.template [conf] use more appropriate COPY instead of ADD in dockerfile, ref #290 Feb 11, 2018
gruntfile.js [modules][grunt] give `grunt-jspm-chockidar` more obvious name Mar 29, 2018
jest.config.js [modules][tests] move all testing utilities into modules Mar 24, 2018
jspm.config.js [package] update JSPM mapping Feb 13, 2018
package-lock.json [package] v1.14.1 Jun 11, 2018
package.json [package] v1.14.1 Jun 11, 2018


Advanced Web Starter Kit

To boldly go where no man has gone before

NPM version Travis Build Status CircleCI Build Status AppVeyor Build Status Greenkeeper Status Dependency Status DevDependency Status

How to use

  1. Clone or download and unpack to desired location
  2. Download and install latest version of node.js
  3. Install grunt-cli globally: npm install -g grunt-cli
  4. Install jspm globally: npm install -g jspm
  5. Install GraphicsMagick (recommended) or ImageMagick for your OS. Note: it's mandatory to install one of them before running npm install
  6. Set your environment variables [guide]
  7. Install project dependencies: npm install
  8. (optional) Add your repository to Travis for automatic tests
  9. (optional) Set up Continuous Deployment with CircleCI or Werker Docker following our guide
  10. Code live with: npm start or npm start -- --hmr if you need Hot Module Reloading
  11. Build with: npm run build
  12. Deploy and enjoy your life

What's inside?

  • Reasonable structure for frontend projects
  • Static pages generation
  • Prepared configs for quick Continuous Deployment and automatic tests setup
  • Grunt with pre-configured tasks
  • Nunjucks, a full featured templating engine
  • In-built Nunjucks globals and filters for formatting numbers, dates, getting current page url, locale, breadcrumb, etc.
  • Human readable urls
  • Boilerplate files based on best practices
  • i18n with node-gettext and configured layouts to properly declare current locale and alternate urls
  • Sass compiler with source maps generation, autoprefixing, optimization, minification and linting
  • Ekzo Sass framework
  • JSPM with ES6 support, managing and bundling JavaScript dependencies and optional hot module reloading or blazing fast watch
  • standard for linting and automatic formatting JavaScript
  • Live reload powered by Browser Sync
  • Runtime type annotation and data validation with tcomb and tcomb-validation, built-in handy refinements.
  • Preconfigured meta tags for Open Graph and Twitter Cards
  • Commonly used by search providers structured data based on RDFa
  • Automatic sitemap.xml generation with grunt-sitemap-xml
  • Automatic sprites generation with Spritesmith
  • Automatic images compression via TinyPNG
  • Automatic responsive images generation with grunt-responsive-images
  • Separate not optimized files in development, and
  • Compiled and minified files for production

And a lot more under the hood. We just didn't have time to document all features. Yet.


Work in progress


Deployed version of Kotsu from master branch can be found here.

Note that Examples section so far features only least part of predefined elements and features.

Browsers support


IE Edge Chrome Firefox Safari Opera Opera Mobile iOS Safari Android
9+ 12+ 21+ 28+ 6.1+ 12.1+ 12.1+ 7+ 4+

To enable ES6 features in IE11 and below, uncomment import 'babel-polyfill' in main.js. See details here.

Default build shipped with jQuery 3.1.0+ which doesn't support IE8. Replace it with pre 3.0.0 version if you need support of IE8.


IE Edge Chrome Firefox Safari Opera Opera Mobile iOS Safari Android
10+ 12+ 21+ 28+ 6.1+ 12.1+ 12.1+ 7.1+ 4.4+

Refer to Ekzo Browsers Support section for details about graceful regression for IE9 and below, which included in Kotsu by default.

To disable graceful regressions for older IE, remove IE() macro call from base layout.

Outdated Browser message

In IE9 and below users will see banner before page content with message about outdated browser and link to Outdated Browser.

To disable Outdated Browser message, remove OutdatedBrowser() macro call from base layout.


Copyright 2014 LotusTM. Licensed under the Apache 2.0 license.