A CMS Confession

Posted Monday 25th January, 2010

I need to make a confession: I have a bit of a nerdy obsession with Content Management Systems. This probably stems from the fact that I’ve built several, worked with a number of internal bespoke systems, and have also been involved in implementing an off-the-shelf solution for a number of large sites. As an addition, I’ve also worked with—and built—several blog publishing systems, which can be viewed as the most basic bespoke CMSs. The upshot of all that is that I’ve spent so long on CMS related problems, solving them has become a rewarding experience.

Recently, I’ve been building a new blog platform, in Django, called “nef-blog”. It’s nothing special; just a quick self-build solution that will get me off of Wordpress. However, I’m still not entirely happy with it, since it will still be building my blog pages at request time (otherwise known as “frying” pages). This seems like a needless overhead and, for good performance on popular posts (I do have some), will probably still require some form of caching solution. I’d much rather have the choice of implementing a mixed fried and baked solution—where “baked” pages are generated by some form of printing process, and the output is stored on the file system and served at request time.

Several of my peers have also recently been building baking (or “static CMS”) solutions—most of which are available for perusal on GitHub, despite being in varying stages of completion:

This has inspired me to attempt to develop a new CMS; but before I do that, I thought I’d lay down a sort of treatise of things to take into account when designing and developing a CMS. These are simply my own thoughts on the subject, and I’d definitely welcome some discussion; I’d definitely like to be able to update this post in the future with new information garnered from the web developer community.

Included in: CMS, Development, Idea, The Future, Thoughts, Tools, Web

Categories:

  1. Accessibility
  2. Agile
  3. Ajax
  4. Apache
  5. API
  6. Architecture
  7. Books
  8. Browsers
  9. CMS
  10. CouchDB
  11. CSS
  12. Design
  13. Development
  14. Django
  15. Email
  16. Events
  17. Gaming
  18. Grammar
  19. Hardware
  20. HTML
  21. HTTP
  22. Humour
  23. Idea
  24. Information Architecture
  25. JavaScript
  26. jQuery
  27. Lean
  28. Life
  29. Linux
  30. Literature
  31. Mac OS X
  32. Management
  33. Meme
  34. Microformats
  35. Monday
  36. MySQL
  37. Networking
  38. News
  39. Personal
  40. Photoshop
  41. PHP
  42. Process
  43. Python
  44. Reference
  45. REST
  46. Science
  47. SEO
  48. Server
  49. Site
  50. Sitepimp
  51. Social
  52. Spelling
  53. Syndication
  54. Testing
  55. The Future
  56. Thoughts
  57. Tools
  58. Tutorial
  59. Tutorials
  60. Typography
  61. UI
  62. UNIX
  63. Virtualisation
  64. Web
  65. Web Standards
  66. Widgets
  67. Wii
  68. Writing
  69. Xbox
  70. XHTML