KeystoneJS - Why I moved to Ghost

Prior to using Ghost I had rocked up a KeystoneJS blog. I had looked around and install a couple of NodeJS based CMS based on this post Best node.js CMS in fairness it was just the first one on Bing.

Originally I was using the iisnode module to run the node process as part of iis. There are some good thing that come with it but it does limit the list of CMS that I could use as a lot of them create their own clusters which issnode does not support.

I got down to KeystoneJS and it looked promising. The installation was very simple, it just worked. So all good right, followed the yo generator, pretty straight forward, got the Mandrill and Cloudinary accounts. Few perm issues for some reason loading static files, seem to work if you refreshed the browser. Some caching issues with iis. All manageable.

However the actual user experience was just really meh. For example the button to add a new post seem to only become visible after a another post as if it was going back to the server to check your authorisation, fine right, but there is only one level of authorisation, can you access the admin ui or not. Anyways it was playing up, very slow to load, so much so Cloudflare was giving me gateway timeouts.

I put this down to iisnode so started looking at ways of just using iis act as a reverse proxy to the node services. I run a number of different domains from my server. So its pretty simple to do this using urlrewrite, might do another post on that. The other issue that had to be solved was managing the node process, ordinarily I'd use Forever to do that, but how do you do it so that it will start when the server starts up, solved that. Good to go.

Still, the performance from KeystoneJS was brutal, a second to load a page with every resource on the same box. Another thing was the massive memory footprint, 275mb on start up and 488mb after 24 hours. Not really on. Lastly the functionality was really very basic. Admittedly Auto-generated UI feature was pretty good but not worth it.

That is why I moved to Ghost.