- Data abstraction layer
- Query Language
- Template/Views Engine
- Simple and minimalistic language
- Easy to extend with own functions and plugins
- Content negotiation - depending on requested 'Accept' header it is possible to return different content types: html, json, xml etc.
- Page layouts there should be possible to define per-page layout configurations in management console and without reassebmling site markup and template