Lector is an open source flexible and powerful static content management system. It allows building of complex websites out of flat files. Lector is cross-platform - runs on Linux, OS X and Windows. It is written in Python and Node.js. The build system provides a Python API if developer wants to extend it or integrate into other apps.
Lector was created for people who want a working tool that has both static blog engine and content management system features. This particular solution is a combination of:
- usability of CMS like Wordpress and Drupal;
- stability and security of static website generator like Jekyll, Pelican, Hugo;
- flexibility of a web development framework like Django.
This project is quite different from the web technologies offered on the market. First of all, unlike most CMS, Lector does not run on a server. It can run locally on your computer (or a build server) and be deployed to remote servers. All changes can be synchronized there. Lector generates static HTML files and developer can upload them to any web host or content distribution platform (Amazon S3 with CloudFront, github pages, etc.).
Most websites contain static content and are not updated very often. Moreover, dynamic content requires server resources, regular updates and security checks. These are the reasons why Lector is static. All source assets are well structured and stored either in cloud storage like Dropbox or in version control system like git where all updates are easily tracked.
Lector comes with a flexible admin interface. It is browser-based and user-friendly, so that people with no programming experience could edit website content. Also this CMS provides all the necessary capabilities of a static website. As for dynamic features - JavaScript and third-party services can be used. Lector supports plugins that can customize a wide range of functionality.
All source data is stored in an internal flat-file tree database. The layout of this data is fully configurable and very flexible to model any website content. Flat files can be freely queried. Developers who had previously worked with such web frameworks as Django will benefit from the way data is modeled and queried.
Lector recognizes that there are two sets of people working with this solution: web developers and content editors. Both have different requirements to the CMS. This project tries to satisfy both sides:
- Web developers can easily run system locally on a computer, setup the theme and configure website project. Intelligent dependency tracking between pages enables build process only for the files that need rebuilding due to changes.
- Content managers can use fully equipped admin interface to add content to the website. Lector is multilingual and allows creation of localized websites. It also comes with image tools and access to EXIF data.
Lector is much more than a website generator or static blog engine. It builds out static HTML that can be deployed anywhere. Collaboration can work via network shares or the most basic systems like Dropbox. If you want to know more about this open source project, please visit Lector website.