Mastodon

Ghost Chapter Theme

Want to write several posts about same topic and limited to hyperlinks and single text column? Well, now you're not, welcome Chapter for Ghost!
Ghost Chapter Theme

I have been neglecting my online presence for quite a while, so rebuilding blogs and other publication format where I own the content became rather important for me.

I have always admired Ghost - a non-sucky self-host blogging platform, think Substack or Medium, where you get to decide how your data is handled and what interactions are available.

One other massive upside of Ghost is themes - ability to significantly customise your presence. Not to mention a headless mode, but that's going too deep into it.

Getting the inspiration

I like to consume my content a certain way, and that's usually structured and interlinked. Over the years, both Google Docs and Confluence had two of the most coveted features I adored:

  • Document Outline, as seen in Google Docs
  • Page Tree courtesy of Confluence

If only I could write posts in a similar fashion linking them together in some sort of a Chapter but also be able to navigate on each page using it's Headings. Fear not - Ghost has excellent documentation and expansive theme building capabilities.

Putting in the work

Most of the stuff was rather straightforward. I took Dawn and Journal, two MIT-licensed themes from Ghost themselves, because I liked the structure and they were lightweight.

I then got familiar with Handlebars, Ghost's templating language and got busy building. Copilot did it's fair share of heavy lifting too, albeit it's a bit obtuse when it comes to Ghost handlebars and concept of not being able to ship custom helpers in a theme. Alas, with some guidance it does just fine.

Generally, it was a good experience. The DX is robust, with a local install and live reload, the documentation is well-written and it only took me a couple of days on-and-off to get it to "good enough" stage, thanks to an amazing community, see acknowledgements.

And honestly I'm quite happy with how it turned out. Naturally, there is a lot more to work on regarding surfaces, better UX and micro-animations but I'm not a Product Designer and, for 1.0 and most importantly, my needs, it'll do just fine.

There were, naturally, some gripes but these are best left in a separate place:

My wishlist to Ghost
Outlining my wishlist for the Ghost team to maybe someday address and/or act upon. A person can dream!

Getting it Shipped

Many of my personal projects ended up on a weird limbo, where they were finished enough for me to use but nowhere near polished enough to be shown to the world.

Issue is - my little brain tends to treat these as "unfinished", and seeing great response to my little IPMI thingy I decided to flesh this one out as well.

I present to you - Chapter:

Ghost Chapter Theme
A modern Ghost theme with interconnected Chapters and Outline support, ideal for weekly digests, walkthroughs, guides and tutorials.

Taking money?

I never intend to make any serious money with this theme, however, given the final level of polish and documentation, it felt appropriate to monetise it, and practice getting through that pipeline on my own.

It's surprisingly difficult to sell a file

I honestly thought that having Stripe and Brevo combined would be enough to get this going. Accept a payment on a Payment Link, register a webhook on, say, Zapier, send a formatted email via Brevo and redirect the user to a pre-signed download page. Right?

Turns out, KoFi, Gumroad and BMC exist for a reason. Stripe is damn good at taking payments, Brevo is excellent for sending emails, but Zapier... Zapier has "improved away" an ability to test your integrations in Stripe Test environment:

How do I connect both a Stripe Live account and Test Account? | Zapier Community
I have already connected my live Stripe account.But when I go to connect my test account, I can’t find an option to add my test keys. I even accidentally created a NEW Stripe account entirely in my attempt.When I get to the “Select the account you’d like to connect to Zapier” step, I’m given only o…

This looks like an entirely mad decision on the Product side, but since it stayed that way for some 12 month later I guess there wasn't a lot of demand? Anyways, I had to build my own pipeline, on 4 AWS API Gateways, 2 Lambdas and 1 S3 bucket.

I'll detail that journey and open-source the solution a touch later, but I feel very good about the two lambdas that I was able to write and the overall flow achieved. As a sign-off, I'll share a demo video of a purchase process, with it only sped up when I was entering the test credentials:

0:00
/0:32
🎉
Yay, now I can save whole 3% off of my $0 in sales, with Stripe's 2% cut vs KoFi's 5%!

I mean, it's not really all that impressive, but a damn good refresher in Stripe, Webhooks, Lambdas, API Gateway and email templates.

And hey, if you or someone you know was just yearning for something like this - why don't recommend them this theme? I'll even throw a 30% discount (mostly because I want to test Stripe Coupons) to the first 10 people who buy this.

What a steal, right?