Build Design Systems With Penpot Components
Penpot's new component system for building scalable design systems, emphasizing designer-developer collaboration.

Giant Robots Smashing Into Other Giant Robots | Will H McMahan
Ghost is a publishing platform, great for personal and professional projects.
Since 2013, the Ghost team has been building a robust tool for crafting content
and sharing it with the digital world.
I first begun using Ghost as soon as it was publicly available and have seen it
grow in to a fantastic solution for the needs of many clients and friends. In
the second half of July 2017, Ghost v1.0.0 was released, and with it came
numerous updates to the editing experience, a refreshed UI, and ever increasing
control of how your work appears on social channels like Facebook and Twitter.
During the past year, we’ve had the opportunity to work with a number of clients
looking to make their blogs better
for their visitors, as well as their authors
and staff. For many of them Ghost was a great fit, and you can check out their
features page to see if what it has to offer meets
your needs. Here’s a quick rundown of some key features that often fall in to
the “must haves” when selecting a platform for a blog or site:
Ghost isn’t a blunt instrument that works for every project, but can be the
perfect tool for the right job. To that end, we created our own
Ghost theme template to
help creating your ghost theme a little easier.
Ghost’s default theme is called Casper.
It’s a great theme for getting started using ghost and making your own blog.
However it’s got a substantial amount of code and structure making it less than
ideal for as a starting place for creating new themes.
For this walk-through we’re going to be using thoughtbot’s
ghost-theme-template,
who’s structure is based on that of Casper, with all CSS, and non-essential
html removed.
Ghost (and subsequently Ghost themes) have a few core concepts from her which
they build their structure. Most of these are standard elements of any blogging
engine or platform.
You also have the ability to customize the login pages for Ghost, but doing so
is typically unneeded for the majority of projects.
The basic document and directory structure of Ghost themes is very similar to
that of most simple web applications. Here’s an outline of the primary files
that make up a Ghost theme.
/assets
: Your theme’s asset directory./partials
: Your theme’s partials directory.
loop.hbs
: The “loop” is the primary post loop. This loop will be used anysite-header.hbs
author.hbs
: This is the author page. It contains the author’s name, avatar,default.hbs
: This is the main layout template file for all pages like theindex.hbs
: This is the index/home page. It contains the primary loop
thatpage.hbs
: This is the template for pages (not posts). The overall structurepost
template, but can be customizedpost.hbs
: This is the template for your posts. Not much to say here; make it great!tag.hbs
: The final template is for your blog’s tag pages. This page containsghost-theme-template
uses Gulp to add some basic quality of life additions to
your ghost theme development workflow. It comes preconfigured with a few tasks
to get you started. To get the theme up and running you’ll want to cd
in to
the theme directory and run npm install
to install the theme’s dev
dependencies. If this is your first time using Gulp, be sure to checkout the
getting started docs.
gulp
/ gulp default
Once the project dependencies have been installed, you have a few tasks
available to you. Running gulp
will compile all SCSS files within the /scss
directory. The theme also has Bourbon and
Neat preconfigured, as well as
Autoprefixer. No assembly required. Gulp will
also run JSHint on any of your javascript within the
theme’s /js
directory. Once both the asset tasks have been run, Gulp will
continue to watch for changes until terminated.
gulp deploy
So this is the cool part. Running gulp deploy will compile all of your assets,
zip up your theme so you can upload it to ghost (themes can be added to ghost by
way of the admin by uploading a zip file in settings), and will run Ghost’s
official validator, GScan, which will scan
your theme for common issues. If GScan detects any incompatibilities between
your theme and Ghost, it will print the results to the console after the deploy
has completed.
As you build your theme, you’ll want to be running Ghost locally so you are able
to quickly iterate and review changes. Check out the Ghost documentation’s
Set-up Guide
for more info on running ghost locally, but you will first need to install the
ghost-cli.
Once your system is set up, it’s easy to dive in to your projects and generate
new local blogs on the fly.
After you’ve finished your awesome new theme, you can either host your own ghost
instance or use Ghost’s official hosted service
(I do). Once your production app is set up, just upload your theme and your new
blog is ready to go.
If you hit a snag, the Ghost Slack channel is a
lively and helpful community full of people willing to help you get started.
GLHF 👻
Sincerely yours,
Will H McMahan
AI-driven updates, curated by humans and hand-edited for the Prototypr community