The surprisingly simple way to write CouchApps.
- Flexible - a lightweight CommonJS environment
- Reduces code fragmentation - by bringing the client-side and server-side together
- Automatic history support - adds pushState and hash-based URLs automatically
- Familiar - all this can be done by using the CouchDB design doc APIs
With a normal CouchApp, you define the behaviour of your app in a design document which you push to CouchDB. This can describe URL patterns, validation rules and even respond dynamically to requests using show and list functions.
This allows CouchDB to communicate with the browser according to the rules defined in your design document. Being able to host an application directly from CouchDB removes a whole layer from your stack, and is one of the main attractions of using a CouchApp.
This isn't very DRY!
The simple idea behind Kanso is to support the design doc API in the browser. You're already defining much of the application's behaviour in the design doc, why should you have to redefine it all over again?