Ghost: just a blogging platform in node.js

I’m checking out Ghost, a newborn node.js blogging platform focused on the user experience, these are my first impressions, as user and developer.



The installation instructions are easy, especially for test environments, since nodejs doesn’t need a webserver like nginx or apache, and Ghost can use sqlite as db, so the simplest complete stack to run Ghost is just nodejs.

OT: I can’t work from in the terminal with something named Ghost and not even mention “Ghost in the Shell“, one of my favorite sci-fi anime films. If you don’t know it you should definitely watch it!

I spinned up a Ghost workbench at on the same vps that hosts this blog, a couple of other WP sites and some test projects, in a Digital Ocean droplet (if you are looking for an easy vps for small project Digital Ocean is great, you can use this link with my ref code)

Installation on a production oriented environment can be more elaborate, i.e. in my vps I already have nginx on port 80, so nginx is set up to proxy the connection to the unix socket Ghost is listening to, nginx can also be used to serve static files directly; to ensure that Ghost stays alive I use forever, configured as an upstart service. I use vagrant+chef to configure this server and its all on github: For heavy usage you’ll also need a standalone db, but for me sqlite is enough.

Features, interfaces and experience

Ghost is very much a work-in-progress, the feature set is minimal for now, but you can already appreciate the admin interface simplicity. You can get a taste of the current and future features at and The aim is a lean non-bloated blogging platform and I appreciate it.

I really enjoy the clean and slick writing screen with markdown syntax and live preview. It’s easy to see the effort for experience and details, i.e. it has built-in support for saving articles with cmd-s, it’s something a lot of more mature projects don’t support natively.

Developing on Ghost

Node.js uses different paradigms compared to other popular web languages like php and ruby, it’s not trivial to structure async code in big project and it risks to be a callback hell. Ghost uses promises with whenjs to ‘linearize’ the control flow, it also use popular building blocks like express framework, bookshelf orm and handlebars templating. It’s looking good, some parts still looks messy, but at this stage is understandable.

For contributing to the core there are already lot of guidelines and tips, the CLA is pretty standard and not shady. At this stage the core is evolving quickly, so maybe its not practical for casual contribution; the dev documentation is lacking, there is a roadmap for milestones and releases, but is not very clear on the implementations and code architecture choices.
handlebars logo
Theme development leverages handlebars template, it looks easy and clean, it’s documented here. Right now the theme features are limited and themes are just a collection of views and assets.

The plugin API is WIP and still not ready, I gave it a shot anyway and I wrote a ghost plugin for syntax highliting. I’m looking forward to a more powerful plugin framework.

WordPress vs Ghost

Different products for different targets, WordPress is more than ever a complete CMS and a publishing platform, Ghost aim to be a lean platform for blogging.

For many WP sites Ghost is not a competitor, for simple blogs it sure is tempting. I also see it as a valid alternative to static sites generators as jekyll for some usages: its still a no frills solution that doesn’t require much infrastructure, but it’s much more convenient to use.

When is a bit more mature I might even use it here on this blog :)

SongTsu: from Whymca to the Maker Faire

In May 2013 I took part in the Hack Reality 2 by Whymca, an hackathon with very interesting APIs and devices, I teamed up with other devs and electronics experts and SongTsu was born.

We used a wearable matrix sensor, openpicus, blackberry and steremood API to create a system to make easier to give shatsu massages and play music selected depending on the massage pace, it was fun and we won the first prize and some sponsor prizes!

The matrix was attached to the openpicus with the wifi module, then we build two mobile apps that connect to it, one that shows whats being done and gives tips, and one that adds the music experience. You can read all the details on

In the last months we improved the idea, the electronics and the apps, and our work will be presented at the European Maker Faire in Rome next weekend!

So if you are going to the Maker Faire stop by to say hi (to the rest of the team, I’ll be at WordCamp Europe), otherwise check out some code on

WPday 2013 Bologna: wp-cli

The first WPday was a success, with a professional public it was possible to have a more technical track and interesting conversations during the breaks, thanks to everyone that took part to it for the great event! I hope you enjoyed it too!

As pugBO we were very satisfied with the result and we’ll definitely organize other events beside our usual monthly meetings, follow us on @pugBologna or to keep updated and join the conversation on

wp-cli: WordPress Command Line Interface

Wp-cli is a command line tool to manage WordPress and ease development tasks, an essential part of your toolkit if your work involves WordPress. Get it at

During the presentation I showed a live demo of some functionalities, so I added some slides with the examples we saw (white-on-dark slides).

If you have any question or feedback don’t hesitate to contact me!

WPday Bologna 2013 and WordCamp Europe

WPday Bologna

banner-wpday WPday is an event for WordPress developer and designers that will take in Bologna on 13 Sept 2013. Is organized by GrUSP, the national PHP user group, and pugBO, the local one, which I am part of.

