A Simple Website System

I was about to implement a simple ModX-based website when it occurred to me that it didn’t really make things easier for me.

While it does, theoretically, make it easier for clients to edit their content, it means that I have to now worry about deploying ModX on a foreign server. This is not difficult, but it’s involved enough that I would need to charge for it and be Mr. System Administrator, which is not my life goal. Additionally, once you touch someone else’s server you become implicitly responsible for it. I would prefer to be responsible for just my own server, but the implication then is that I then have to be offering hosting. I would actually prefer to avoid that as well. I’d like clients to pay for their own hosting and domain name services, so they always retain direct control over it.

So, I’m back to Square One. Here’s what I want:

  • A zero-cost, easy way for clients to edit their website without breaking the HTML. No additional software should be needed.
  • Avoiding being part of the content update/maintenance loop. THat makes me a bottleneck, and I have to charge for it.
  • Maintaining the ability for clients to host anywhere, without me having to actually have to know how those servers work, or needing to keep a list of login credentials.

I think the solution to this is actually a custom web application that I deploy on my own server. Essentially, it would be a web templating system that gives each client their own login to edit each templated web page’s content areas. The system manages this content in a database. When the content is edited and saved, the system creates static web pages from the templates/database content. These files are then uploaded directly using FTP to the client’s server.

I looked around briefly to see if something like this already exists (it reminds me a bit of old versions of MovableType), but there are so many web frameworks that it’s hard to sort through them all. So for now, I’m going to start looking through the CodeIgniter documentation to see what it will take to do this. If something already exists, I would love to know about it. I’ve also had an offer by a reader to help with this, so we’ll see what we end up building. My lack of practical database experience has long been a shortcoming in my application development ambitions, so this would be a great project to help shore up the gaps in my knowledge.