In building my old website, I wanted a simple content management system (CMS) for managing posts with a focus on projects and articles and notes. I built a theme using Ghost and Bulma to do it!
2022 update: This is now outdated! I redid the website again, and itβs now powered by Notion π.
This website used to look like this, and I built it on top of Ghost!
Technologies
- Ghost is a content management system for publishing platforms, built with Node.js and Handlebars.js Templates. It has a pretty solid editor and control panel for managing users, posts, and pages.
- Bulma is a frontend CSS framework and was used for styling.
- Commento is the library used for commenting at the bottom of posts! It's open-source and privacy focused and allows social login through Google / Twitter / GitHub. Applause was used for the π claps button.
Why Not WordPress?
WordPress is the most popular content management system for blogs and websites like mine, but I decided against using it.
- I wanted a more lightweight platform with more control. WordPress has a larger ecosystem and footprint than I needed. I mainly needed an editor, posts, and tags system and didn't want to reinvent the wheel.
- Ghost has a slightly better software development experience, e.g. compare this WordPress theme (PHP) to this Ghost theme (Handlebars Templates) and see which you like better.
- For non- software developers: WordPress is still a great website platform since it has a large plugin library and support system. Generally, you won't need to program anything because there's themes or plugins out there to do what you need. It's also a tad cheaper than Squarespace, Wix, or Weebly, popular website builders. I've used it for osutriangle.org and other websites in the past.
Caveats about Ghost
- Ghost has no third-party one-click-install plugins. You can extend functionality by editing the template code or adding JS scripts.
- Thus, Ghost requires some more development experience, as you're editing a lot of frontend JavaScript, Handlebars templates, and sometimes Node.js code by hand.
- Ghost's Templating Documentation isn't super thorough and I ran into a few confusing templating context issues bugs.
Why Not Medium?
- Originally, I was thinking about publishing on Medium and leaving this website as a portfolio one, and I really like Medium's website, editor, and content. I'd probably also get more views on Medium from recommended content traffic. And there's a way to monetize content with their Partner Program.
- But their editor is a little restrictive in that you can't have HTML snippets or custom JavaScript. I wrote custom code for special tags and syntax highlighting!
- Additionally, I wanted to be able to separate my content into Articles, Projects, and Notes, and be able to control URLs, like
wustep.me/notes/welcome
. Medium wouldn't be as helpful for having a portfolio of projects or notes; its UI/UX is suited for just articles.
- Their Partner Program seems great, but I didn't want my articles paywalled either, requiring users to have a subscription beyond their 3 articles/month free member previews.
- That said, Medium is still really great if you're just looking for a regular blog and don't need any special URL routing or separation of content.