darcness
"darcness" is the name of the new content engine I am writing for www.deepdarc.com
. It is written in PHP. This is my first large PHP application, and so far I am quite satisfied with how it is turning out.
Its design is inspired by the simplicity of Wordpress and the power/flexibility of Postnuke. I had the following design goals:
- Usability. I want it to be easy for everyone to use, including administrators.
- Elegance. This is somewhat related to usability, but important enough to deserve it's own bullet point.
- Security. Hardened against injection-type attacks. Only stores password hashes(with salt) in the database. I have a lot of other ideas as well (javascript challenge-response so as to not send passwords in the clear when logging in, etc)
- Flexibility. Change out a few plug ins, tweak a few values, and you can set it up for a completely different type of website.
- Commerce. I eventually want to be able to sell stuff directly using darcness.
- Internationalization. Built-in support for multiple languages. (I just need translators...!)
I'm not sure if I will be open-sourcing darcness or not. It is certainly not ready for release at the moment. Unless I feel there is some sort of interest in it specifically, I will likely just use it for my own personal use, and perhaps let a few friends use it on their blogs as well. If you are interesting in using darcness, just leave a comment at the end of this page! While it isn't ready yet, such feedback will determine when it will be.
Features
- Markdown Syntax
- Modular component-oriented subsystems
Flexible group permissions(Replaced by next item)- Access Control Lists
- XMPP Authentication, for quick logins without a password
- Mark entire posts (or parts of posts) as "private" so that they can only be viewed by members of certain groups.
- RSS/ATOM Feeds for both posts and comments
- Internationalization support, with easy web-interface. (Add specific users to the translators group and let them translate it for you!)
- Hit logging (with integrated browser) for usage statistics
- Referrer logging (with automatic search query extraction) for seeing how people are getting to your site
- Error logging for keeping track of things that go bump in the night. (Important security feature, because you don't want users seeing MySQL errors!)
- Ban list for excluding IP's not yet done
- Group Membership expiration dates for memberships which might expire at a specific date.
- Site search capability. (With RSS feeds for individual queries!)
- Update/Publish pinging for sites like Technorati, Ping-o-matic, etc.
- Trackback pinging