Reflections on a year of writing with Ghost

One year ago today, I started writing about the unfolding WordPress drama, touching on issues that I thought might be interesting to the community and the broader ecosystem. Today, I want to reflect on both why I started writing again—after a multi-year break—and my thoughts on using Ghost for my blog and newsletter, after over a decade of working with WordPress.
One year ago…
When I started writing again, part of my goal was unpacking the unfolding drama between WP Engine and Matt Mullenweg. My first post, on September 30, was two days before WP Engine filed their lawsuit against Automattic and Mullenweg. And, even after the lawsuit was filed on October 2, I continued to post not about the lawsuit itself, but about topics on the edges of the dispute: the WordPress Foundation, risk management, and WordPress.org, among others.
It wasn’t until October 17 that I started offering my thoughts about the legal side of the drama, then expanding that coverage to provide a full, unofficial transcript of the preliminary injunction hearing.[1] From then on, I was frequently disclaiming that… I am not a lawyer.
While not my area of expertise, knowing enough about how the legal system works—and learning more and more everyday—allowed me to connect that process with the WordPress ecosystem. Despite not being a lawyer, I was pleased to hear Mike Dunford’s thoughts, given that he’s a real lawyer:[2]
Delta’s been a really good, solid source throughout. And kind of up at—to be honest, genuinely meaning this as a compliment—up near the top of end of what I see from non-lawyers who are covering litigation closely. Maybe not the absolute best that I’ve ever seen, but really close, if it’s not the top. This site has genuinely been good on stuff. Again, I mean, a lot of nuance gets missed because ‘not a lawyer’, but this has been good.
But, writing about the legal drama was never really a goal for me. Instead, there were two reasons I came back to writing.
First, I felt that a lot of the coverage about the drama didn’t reflect the facts—tech reporters still don’t understand what WordPress is, so they often can’t discern what matters and what’s a tangent within the WordPress ecosystem. I found myself writing paragraphs and paragraphs of explainers in a half dozen Slack instances, using my knowledge of WordPress to guide people toward the facts. That didn’t feel sustainable, so I started putting digital pen to paper.
Second, while I do a lot of writing for my day job, both then and now, there’s a certain comfort in writing for a well-defined audience, whether that is colleagues or clients. Writing online meant going outside of my comfort zone and presenting my thoughts for a broader, even unknown, audience. Every word I write goes out into the world, which is both exciting and a bit nerve-wracking.
What about Ghost?
When I started this site, I wanted to quickly spin up a place to write. I had already written a great deal privately and wanted to get my ideas out into the world. If I hadn’t started writing quickly enough, I probably would’ve waited another decade to write publicly. I turned to Ghost.
I’ve been active in the WordPress community for over a decade, and even before working within the community, WordPress powered my personal site. But, I didn’t want to spin up another WordPress site, figure out which plugins to use, which theme to use, and then manage the setup and maintenance—I just wanted to write. What’s more, I enjoy trying new technologies, experimenting with what’s possible outside of the WordPress ecosystem. So, Ghost.
Using Ghost has been quite enjoyable, though there’s been a few tradeoffs. Given that I’ve been writing for a year now, I’d like to offer my thoughts on Ghost, specifically within the context of this site, which is only blog and newsletter.
My current workflow
To start, it’s important that I document my workflow and why I work this way.
Every post on this site, including this one, is written in Obsidian. Previously, I used Bear, but I moved to Obsidian over the summer when I wanted (free) syncing between devices.[3] On each post, I add an emoji to the title, indicating the status of a given post, whether it’s an idea, in-progress, or “complete” (as in, moved to Ghost). I also think about the dek when I’m writing a post, and put options at the top.
Once a post feels structurally complete, I move it to Ghost and then start rewriting a third of it. When I was at Human Made, Ant Miller gave me the tip to re-read my writing in different contexts, as a way to catch typos. In Ghost, I re-read my posts in both the web and newsletter previews, jumping back and forth as I correct typos and rewrite portions.
Finally, I add the featured image, any post meta, and decide when exactly a post should go out. Sometimes—like when I’m responding to current events—I post immediately, but I typically schedule a post for a weekday morning or afternoon.
As you can see, my workflow is quite straightforward and it’s ripe for change. Ideally, I’d like to write every post directly in Ghost, but there’s one big limitation and a smaller annoyance preventing that.
If you haven’t noticed, I really like footnotes. Ghost doesn’t natively support footnotes in its editor, but it does support Markdown footnotes, using a Markdown “card” (block). The situation isn’t great though. While I can copy and paste directly from Obsidian into a Markdown card, editing within that card is clunky, at best, so I often need to move back to Obsidian to make edits. And, on the web, footnotes appear only at the bottom of the post, where I’d prefer they appear as popovers.[4]
The lack of native footnotes has another ripple effect. For example, in my most recent post, I needed to insert images. I can’t insert images within a Markdown card, so that post could not use Markdown. Instead, I used parentheticals for points I’d typically add to a footnote.[5]
The smaller annoyance I have with the Ghost editor is the lack of curly quotes (or “smart quotes”). WordPress has natively supported curly quotes since version 0.71.[6] If you type a contraction like “wasn't” with a straight quote, WordPress will automatically turn that straight quote into a curly quote on the front end. Curly quotes are proper punctuation, and using incorrect punctuation is a pet peeve of mine. While I can type curly quotes into the Ghost editor and be assured they’ll be present in my published post, typing curly quotes is difficult—I’d prefer a Ghost-native way to, like WordPress, automatically convert straight quotes to curly ones. However, because many editors on macOS, iPadOS, and iOS natively support curly quotes, the lack of support in Ghost is only a minor annoyance.
Above, I mentioned that I switched from Bear to Obsidian over the summer. Obsidian on macOS doesn’t automatically support curly quotes, but Obsidian on iPadOS does. Luckily, there’s a community plugin (Smart Typography) that brings curly quotes to Obsidian on macOS.
What I enjoy about Ghost
From my first interaction with Ghost, one year ago, I immediately enjoyed its onboarding process. The simplicity of going from an idea to a launched site was excellent. Seriously, pop out of this post for a minute and go try it for yourself.
Compared with setting up a new WordPress site (either self-hosted or not), Ghost is a breeze. Part of what makes it so easy to get setup is the limited flexibility it offers. Unless someone really, really wants to create and upload their own theme, the default themes offer enough flexibility to make a site feel like part of your brand. That’s not to say my site looks perfectly unique, however. Spyglass, a newsletter-on-Ghost from M.G. Siegler, looks a lot like The Delta because we’re using the same theme. Personally, I think this is a good tradeoff.[7]
Another big win for me is how Ghost displays newsletter analytics. I’m very comfortable with analytics packages and Ghost isn’t a replacement for more advanced analytics packages (shout out to Marfeel and PostHog). But, it gives me all of the detail I need to understand how readers are interacting with my writing. I supplement Ghost’s newsletter analytics with PostHog, which gives me the web analytics I need.
The final thing I really love, is very related to onboarding: Ghost gets out of the way. Unlike WordPress—including the block editor—I feel like I can just write with Ghost. With my workflow, I don’t always get an opportunity to write directly in Ghost, but the occasional post that starts and ends in Ghost is an absolute delight to write. Part of the reason Ghost feels better for writing is likely its inherent limitations—I don’t have to think about a thousand plugins because I can’t install any plugins. Make of that what you will.
My Ghost wishlist
Beyond footnotes and curly quotes, there’s a number of areas where I’d like to see Ghost improve. These are all selfish things—they’d help me, but not necessarily everyone.
Subscriber management tools. Over the weekend, I acquired my first troll. They posted a comment that was both off-topic and a personal attack.[8] I deleted the comment, but there was no way to “ban” the user. I found a way to ensure they can’t login again, but it’s more of a workaround than a solution. Here, I’d appreciate if Ghost had better subscriber management tools. I want all subscribers to be able to comment on all posts but, in turn, I need the ability to ban or block subscribers.
Improvements to tables. This may be theme-dependent, but tables can be… weird. The horizontal scrolling of wide-width tables is what I would expect on a mobile device, but not what I would expect on a large desktop screen. (Example.)
Additional web design controls. In June, Ghost expanded the available design controls for newsletters. Now, all newsletters can truly look different (previously, they supported adjusting the logo, icon, and highlight colour). I wish my theme had this level of flexibility on the web. I’d love to adjust the background colour to match my newsletter, for example, but my theme doesn’t offer that capability. My theme does provide for a dark mode option, but I’ve tested this and it’s… not implemented well for CTAs. Sorry, dark mode lovers.
Ghost Explore. Sometime in the last year, I opted-in to Ghost Explore, which any Ghost site can do. At the time, I was using a different logo and tagline. I updated my logo and tagline (many months ago) but Ghost Explore never reflected that update. I tried opting out and then opting back in, to no avail. Strangely, my site is also listed in the “travel” category. That is certainly something I could write about… but it’s not at all the focus of my writing today.
A few more more thoughts
Beyond my wishlist, there’s a couple of other things worth calling out.
First, I don’t think it’s monetarily worth the upgrade for me, but if it made sense to upgrade to the Publisher tier, I’d want to take advantage of a few features:
- It can be complicated to setup, but I’d love to implement BIMI. I believe using a custom sending domain (part of the Publisher tier) would make this possible, though I haven’t come across a Ghost install that actually does this yet.
- While I have PostHog lightly integrated, full integration requires modifying my theme. I don’t actually want to modify much of my theme, but I’d love to be able to fully integrate PostHog and keep better track of analytics.
- PostHog gives me a lot of detail, but I think it would be interesting to try Ghost’s analytics package in parallel. I’m not too picky—a lighter take on analytics may be all I need on a day-to-day basis.
The other major callout is that Ghost only has two post types: posts and pages. WordPress, on the other hand, effectively has unlimited content types. Back in November, I wanted to experiment with writing a liveblog that covered the WP Engine v Automattic preliminary injunction hearing. I did that in WordPress, and it worked pretty well. But this kind of content type limitation—a Good Thing™ in most instances, as it keeps Ghost easy to use—does mean there’s a time when I may “grow out” of Ghost.
Final thoughts
Over the past few months, I’ve recommended Ghost to a few publishers and writers. Ghost makes sense when a writer is focused explicitly on a newsletter with a web presence. But, it won’t everyone’s needs, because it’s not meant to be a replacement for a CMS like WordPress.
As for me, my renewal is coming up and I plan to keep going for another year… which I suppose means I’ll keep writing for another year as well.
Official court transcripts are held for a few months, giving court reporters the exclusive right to sell the transcripts. This feels like a small flaw in the overall judicial system—court reporters rely on selling transcripts to make money, instead of being well-paid, providing a service to citizens. ↩︎
Known online as Questionable Authority, Dunford is a practicing lawyer who occasionally talks about the WordPress saga on his stream. ↩︎
The timing directly correlates with the first developer beta of iPadOS, wherein I moved my entire workflow to iPad and looked for best-in-class iPad apps. Obsidian feels a bit weird on iPad, but it works quite well. ↩︎
I’ve tried some of the free options out there, like this one that Cathy Sarisky posted, but they either don’t appear to work in 2025, or work weird in both web and newsletter contexts. ↩︎
Typically, my footnoted points are “asides”—I don’t want them to detract from my main topic. Parentheticals detract, interrupting the overall flow of a piece. ↩︎
wptexturize()
handles this. ↩︎And I’m happy to be in good company with M.G., who once quoted me when he was writing for TechCrunch. ↩︎
It’s not urgent, but this flagged the need for a comment or discussion policy, which is on my todo list. ↩︎
Member discussion