The Wayback Machine - https://web.archive.org/web/20161010170419/http://www.deepdarc.com/darcness/

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