Skip to content
This repository has been archived by the owner on May 20, 2024. It is now read-only.
/ Kotsu Public archive

✨ Clean, opinionated foundation for new projects — to boldly go where no man has gone before

License

Notifications You must be signed in to change notification settings

LotusTM/Kotsu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kotsu

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 GraphicsMagick (recommended) or ImageMagick for your OS. Note: it's mandatory to install one of them before running npm install
  4. Set your environment variables [guide]
  5. Install project dependencies: npm install
  6. (optional) Add your repository to Travis for automatic tests
  7. (optional) Set up Continuous Deployment with CircleCI or Werker Docker following our guide
  8. Code live with: npm start or npm start -- --hmr if you need Hot Module Reloading
  9. Build with: npm run build
  10. 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
  • Webpack 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 webpack-dev-server
  • 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.

Documentation

Work in progress

Examples

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

JavaScript

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.

CSS

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.

License

Copyright 2014 LotusTM. Licensed under the Apache 2.0 license.