A Ghost starter theme
Clean-up welcome mat
Move official repo to sourcehut
Update package.json


browse  log 



You can also use your local clone with git send-email.

Ghost Compatability

#Undefined — A starting point for Ghost theme developers

#!!! THIS PROJECT HAS MOVED TO https://git.sr.ht/~curiositry/undefined-ghost-theme !!!

This starter theme has everything you need to get started making themes for the Ghost blogging platform.

Looking for a nice theme that’s ready to go? Check out my other themes, Mnml (free), Laminim (premium), and Weblog (premium). If you would like to support my work developing free Ghost themes, use this referral link to sign up for Ghost(Pro) hosting for your blog.


  • Bring your own CSS. Front end developers are persnickety about their CSS frameworks: Some write everything from scratch, some roll their own framework that they use in all their projects (in my case, Sassify), and some use Bootstrap or Foundation or the current framework-de-jour. Undefined leaves all the styling to you: just drop your styles in main.css and you’re ready to go.

  • Responsive! Because plain HTML is responsive by default.

  • Ready for Ghost 5.0 and beyond. With undefined as a starting point, your theme is ready for the future.

  • Super modular. Undefined makes use of handlebar partials to break things into neat, self-contained modules. Don’t want a subscribe form? Remove the subscribe-widget module without code-surgery.

  • Ready-to-roll. Everything you’d expect from a Ghost theme is built in: A homepage with post teasers, author pages, tag pages, navigation menu, subscribe form, metadata, and more. Free cars don’t often come with gas in tank and air in the tires!

  • Smart defaults. You can customize undefined in a thousand different ways, and it makes the job easier by being as close to neutral as possible. It’s like a dark grey suit — it’s not flashy, but it can go anywhere. You get a menu with a list of links, a little author bio below each post, reasonable metadata below the title. You get a footer with copyright date and theme attribution. You get all the files that Ghost requires (post page, index, etc) to run, plus all the files a blog needs to be complete (tag and author pages, etc). Nothing fancy, but very respectable.

  • Cleanly coded and comprehensively commented. The code is nice and clean, W3C valid, and scores "A" on Google pagespeed.

#Getting started

Getting started building on Undefined is as easy as one, two.

  • { 1 }: Download this starter theme by clicking here, or clone it with Git:
git clone https://github.com/curiositry/undefined-ghost-theme.git
  • { 2 }: Add your custom styles. Open up main.css and add your styles. Or, fire up your CSS pre- or post-processor of choice and replace main.css with your compiled stylesheet.

If you plan on using the enabling memberships and subscriptions, you will also need to upload the included routes.yaml from the "Labs" tab of your blog’s admin panel.


Undefined is completely unstyled: no custom fonts, no fancy colours, no nothing. The beauty of undefined is in the code, not the design. But unstyled HTML has a rugged beauty of its own — in fact, to my eyes it looks better than many of the digital junkyards piled high with CSS + JavaScript “modern” websites!

Screenshot of "undefined" — a starter theme for Ghost