You’ll be attending my workshop on Ghost at Bath Digital Festival 2014. I am incredibly excited, and somewhat anxious about it, but it’s going to be gallons of fun! That said there’s some prep work that needs to happen before we can begin. Here’s what you’ll need:

  • node.js 0.10.23+
  • code editor of your choice (I use Atom or Sublime) (so we can edit theme files)

How to check

Write node -v on the command line. If that tells you the version, and it’s higher than 0.10.23, you’re good. Bear in mind that 0.11 versions will not work as they are beta releases! If you need to install nodejs, see here: downloads page on nodejs.org.

Download latest Ghost

Here’s the page to download it from: https://ghost.org/download/.

That version has every asset already compiled and minified (read: css and javascript are all ready to go without you needing to do anything else with them. You’ll still need to install the npm packages).

Verify you can start Ghost

  1. Create a folder for your Ghost files, and extract your files there. It should look like the picture below. I put mine in ~/Sites/Ghost-DL (short for DownLoad). It does not matter where you put the files.
  2. In terminal, cd into the folder, and run npm install --production. That will install all the necessary packages Ghost depends on.
  3. Run it with NODE_ENV=production npm start. The NODE_ENV is important.
  4. In your browser, go to http://localhost:2368/ghost. If you end up with http://localhost:2368/ghost/setup and a setup page, everything is fine.

The contents of Ghost directory


A rough sketch of what I’d like to cover:

  • General usage of Ghost. What’s what, how does it work, let’s get familiar with it.
  • What is this Markdown thing? Syntax, usage, etc.
  • Slightly more advanced usage: keyboard shortcuts, post settings menu (PSM), overview of settings, configuring email
  • Crash course in handlebars.js, which we use for theming
  • modifying Casper (default theme)
  • "hax": stuff that are a bit advanced when it comes to themes: embedding tracking, using static pages to show a preview to someone before publishing as blog post, coercing Ghost to use thumbnail images, embedding disqus
  • what is nginx / apache / proxy and why do you need it? (you don’t for the workshop)
  • limitations, and how to get started with contributing
  • continuous Q&A
  • bonus: I can tell you why / how Ghost is different from WordPress ;)

See you at the workshop!

Gabor Javorszky,
volunteer core dev