If you want all the gory details on how I migrated my Citation Needed newsletter from #Substack to self-hosted #ghost here they are:
https://citationneeded.news/substack-to-self-hosted-ghost/

Happy to try to help anyone else making this move!

#SubstackMigration #CitationNeeded

Migrating from Substack to self-hosted Ghost: the details

I migrated Citation Needed from Substack to self-hosted Ghost. Here is exactly how I did that.

Citation Needed

@molly0xfff "xNext up was email. In order to send bulk emails from Ghost, you need to use Mailgun. Mailgun is actually the priciest part of my setup, at $75/month"

---> Run, don't walk to Sendy -> https://sendy.co

Do what you are using Mailgun but for pennies, via Amazon SES (their bulk email service). I run my newsletter and other things off it; its very straightforward, has a great interface, and ALL the options.

Sendy - Send Newsletters 100x cheaper via Amazon SES

A self hosted newsletter application that lets you send trackable emails via Amazon Simple Email Service (SES) at 100x cheaper than other hosted solutions.

@jimcarroll would need to do a lot of additional work to integrate a separate mailsender — Ghost has built-in Mailgun support and that's it
@molly0xfff Got it. That's sad; Sendy is a wonderful system. You might explore it just to understand it; might come in useful at some other time.

@molly0xfff Update - it looks like I can just go straight to Amazon SES. Since I'm already using that and have DMARC setup, I'm going to explore this.

So in the minutes since I've started reading your post, I've spun up an Ubuntu server at Vultr and will give it a go to try a self-hosted Ghost.

Will report back!

https://stackoverflow.com/questions/74680319/how-can-i-use-amazon-ses-with-ghost

How can I use Amazon SES with Ghost?

I saw at https://ghost.org/docs/config/#mail that SES is allowed. But I edited my config.production.json and ran ghost restart, but Ghost still says: Set up Mailgun to start sending newsletters! ...

Stack Overflow

@jimcarroll @molly0xfff #GhostBlog has separate configuration for transaction email and bulk email.

If you want to send out both through Mailgun, you can send the transactional emails out through the Mailgun SMTP interface.

You can send (only) transaction emails out through SES also via SMTP.

The Ghost project is open supporting other providers for bulk email, but first an "adapter" needs to be created that abstracts the details for each provider.

Ghost also uses Mailgun for analytics.

@markstos @molly0xfff So I can't use SES for bulk? That kills my initiative to do a standalone then. No sense paying Mailgun $$$$ for what I can do for pennies.

@jimcarroll @molly0xfff That’s right. I worked on supporting others a couple of years ago and even submitted a code change for it. That didn’t fit their standards and was rejected. https://github.com/TryGhost/Ghost/pull/14984

I didn’t pick it back up because Mailgun has a free plan up to 5,000 emails per month, and I use that.

I also use SES at work and Mailgun is a nicer product to use.

core: refactor bulk email service to allow non-mailgun senders. by markstos · Pull Request #14984 · TryGhost/Ghost

Use Case Ghost documentation says "More bulk mailers besides Mailgun are planned". This PR helps along that goal with some foundational work. Also, I signed up with Mailgun today, and there is no ...

GitHub

@markstos @molly0xfff @markstos
@molly0xfff

I've now got a working self-hosted site at https://daily.jimcarroll.com ... managed to get my Substack import working fine. The biggest issue was tuning the server size to accept the import of my file - 897MB.

I'm struggling with the mailgun config though; I'm not familiar with JSON and have tried to run this through a few JSON validators without luck.

@molly0xfff - thanks for your pointer to Ghost - was never really aware of it and I will build out on it now. To build mine - I'm a huge fan of Runcloud.io for server builds - and they had this handy document that made the process all quite straightforward.

https://blog.runcloud.io/ghost/

The nice thing is it configs my server with fail2ban and other hardening, as well as pretty seamless GUI to the rest of the server config.

If anyone can offer up thoughts on my JSON formatting here it would be helpful. This version crashes. (I'm using the basic one for now)

The Daily Inspiration

Thoughts, stories and ideas about tomorrow. Innovation, creativity, disruption and more.

The Daily Inspiration