This post originated from an RSS feed registered with Python Buzz
by Ian Bicking.
Original Post: CMS and static publishing
Feed Title: Ian Bicking
Feed URL: http://www.ianbicking.org/feeds/atom.xml
Feed Description: Thoughts on Python and Programming.
I've been working on a content management system for use with our
clients. The system actually preceded me, but we undertook a complete
rewrite for this next version. So we came in with certain
architectural decisions already decided, and static publishing was one
of them (i.e., the CMS publishes to files which Apache serves
independently from the CMS).
While this always seemed like a pretty reasonable technique, I'm not
sure if it would have been the first thing to occur to me. A more
dynamic system (like Plone) seems a lot
easier and more general. At least, easier if you do the Right Thing -- the naive approach is easy with a static CMS, but the naive approach fell far short of what we needed, which is why a rewrite was required.
But now that we are getting close to going live with the CMS, I'm
very happy with static publishing. A big part is that it takes
the pressure off of going live. I can be sure before going live that
the public website is correct. The actual CMS may explode in flames,
but the site will be fine. Going live with a web application is
always a stressful process, and anything that reduces the stress of
that is a great benefit. As time goes on, static publishing is also a
big stress reduction for the system administrator, since a simple
Apache configuration is a lot more reliable under different loads and
configurations than any dynamic site will be.
Another benefit is that it's really easy to migrate existing sites
into the CMS -- the pages only need to be as structured as you want
them to be, and you can import the entire site verbatim if you really
want, applying structure and template later. Anything that allows incremental processes is a big +1 in my book. Maybe that makes it +2.
This has also freed us up to do lots of tweaking of the system and UI. Unit tests have been very successful at giving us a solid
foundation, but the user interface is very difficult to test,
especially as it gets constantly tweaked. Inevitably there are bugs.
If the CMS interface had to be as stable as the public site (which has
to be extremely stable), then I'd be very nervous about the changes we
are making late in the game. But I'm not worried, because the
application remains Stable Enough, and it lets us make significant
improvements instead of going into a long, deep pre-release freeze.