I’ll be talking about wp-cli, a great command line tool for WordPress professionals and power users. Don’t miss it!

WordCamp Europe

I’ll also be at WordCamp Europe in Netherlands in October as a volunteer, this doesn’t need an introduction, you just have to know it’s the biggest and most awesome WordPress event in Europe. Hope to see you there!

BP-Moderation 0.1.7 compatible with BP 1.7 & BP 1.8

BP-Moderation 0.1.7 is out, and it’s compatible with the two most recent BuddyPress minor versions.

The moderation admin interface has been moved in its own top level admin menu item, to address the removal of the BuddyPress menu item that was used as parent for BP-Mod item. No new features, just a maintenance release.

For issues and feature suggestion open a ticket at

Next in the roadmap:
* test current version against wp 3.6
* work on the refactoring

BP-Moderation is broken. Help fix it!

I’ve been out of BuddyPress game for a while, mainly because I’m not using it on websites I curate or work on, and I was committed to other projects.

While BP-Media is maintained by other developers, I’m the only one working on this plugin and I have received emails about it not working on the latest versions of WP and BP.

I started to look into it and the dev version should now be working on single-site installs, Today I’ll test on multisite and fix it.  I can’t devote lot of time to it right now so any help, tester or developer, is appreciated.

The development version is now on GitHub at, if you are not confortable with git you can get the zipped dev version at
Stable versions will be tagged in WP official svn repo.

How can you help to get it fixed?

I found out that BP-Moderation codebase is messed up, with logic and template mixed together and some singleton black magic to load the main classes, can’t understand how it seemed a good idea when I wrote it years ago, at least is not really extensive so its workable.
I started a new branch 0.2 for the refactoring, it will target PHP 5.3+, WP 3.6 and BP 1.8, maybe WP 3.5 and BP 1.7; the 0.1 branch will be compatible with BP 1.7/1.8, but won’t get new feature or compatibility with later BP versions.

Day 1-2: Postojna

Bologna -> Postojna

We departed from Bologna in the morning of 20 July, taking 300km of motorway to Trieste. From there we planned to avoid the Slovenian motorway because we only had to do short parts of it and the tolls are weekly or monthly, so we tried to follow the county roads, but signs were not helpful at all. After some trial and error I managed to find a southeast passage to Postojna using mostly the sun, valleys and high voltage transmission lines (they are not on the maps, but they are usually between areas with high population/industrial density).


Postojna is a nice town, it’s not very big and there is not a lot to do other than visiting the caves and the castle. It seem to be the only city in Slovenia with open and unlimited wifi over most of the city, and I’ve definitely appreciated that. The landscape is karst and green hills.

Postojna Caves and Predjama Castle

There are 21 km of caves on three levels, on the lower one the Pivka river is still doing its geological erosion work. The guided visit is 1 km long and is 2 km into the caves, you are taken there and back by a little open train. Unluckily photos are prohibited during the visit, so I only have the few I took from the train and at the end, so you’ll not see here the best parts.

All caves are rich of stalactites and stalagmites, in different colors depending on the impurities, but what stunned me most was that some of them are impressively huge, like a an imax theatre or maybe a small soccer stadium. I thought there were more holes in that mountain than in swiss cheese.

Predjama castle is a medieval fortification built in several stages partly inside in a huge cave. A legend tells that Erazem used this position to withstood a siege for a year, even getting fresh supplies using a secret tunnel that start from the cave.

Check also my girlfriend post on Postojna Caves and Predjama Castle (italian).

On the map:

View Croatia Motorbike Trip – Summer 2012 in a larger map

Croatia on the road

I’m travelling Croatia by motorbike (BMW F650GS) with my girlfriend, she took with us her netbook to post on her blog about the travel so why not post some info and photo here too? My site have been semi-dead for some time anyway, some fresh content will be nice.

We already did half of the trip but I’ll start from the beginning and make sevaral posts, so they won’t be real time and I’ll still be writing them after the trip is finished.

You can read my girlfriend posts on this trip in Croatia on her blog, in Italian.

The Route

This is the route we planned (clockwise) and it is a good approximation of what we ended up doing, I’ll probably do another precise map with suggested spots while I do posts for trip legs.

View trip croazia 2012 in a larger map

Planning and Departure

This is our second long trip on two wheels (last summer we did 2800km on the alps) so we were confident about the bike, distances and luggage. We booked rooms/apartments beforehand on airbnb, booking and hostel sites, we also booked an hotel with a groupon, leaving only some holes to the end of the trip.

We started our journey on July 20, we planned a 20 days route. Travelling in two on only one bike we had to fit lot of things and we needed to use lateral luggage, rear luggage+bag and tank bag; bike is heavier and larger so it loses some agility, it’s still an enjoyable ride, but it can be wearing on long distances.