Connect Ghost to ConvertKit
A tutorial for connecting your Ghost site to ConvertKit. Uses Javascript and Cloudflare Workers. Beginner friendly and code provided.
To start, let me preface this with a brief explanation of what Ghost and ConvertKit are. If you know what Ghost and ConvertKit are, skip on down to the Ghost + ConvertKit section.
Ghost
Ghost is an open-source content management system built for publishers like us. The Church Factory has run on Ghost since earlier this year, and so far, the experience has been great. Would I suggest you build your church site on Ghost? Probably not. It's for content publishing. But if your pastor wants to start a blog or church wants to start a written content ministry, it may be the tool for you.

ConvertKit
ConvertKit is an email marketing tool. Think MailChimp, but before they went all CRM'y. I use ConvertKit to store all my email contacts and send out newsletters/marketing emails. ConvertKit has a fairly powerful email editor, built-in landing page creation, automation, and a large integration library. Plus, their API is easy to work with. (Useful for us!) I use it because it has a generous free plan, but I've been happy with it. 😁

Ghost + ConvertKit
My goal in this site (the CTA, if that's you're kind of thing) is for you to subscribe so that you receive emails when I post and join my mailing list. (I don't send out much.) If you're feeling nice or enjoy this content, go ahead and click subscribe in the lower right-hand corner! Thanks!
When you just entered your name and email address, two things happened.
- Your information was stored in Ghost so that you can log back in and receive emails when I publish new posts.
- Ghost sent your email and name to my serverless function, which sent your email and name to ConvertKit and added you as a subscriber to my email list.
It all works rather seamlessly, but there isn't a clear way to do it without some custom code. (Don't worry, I give that to you for free.) The only way to integrate Ghost with ConvertKit out of the box is to use Zapier, and if you ask me, it's way overpriced. So to accomplish the same result, I decided to create a serverless function. You could probably host this somewhere, such as AWS Lambda or a similar service, but I choose Cloudflare Workers. I use Cloudflare for a ton of things already, and for no more than this function will be invoked, it shouldn't cost anything.
For the next few parts, you're going to need some custom Javascript code. If you were following along earlier, you should have access to the following. If not, try refreshing your page. From this point on, you need to be signed up as a member (it's free). Sorry.