oddCMS is designed for geeks by a geek. Its design goals are simplicity, security, and speed. oddCMS' only requirement is PHP5 (although it can easily be modified to run on PHP4) and Apache (since it uses mod_rewrite.)
It's fast.
oddCMS is very fast. Not "database with a cache" fast, But "comparable to static pages" fast. It's designed to serve non-dynamically generated content as fast as possible, and it succeeds.
oddCMS doesn't depend on a database - its use of flat files allows it to benefit from the disk caching of the server OS. The file structure is designed for fast access and minimal parsing, avoiding much the overhead found in other flat-file CMS packages.
It's simple.
The core engine of oddCMS is under 300 lines of PHP, including comments. You can read through the entire codebase in 15 minutes. Anyone with a knowledge of PHP can easily understand how it works. As a result, oddCMS is easy to extend and easy to modify.
It's secure.
The use of flat files means that there is no SQL to exploit. oddCMS doesn't require any write access. All content, all templates, and all stylesheets can be made read-only -- you could run a site using oddCMS from a read-only filesystem (if you really wanted to.)
Content can be stored in directories inaccessible to the web server -- as long as PHP can open the directory, oddCMS can read content from it. Requests are sanitized to prevent directory traversal attacks.
It's easy to extend.
oddCMS is released as open source under a very permissive license. It's easy to modify and easy to extend.
It's easy to integrate.
oddCMS was designed with the automated addition, removal and modification of content in mind. oddCMS's directory-based content management makes the programmatic management of content as simple as writing and reading plain text files. It's perfectly suited to automated publishing.
Here are some key features of "oddCMS":
Chunks
Chunks are re-usable pieces of text, stored in their own seperate files. They can be page-specific, or site-wide. To include the contents of a chunk in your page, simply add the placeholder {{chunkname}} where chunkname is the name of the chunk. When the page is requested, the placeholder will be replaced with the contents of the chunk.
File-based organization
oddCMS forgoes complex database structures and cryptic file names, instead leveraging the filesystem for the organization of content. A single storage directory is used for all data storage -- within it, three subdirectories: styles holds templates and stylesheets, pages stores page content, and chunks holds chunk files.
Looking to organize your site with subdirectories? Just make a subdirectory in the pages directory, and place your content into it. Requests will automatically be mapped to the appropriate subdirectory (i.e. http://www.example.com/sd/page will display content from 'page.content' in the 'sd' subdirectory of the pages storage directory.
Dead simple templating
Create your template as you like it. Simply place {{content}} where you want the content to appear. It's that easy. Everything else (menus, etc.) can be handled using the equally-simple chunks.
Built-in gzip support
Enabling gzip support is as simple as changing a '0' to a '1' -- oddCMS will then gzip all of its output, including stylesheets.
Built-in Content-type support
oddCMS can be configured to send any Content-type header you want.
Handles stylesheets
oddCMS can be configured to minify and/or gzip stylesheets -- simply place them in a directory you specify, point oddCMS at that directory, and use a URI such as '/stylesheets/nameofstylesheet.css' to retrieve them. If gzip is enabled, they'll be gzipped, and oddCMS will ensure that they're sent with the appropriate MIME type. oddCMS can even be configured to set a far-future expires header to help ensure that browsers keep stylesheets cached. oddCMS can strip excess whitespace and comments from your stylesheets (minification), cutting down on bandwith usage and improving page load times.
· It doesn't use a database. oddCMS uses plain text files for content and template storage.
· It's tiny. CMSs are usually large, complex applications. oddCMS is neither.
· It's extremely flexible when it comes to actually organizing your content.
· It can be run from a read-only filesystem with no loss of functionality or performance.
NOTE: oddCMS is licensed and provided under the terms of the Creative Commons Attribution-Noncommercial-Share Alike License (3.0, United States).
Requirements:
· PHP 5
· Apache
· Web server
What's New in This Release: [ read full changelog ]
· Added support for chunks in titles/meta tags. Chunk directives in .meta files are now parsed and applied.