A 2-post collection

Off with their head! The decoupled CMS model

There has been increasing buzz recently around 'headless' or 'decoupled' content management systems. In short, remove the presentational aspects of your content management system in favor of robust API support 1.

ALA On Air recently hosted a panel that spoke about this at length.

The key lesson for us was that a headless CMS helped solve a problem. We didn’t dive into headless CMSes because it was trendy, we did it because we needed to solve specific problems (in the first case an aesthetic/creative one, and in the second a data-management one). The other important outcome was that we could let each piece of the project do what it does best—by letting the CMS simply manage content, we could use better tools for rendering the presentation layer

Whats problems can we solve?

Performance: Let's take WordPress as an example. About one-fourth of content on the entire internet is managed and displayed using WordPress. It's no secret that the long lifespan and extensive feature set that comes alone comes at a pretty hefty price for performance.

While it may be just fine - and frankly, typically the right choice - to use WordPress' robust templating engine to display your content; other times you may want to simply provide a bit of data to a lightweight app or page.

Portability: If there's one thing API's were made for it's this.

  1. Wordpress 4.4 will have WP-API as part of Core, Drupal has similar tools, heck - even Ghost provides an access API.

A Ghost is Born

A career Wordpress developer switched to Ghost.

I'm a Wordpress professional - there's no way around that one. I spend nearly every day of my life working on, discussing and thinking about Wordpress Core, themes and plugins. I routinely travel across the country for Wordcamp conferences. I have four separate instances of Vagrant running four different combinations of Wordpress version and server stack. Pretty much, I'm drowning in all things WP.

So, naturally, this site is powered by Ghost.

After nearly six years on Wordpress, today marks the launch of a new version of http://darin.co and it doesn't include a single line of PHP. In fact, this server doesn't even know how to PHP. There is no SQL database. I didn't have to tune NGINX, Memcached, Varnish or HHVM.

I'll just use javascript. Thanks, Ghost!

It's just a blog

Incidentally, I've been using post types as an analog for proper document models for years. As such, I have no simple way in mind to manage 'Bits & Beats' in Ghost as I did all that time ago in WordPress.

That's fine. I need to learn to appreciate simplicity.

Wordpress has grown up quite a bit since the days of bbPress. I hopped the train in 2007-ish and never quite looked back. I would like to think I've grown up alongside. Since version 3.0 (or 2.8 depending on who you're asking) - Wordpress has been treated to an absolute feast of features. Features that I use every day; features that save me countless hours each years; featured I have absolutely no need for myself.

One could argue that Wordpress has transcended CMS-status into something of a framework. It's huge. It's powerful. It's grounded in solid software design - and it's too big for its own good.

WordPress isn't for blogs anymore

I said it. Deal with it. It's entirely true. In the same ways WordPress was matured into PHP framework, it has distanced itself from it's heart as a simple blogging platform. The only thing left is the famous 5-minute-install.

Still, Ghost has Wordpress beast.

WordPress is for other people

When you're developing a project with WordPress, you're almost always thinking about some sort of hypothetical end-user. Whether that user is someone who purchased your plugin or a client who has paid thousands of dollars for your attention - WordPress is probably your friend. It does a tremendous job of letting the developers finally rest when a project is 'done'. Invariably, this results in a gradual decline into edge-case-overload-hell.

What about those projects that don't need to be handed off to mere civilians? What about the projects you handle yourself with the love and care of a practical, modern-day developer.


Flat object storage, check. Simple templating system, check. Production and Development environments, check. Platform-agnostic, check. Powerful, check. Robust - check yourself.

In any event, welcome to the new site. I imagine you'll be hearing a bit more about javascript than PHP moving forward.