Another flat-file driven blog/ cms engine on the block

This post was written 2 years ago.
Sat, 24 Nov 2012
I've just been looking at Statamic, which is a markdown-driven CMS and blog, self-hosted and written in PHP. It's commercial rather than open-source, but at a reasonable price, like Perch. It looks reasonably mature and has support for add-ons and lots of cool stuff. I'll probably buy a copy just to mess around with.

If I ever need to build another PHP CMS-driven site, i'll certainly give this a go, as i'm still obsessed with the idea of having content as flat files under source control. I like the idea that you could set up a staging site using something like this, and the client/ project manager could be adding content, and you can periodically log into the server, commit the content to GIT and sync you local dev copy in both directions.

Also, with the end result still being a dynamic PHP site (unlike the static sites compiled by the likes of Jekyll), you can still develop dynamic features into the resulting site and integrate in other PHP modules, e.g. forums and shopping carts etc.

As for what this means for my own PHP text-file driven blog eatStatic, it re-confirms that I shouldn't be putting any effort into building any CMS features in, and to concentrate only on maintaining as a blog engine for my own stuff, and only adding the features I need. I haven't had a look at the blog functionality provided by Stamatic yet, but having built eatStatic to fit my own ideal travel blog workflow, it would probably need some work to make me happy!

I've also mentioned a Python port of eatStatic in the past, and would still like to do something in this area, but I can't help but think i'd be better off concentrating on a module to plug into another blog engine / CMS, to avoid reinventing the wheel yet again. Before I do anything else I want to experiment with all the current static-site generators - to see if there is some way to build on this - e.g. a python app that takes content set up for a Jekyll site and syncs it with content in a mezzanine (or other Django-based CMS).

A quick google around for "python static site generator" has thrown up this: http://ringce.com/hyde
Tags: eatStatic / blogging / CMS / WCM /

Sub-optimal web content workflow used by many agencies

This post was written 2 years ago.
Fri, 09 Nov 2012
I've worked at a fair few agencies in my time, and despite most agencies now using content management systems as standard, the content population and revision workflow is usually sub-optimal:-

  1. Designer inputs the content into a photoshop file
  2. PNG or PDF of the document is signed off by the client, or amends requested, which the designer deals with
  3. Developer copies the content into the CMS (they may need to create some custom content-types or templates to make this work)
  4. If the content needs to change - the designer is asked to change the photoshop document, and back to step 2
  5. At no point will the client touch the CMS, or entertain the idea of a few days training in basic HTML or markdown*

Yes, I think we can all see a flaw with this workflow - no need to point out how things could be done differently in the comments!

* I don't care if your CMS has a really good WYSIWYG editor - it's either too limited or too powerful, so an untrained editor at best will never really get the result that they want, at worst do some real damage!
Tags: cms / wcm / workflow /

More text file based CMS and Blog tools

This post was written 3 years ago.
Fri, 13 Jan 2012
If you were interested in my eatStatic text file-based blog engine, but thought it was a bit techie/immature to consider using yourself, you may be interested in Kirkby and Scriptogr.am.
Tags: blogging / cms /

Site building workflow challenges - keeping HTML in a database

This post was written 3 years ago.
Wed, 07 Sep 2011
I was reminded to today of one of my pet hates - coordinating a site build, or a site rebuild when the CMS you are using keeps content, often containing HTML markup from use of an editor such as tiny mce, in the database.

Consider the following scenario:-

  • You have a staging site where the client has been using the CMS to input content
  • Meanwhile, you make some changes to the database on your local version and want to push them to staging
  • You can use a migration script to push your changes to the live database but you find yourself wanting to also copy the new content back to your local database, so you can work on CSS on real content. You then would probably drop your local database and restore from a backup from staging, losing any test content you put in locally

It's basically a bit of a kerfuffle.

This is one of the scenarios that I hope could be avoided with a CMS based on eatStatic (if I ever develop it beyond a blog engine) - any content-types that contain bodies of text, whether thay are marked up with HTML or not, would be stored on the filesystem. This could be put under version control, so you can selectively synchronise your content with another instance of the site.

I can also see a case for some add-on for any existing CMS - an export function that routinely pushes text content from the db into text files to be kept under version control, and also allows import, allowing instances to selectively sync content.
Tags: eatStatic / sitebuilding / CMS /

What I did and didn't do in 2010 and Plans for 2011

