# KnockoutJS APP Starter > Build Single-Page apps with KnockoutJS Rapidly prototype your next single-page application, with a `zero-build` out-of-the-box web-component solution. Need to go beyond the prototype stage, fret ~~not, the tools are in-place to take you to production.~~ This is as simple as possible, but no simpler *Designed for web componets in both legacy and modern browsers* ## Features - `KnockoutJS` 3.4.x - `Web Components` for reuseable UI - `Bootstrap` 3.x for design - `JQuery` 1.11.x to support bootstrap, and provide ajax - Based on `HTML5Boilerplate` 6.x - `ESLint` for coding style - `Relay` a simple pub/sub utility for component communication, using knockout itself ## Requirements [NodeJS](https://nodejs.org/) is used to install `vendor/` dependencies and in the *future* provide a method to `build` your project for production via `gulp` ## Getting Started Lets bootstrap our app with ``` npm install ``` And move the `src/` folder where ever you want it ## Project Structure ``` src/ <-- your public app directory app/ <-- knockoutjs config & startup assets/ <-- your js, css, and images components/ <-- web components pages/ <-- html views that use web components vendor/ <-- extenal dependencies, ie. things you did not write index.html <-- start here ``` ## Documentation You can find extra documentation in the `docs/` directly, such as - [Relay]('docs/relay.md') ## Polyfills While todays "Evergreens" browsers support 99% of `ES6` and provide a pethra of capabilities, such as `import`, `class`, `fetch`, and `promise` depending on your desired browser support, you may find a polyfill to suit your needs... ...**HOWEVER** this projects uses libraries designed to work with IE8 (mayben even IE6?!), but testing that is beyond the scope of this project ## TODO - add a simple router (riot-route) - add gulp build process for production builds - add Jasmine for testing