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:
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:
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:
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:
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?