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

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:

Sub-optimal web content workflow used by many agencies

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!

Pushing a local git repo to a bare remote

Often I create a git repo locally, but then want to push it to a remotely hosted repo.

On the server, create a folder and move into it, then:-

git init --bare

Then in your local git repo:-

git remote add origin ssh://username@yourserver/path/to/repo.git
git push --all origin

(this assumes your remote repo is accessible via ssh)

Posted in git

Analysis of my social media usage

Over the last couple of years i’ve tried to rationalise the way I use various social media sites, and I realised that how I use a service has evolved over time.


I think flickr was the first social network (of sorts) that I signed up to, in 2005. It was the instagram of it’s day, but with an important difference in that people uploaded whole galleries at a time. It made a real feature of the use of tags, so that you could follow an event, or add contacts and follow their streams. I even signed up for a pro account to allow me to create more galleries. I’d also use it as a blog/ diary – frequently posting pictures of the coffee or beer I was drinking (like I say – the instagram of it’s time). I kept twitter for personal/ creative use, rather than posting family pics, baby photos etc., but the fact that it had a permissions system meant that I could restrict content to people marked as friends if I wanted to. I’m not really using flickr now, and am shortly to let my pro membership expire – it doesn’t offer me enough as a paid service, it’s hardly changed over the last few years, it feels clunky to use. Also, alarmingly it also seems to be full of really good photographers, which doesn’t fit in with my desire to post grainy camera phone pics of my food, like I now do on instagram.


I also dived into facebook in 2005 (I think), and pre-twitter, most of my friends were from the web industry, and I used it mostly like I do with twitter now, for joining in conversations mainly about building web things. As it became more mainstream, I started using it to keep in contact with old friends and current non-techie friends, and it became a strange mix. I was also getting friend requests from people i’d never met, and as facebook became more.. err… social, I started to trim my contacts down to only people I had met in real life. When twitter took off, many people had their twitter and facebook status updates synchronised, and this started to drive me mad, seeing the same things over and over, so one night I deleted pretty much all my web industry friends (all of them were on twitter anyway), stopped posting anything techie to my status updates and embraced it as a way of keeping up with non-techie/ web industry friends (old and current) and family.


My twitter use hasn’t evolved that much – I post less pictures of my food and coffee than I once did (as i’ve already mentioned, I have instagram for that now), but due to it only having basic privacy settings, I tend not to post any family pictures, and am pretty guarded about posting anything personal. It’s mostly for technical discussion, but is also social, as of course some of my web industry friends have become good friends out of work (but still tend to talk shop down the pub). The thing I still really hate about twitter is that there is no native “mute” function (although it exists in some twitter clients), which means that I tend to unfollow people if they get a bit noisy tweeting from a conference or something, then by the time you go back to follow them again, they’ve been offended and decided to unfollow you back! I have to say facebook is much better for dealing with this kind of thing – you can anonymously mute people, and it’s much easier to group people and select who sees what. Twitter has lists, and i’ve tried grouping people into lists, so I can choose to only see tweets from certain groups of people, but it has no prominence as a feature in the native twitter UI, and people feel sidelined if they are only on a list and not on your main timeline.


I was late to the party on this, only starting to actively use it in the last few months, but just like flickr back in 2005, I use it to explore my creative side (mediocre pictures of clouds, coffee and food), and as a kind of diary, to remind myself what I was up to, and where I had been. Instagram public profiles have just arrived, and this has made me feel unsure about how I want to use instagram. Even though initially my pictures were set to public, it still felt like a fairly private personal thing, that I just shared with a few friends and web industry aquaintances, so i’ve set it to private for the time being. I don’t really want or need to showcase my instagram pictures to the general public, but occasionally I will post them over to facebook or twitter. So not sure which way i’ll go on that – if I do choose to make it public, i’ll be less likely to post any family or personal stuff, and there’s only so many cloud pictures my instagram followers can take!