A few months ago, John O’Nolan surprised the WordPress world with his idea of creating a whole new blogging platform called Ghost. The theory in his mind was that the WordPress ecosystem had spent too much time focusing on turning WordPress into a CMS, and had lost touch with its origins in blogging.
Though his ideas were echoed positively by many in the community, a few saw the idea behind Ghost as a potential rival to WordPress. Most of the higher end enterprise clients who use WordPress still maintain it as part of their blogging ecosystems.
I will try my best to take a look at the code and explain what Ghost appears to be…and what it is not.
What Ghost is…
Ghost is a new blogging application that, from the offset, is an almost identical—but trimmed down—implementation of WordPress form and function. It does not use any original WordPress code, but after reviewing the source I can see the authors borrowed heavily from the ontology using terms and concepts not necessarily created by WordPress, but that we would associate as established WP Codex methodologies.
It’s written in JavaScript and is using a Framework called Node.js and uses the Node Package Module (NPM) to do server side processing and interpretation of the application much in the same way WordPress uses PHP to handle its back end processing.
It appears to also use Phantom JS and Casper JS as part of its library structures. Its first default theme is also called Casper, which tells me that there will probably be many Ghost themed names being derived from future generation of upgrades.
The interesting thing about Node and NPM is that it’s based on JavaScript so it may attract many developers who’ve been doing nothing but front end development, and have mastered JavaScript, but maybe never got around to familiarizing themselves with PHP. Having one programming language for front and back end development can be appealing (CSS and HTML are mark up languages, there’s a slight difference).
Instead of MySQL, Ghost uses SQLite3, which is basically a flat file based database system intended for more mobility. So instead of having to backup your database along with your content files when you backup WordPress, any backup of Ghost would already include your database as it’s kept and stored under the content/data folder of your application.
It’s not the most powerful database in the world and tends to create a lot of database lock out errors in your code if you’re not careful, but if you’re just feeding static blogging content to users I can see the benefit of mobility and ease of installation.
The guys at Ghost have also provided a Vagrant deploy script so you can very quickly and easily play around with it on your local machine, and much the same way I’ve done with WP-Chef, you could potentially use it to deploy your Ghost application to one of the many Vagrant cloud providers.
John O’Nolan also seems to have partnered with some of the big players in the WordPress space including WooThemes, Envato, MarketPress, as well as others such as Microsoft and Code School. With all of the hype around this application, it’s easy for people to think that the lines are somehow being drawn between WP and Ghost, but the reality of it is that this is actually good for the WordPress community and here’s why:
What Ghost is not…
Ghost is not a WordPress killer. It took the WP community almost 10 years to get the footprint it currently has on the internet, and though the future is still up in the air for any platform, you won’t see it taking away WordPress market share anytime soon. Ghost is still in its 0.3 release so it’s a long way from being 100% stable. Since it doesn’t share any of the WordPress codebase, it will have to create and establish its own Theme and Plugin ecosystem separate from WordPress.
Since Ghost is looking to remain a blogging platform as its competitive advantage for the time being, it’ll be interesting to see what it allows or doesn’t allow in its official repositories. Though its use of all things Git and GitHub may mean that they may take a more open approach to listings and approvals, we’ll have to see.
Node is a great platform if you are writing something that needs serious socket support—like a chat application of some kind that needs a constant communication port opened with the server—but it wouldn’t have been my first pick for creating a blogging platform. My first impression is that the choice of using the NPM and Node had more to do with simplifying things for JavaScript developers doing front end work than anything else. Although the possibilities of using the open socket capability to make a Ghost site a more dynamic and real time application could be a factor in choosing the platform, but I’m not sure how that would conflict with the blog only promise.
From my experience in software engineering, people are always attracted to new and shiny objects (sorry old OOP joke). And as it is, Ghost is the new kid in the block and doesn’t have the legacy code associated with WordPress, but it’s still got a steep mountain to climb if it wants to stick around.
It’s hard to run a good Open Source Project where all sides agree on everything and this is why projects get forked or split. Yet competition is good, even in the Open Source world, because it creates both opportunities for people to enter a new space and become experts, and the ability for others to learn from the new competitor and improve existing software.
What does WordPress need to do…
The truth is WordPress is already doing it. We are beginning to see the creation of smaller development teams for things such as MP6 and the new Dashboard that take many of the original ideas described by John O’Nolan and apply them to the WordPress platform very intelligently. I personally enjoy Eric Mann’s take on how The Future of WordPress Lies in its past; if you get a chance watch the video where he discusses some great ideas coming to WordPress in future versions. I personally envy anyone who has a job that allows them to focus on committing to WordPress Core code full time.
I have no doubt that other things will come down the pipeline that will more quickly and more efficiently improve WordPress for the better because of all of this. Ghost may be more nimble and quick right now, but as with any other major Open Source Project, these two will feed off each other’s innovation and the winner will only depend on who is able to maintain the more free and open community—and, for now at least, WordPress is doing a great job at accomplishing just that.
For more details about Ghost or what WordPress is doing feel free to join the conversation at Advanced WordPress or leave a comment below on your thoughts about all of this, looking forward to hearing from all of you.
Michael Bastos – Self & School taught C++, Java, PHP, Perl and Ruby Open Source Developer working as a Software Engineer for SPAWAR Research (G2 Software Systems) with a BSCS degree. Started using and developing on WordPress in 2009 and started the AdvancedWP.org community in 2011 which now has over 1,400 members world wide across 3 social networks. Has spoken at over half a dozen or more WordCamps on a range of advanced topics. Message him on twitter @bastosmichael
13 Comments