Wow guys! That's some really good stuff... I appreciate it.
I think you'll be pleasantly surprised then. In my system, there is no separate 'admin area.' The admin section is actually built right into the user-facing portion of your website (when you log in, an 'admin toolbar' drops from the top of the page)! Everything you do is in real time and it appears just as your visitors will see it.
As far as implementing a drafts feature... that's something I've totally overlooked, and it certainly wouldn't be that difficult to do. My only concern would be how to define a limit. Maybe something like saving up to ten drafts and deleting the oldest one each time the page is updated?
Post scheduling is something that I still can't decide on. It is no doubt a very useful feature, but it comes with it's problems too. The main goal of my CMS is speed. In order to implement post scheduling, I'd imagine that some sort of semi-constant AJAX system would need to be implemented, which would in turn slow the site down a bit.
The only 'practical' method I've devised (for my purposes at least) is to do a quick check for posts that need to be published when a user performs some arbitrary action (i.e. logging in). This wouldn't be elegant or precise, but it would work.
And finally, I'm an open source junkie (heck, I'm typing this message on a Linux system
)... so it will definitely be open source.
The source code is heavily commented and I'm going to push for community participation and sharing. It's going to be released under the (L)GPL.
An expiry system would entail the same double-edged sword as post scheduling. I know you're pretty good with this stuff, so how would you recommend implementing it without sacrificing performance?
In order to keep my program fast and simple, I'm making a few assumptions and setting some requirements that I'm well aware will limit my potential userbase. Let me explain.
I know this probably sounds like I'm some kind of maniac, but I'm requiring Apache2 (with .htaccess[or similar] and mod_rewrite enabled), PHP 5, and MySQL 5. I'm aware that this will drive people away, but looking over Joomla, Drupal, and Wordpress, a HUGE majority of their source code (at least 25%... probably way more...especially Joomla) is spent preparing URLs, allowing for PHP 4 compatibility, and catering to other types of databases. Although I really do appreciate the effort, I feel that it's a waste of code and valuable script resources and time.
My requirements may be a little much, but those tools are quickly becoming the hosting industry standard, and I don't see it being too much of an issue.
Likewise, I'm forcing jQuery. Like you said, I just couldn't pass over the plug-in potential, extendability, huge community, and simplicity jQuery offers.
Finally, allowing PHP statements in the pages would be both tricky and dangerous. In order to implement this in my system, I would have to utilize the 'eval()' command, which I REALLY don't want to use anywhere. Ever. It's just too risky.
But, what you will be able to do is create a 'module', which is actually a PHP page that the user interprets as a regular, MySQL-generated page... so this capability will exist, just in a different manifestation.
Like I said, I really appreciate it guys. Let me know if you come up with anything else!
If anyone else here has anything to add I'd love to hear your ideas too!