This post was written 4 years ago.
Sun, 02 Jan 2011
It would be rubbish to stop a tradition after only two years, so following on from my posts in 2009 and 2010, here is a retrospective for 2010 and my plans for 2011. I'm changing the format this time, by dividing into "achieved", "carried over", "ditched" and "new".

Achieved
  • Attend at least one web conference - I had an extremely busy year, so didn't get to any of the generic web conferences, but couldn't turn down the international Plone conference, as it was happening in my own city. Although it was specific to a particular open source web content management system, the talks contained enough generic web technology goodness to keep me geeked up to overflowing.
  • Get further than "hello world" with Django - Having collaborated on a django project, i've got further than this now, and i'm also using it for some tools used for managing data and assets for Kudos/ Lightplanet
  • Use and understand some technologies that i've been ignoring - I'm going to claim that as achieved, on the basis of the points above - i've learned plenty about Django, and python in general. This bullet point will always be carried over though, as there is always something new to learn.
  • More on-site freelancing for agencies - It's always tricky finding a balance with this - I did a fair amount of on-site work, but it often got tricky trying to balance my ongoing client work, with the requirement to be on-site somewhere. I'm still open to this, but the other project work needs to take priority, and as such i've started renting a desk in a shared office again.
  • Keep Trading and survive the recession - No shortage of work again, so thanks to everyone who gave me work, but i'll keep my fingers crossed and carry this one over again..
Carried Over
  • Launch a web app - so close on this one, but the manic run up to xmas and self-enforced work-free xmas holidays stopped me releasing my pet project, working title: Eat Static CMS. The name, some may have guessed is a tribute to a 90's techno outfit, but also refers to the fact that the app uses text files rather than a database. It's a basic blogging engine with niche appeal, I will make it available as a beta ASAP this year, as soon as i've tidied it up.
  • Relaunch Too Old To Skate - The site is still in limbo, and still reflects how little i've skated again, which once again I intend to change
  • Attend at least one BarCamp - the Bathcamp BarCamp clashed with Plone conference this year, so I didn't go, but want to get to more grass-roots events this year.
  • Better Customer Service (By saying "No" sometimes) - I wanted to put this on the achieved list, but looking back I took on too much again towards the end of the year, and customer service suffered as a result, so once again i'll try to find the balance in 2011
Ditched
  • Get to grips with Plone 3 skinning - Plone has moved on and so have I, but this doesn't mean i've given up on Plone, but I don't plan to do any Plone 3 work. Plone 4 skinning/ theming is still on my list, but that's a whole new technology, and a technology that can be used independently of Plone.
  • Put up a proper portfolio - I just can't imagine having the time to do this - I think potential clients can find out whether I have the skills and experience they need by looking at this blog and my linked in profile. As i'm more of a programmer than a designer, a visual portfolio is less important to me. Maybe if I run out of work i'll rethink this one?
  • Fix on a PHP framework - until someone (me?) builds a PHP framework that is basically identical to Django, with it's production-ready admin forms and API as standard, i'll just use whatever seems right at the time, or no framework at all.
New
  • Buy a new Bass Guitar and play the hell out of it - I horrified some of my older friends by selling my one remaining bass last year. I sold it as I had completely stopped playing, and having it hanging on the wall just seemed a waste. Most people i've befriended in the last 10 years don't know I ever played. Playing bass in bands used to be an important part of my life - I've actually been playing bass for over 20 years and was once pretty good (if I say so myself!). I sense a mid-life crisis coming on in the next couple of years, so I need to get back in practice for when I inevitably decide to form another band!
  • More "work from anywhere" adventures - I spent 6 weeks touring in Europe with my wife and son this summer, working from my laptop to earn money as I went. It was brilliant, so hopefully more of these adventures, the same or different in 2011
  • More blogging! - including some personal blogging. I think i'll need to divide this site into "babble" and "techobabble" - not everyone who reads this site looking for a CSS hack will want to read my self-indulgent drivel and not everyone who reads the site wanting to know how I really feel about the experimental bass playing style of jaco pastorious wants to read about the new python module i've started using, so i'll provide the opportunity to follow from both a techie and non-techie viewpoint, although it will all still be one blog. Looking back through the archives of this blog, i've been doing this over the years anyway, going through phases of techie and non-techie content.

archived comments
What about skating the s**t out of Kennington and drinking beers in London with your mate a bit more...?

Henry Sanchez 2011-02-01 17:50:52