Kotti is most useful when you are developing CMS-like applications that
- have complex security requirements,
- use workflows, and/or
- work with hierarchical data.
Built on top of a number of best-of-breed software components, most notably Pyramid and SQLAlchemy, Kotti introduces only a few concepts of its own, thus hopefully keeping the learning curve flat for the developer.
You can try out the default installation on Kotti’s demo page.
The Kotti CMS is a content management system that’s heavily inspired by Plone. Its main features are:
- User-friendliness: editors can edit content where it appears; thus the edit interface is contextual and intuitive
- WYSIWYG editor: includes a rich text editor
- Responsive design: Kotti builds on Twitter Bootstrap, which looks good both on desktop and mobile
- Templating: easily extend the CMS with your own look & feel with little programming required (see Static resource management)
- Add-ons: install a variety of add-ons and customize them as well as many aspects of the built-in CMS by use of an INI configuration file (see Configuration)
- Security: the advanced user and permissions management is intuitive and scales to fit the requirements of large organizations
- Internationalized: the user interface is fully translatable, Unicode is used everywhere to store data (see Translations)
For developers, Kotti delivers a strong foundation for building different types of web applications that either extend or replace the built-in CMS.
Developers can add and modify through a well-defined API:
- templates and layout (both via Pyramid),
- Content types,
- “portlets” (see
- access control and the user database (see Security),
- workflows (via repoze.workflow),
- and much more.
Kotti has a down-to-earth API. Developers working with Kotti will most of the time make direct use of the Pyramid and SQLAlchemy libraries. Other notable components used but not enforced by Kotti are Colander and Deform for forms, and Chameleon for templating.
Kotti itself is developed on Github. You can check out Kotti’s source code via its GitHub repository. Use this command:
git clone firstname.lastname@example.org:Kotti/Kotti
Continuous testing against different versions of Python and with PostgreSQL, MySQL and SQLite and a complete test coverage make Kotti a stable platform to work with.