FeinCMS - a flexible Django-based CMS
Modern CMS usually provides a lot of build-in features, while developers often use only half of them and try to fundamentally modify the other half. The main idea behind the FeinCMS is to get out of the developer’s way. It provides only core functionality, but is easily extendable and customizable.
FeinCMS is one of the most flexible and feature rich Content Management Systems built on Django that is a high-level Python Web framework. FeinCMS is more of a framework than a plain CMS and a good base for further website development. Although you will need a little bit of time to get used to FeinCMS and some additional work with helpers and extensions, eventually you will receive specifically what you wished for.
The core of the FeinCMS is simple. It only provides an admin interface for customly created page content types. This system works with the lists of content blocks that can be reordered using a drag-drop interface and can be assigned to any region of the webpage. FeinCMS advantages:
- content managing: out-of-the-box media library for adding images, videos and documents;
- flexibility: does little to limit developer’s ideas and is the most flexible Django CMS;
- custom content types: all content types are user/developer created and implemented;
- multilingual support.
For FeinCMS a content type means some item that will be attached as content to a base model. Content types that are ready to be integrated:
- Rich text. A single field for a rich text content with TinyMCE instance as a default editor. Support for other rich text editors (e.g. CKEditor) can be easily integrated.
- Video. Video can be embedded by simply inserting the video’s URL from Youtube or other website.
- Media files. Most media file types can be uploaded and displayed, or at least offer the file with a download link.
- Comments. A comment form or a list of comments can be embedded on any page.
- Applications. FeinCMS allows to implement third party Django applications as reusable components.
FeinCMS offers a ‘blank page’ for you to fill in with only necessary components in the form of extensions that provide the built-in way to dynamically add functionality to the website. Among available bundled extensions are:
- changedate & datepublisher: track creation and modification dates and make date-based publishing of pages possible.
- navigation: third party navigation extension. Moreover, there is opportunity to add new navigation entries that do not correlate with the page objects in the database.
- seo: easily add fields to modify meta keywords and a description for search engine optimization.
- translations: adds a language field to each page and administrator can define a page as a translation of another page, thus connecting different language versions with deeplinks.
- multiple sites: multisite extension means support for running several sites from one database using Django's own django.contrib.sites facility.