John O'Nolan
banner
johnonolan.bsky.social
John O'Nolan
@johnonolan.bsky.social
Founder/CEO at @Ghost.org - Geographically restless.

Mostly posting about publishing, media, open source, JavaScript, Laravel, bootstrapping, SaaS, activitypub, and design.
Reposted by John O'Nolan
Our first billboard! Live from Stripe City

bfcm.stripe.com
November 28, 2025 at 5:39 PM
If you're curious about the build of Ghost Explore — and some of the details of my ... *checks notes* ... 1,256 commits on this project over the past few months

The @laravelphp.bsky.social team just published a nice lil piece about Ghost + Laravel Cloud:
laravel.com/blog/14m-req...
November 26, 2025 at 6:30 PM
Stoked to share some of the details behind a project I've been working on for a long time, in partnership with
@ahrefs.bsky.social — and built on top of @laravelphp.bsky.social

Spent YEARS wanting this to exist, so I finally just built it.
Google search is broken.

Social algorithms suppress links.

Finding good independent writing online has never been harder.

We built something to fix that: 🌍

ghost.org/changelog/gh...
Explore the independent web
Driving growth for Ghost publishers with a new discovery engine
ghost.org
November 26, 2025 at 1:08 PM
November 25, 2025 at 9:00 PM
Reposted by John O'Nolan
Okay, this is fun, and brings me back to some neumorphism nostalgia: a fun color palette generator, that lets you play with different color spaces, and build different palettes type

colorpalette.pro/?color=lab%2...
November 25, 2025 at 8:30 AM
Today @ghost.org passed $9M ARR — the first time we've ever crossed a $1M milestone 2x in a calendar year 🎉

Publisher revenue is growing even faster!

Now more than $120M GMV earned by writers and journalists using the product to fund their work
November 24, 2025 at 2:57 PM
Reposted by John O'Nolan
This week @johnonolan.bsky.social joined us for a Sweet Hang and he's got big news for @ianlandsman.com & @aaronfrancis.com:

This week he Laravel New'd....twice! 🚀
November 20, 2025 at 5:44 PM
development DB dropped again

me: what did you do

ai: nothing guv, swear down, I ain't touched it, if anything happened to the DB it wasn't cause of me
November 19, 2025 at 9:57 AM
After 3 months - counting by number of servers (unique domains) - @ghost.org is now the most-deployed piece of ActivityPub software out there

31% of all sites that interop with open social web standards are running on Ghost
October 30, 2025 at 12:05 PM
Doing ~12M req/mo now on my laravel app - which powers explore.ghost.org (the public front end is very simple, the back end is much more extensive)

Still blows my mind how much you can build/manage singlehandedly with a bit of help from Claude and Laravel Cloud
October 29, 2025 at 6:23 PM
I'm always impressed by just how many people who've never maintained any open source software are so wonderfully generous with their advice about how to do it correctly
October 15, 2025 at 12:44 PM
Had an amazing time this week speaking at PenpotFest in Madrid - there’s a lot of inspiring work happening in open source design tools these days that gives me a lot of optimism for the future

Thanks for having me @penpot.app 🫶
October 10, 2025 at 12:22 PM
@rmccue.io You were workin' as a waitress in a cocktail bar
October 3, 2025 at 8:44 PM
it’s amazing (not in a good way) how many books these days are just lengthy accounts of every guest the author has had on their podcast and what each of them said
September 30, 2025 at 10:39 AM
Aggregate publisher revenue on @ghost.org is currently growing at ~$1M ARR per *week*

The business of independent publishing and journalism is looking in better shape than it has in a very long time
September 10, 2025 at 12:57 PM
A blog post is a very long and complex search query to find fascinating people and make them route interesting stuff to your inbox

www.lesswrong.com/posts/vidXh2...
A blog post is a very long and complex search query to find fascinating people and make them route interesting stuff to your inbox — LessWrong
I was born in July 1989, which means I am of the last generation who will remember the time before the internet. The cables and data centers and hype…
www.lesswrong.com
September 10, 2025 at 9:20 AM
Ah I see! It’s not a 12MP crop of a 48MP sensor, it’s a pro fusion telephoto liquid XDR Dynamic Island camera system ultra
September 9, 2025 at 5:53 PM
One of the easiest ways to spot an AI generated reply, other than em dashes, is the endless use of the phrase: "This isn't [trivial, insignificant thing], it's [important, considered thing]."

Stands out like a sore thumb.
September 8, 2025 at 1:54 PM
I took a couple weeks off, can someone catch me up on the 4years of AI news that happened while I was away? So far I've gathered that we all hate Claude now
September 8, 2025 at 9:45 AM
Another story hidden between the lines of this one:

Publishers on Ghost are earning (multiples) more revenue compared to some other platforms that are endlessly shilling their "game changer growth hacking features"

Quality content > Growth hacking
We've now generated over $136M from free, open source software with @ghost.org 📈

$36M in revenue from managed hosting
$100M in platform revenue for indie publishers

The ecosystem is growing really quickly at this point, and really excited about where things are heading next:
August 19, 2025 at 4:11 PM
We've now generated over $136M from free, open source software with @ghost.org 📈

$36M in revenue from managed hosting
$100M in platform revenue for indie publishers

The ecosystem is growing really quickly at this point, and really excited about where things are heading next:
August 18, 2025 at 5:04 PM
When writing was first invented, it was critiqued as likely to create the “illusion of wisdom” - because people would no longer bother to memorize knowledge.

What happens when we invent tools?

We adapt, and we evolve.
We’ve already seen one major tech-driven culture shift from the pre-internet era to a swipe-and-stream generation hooked on instant gratification and app convenience.

When AI is always-on and omnipresent, what behavioral rewiring comes next? What happens when thinking itself feels too hard?
August 17, 2025 at 3:47 AM
Single most annoying thing to me about Claude Code is that it consistently does "what it believes you meant, based on what you said" rather than "what you said"

Apparently this is a deliberate/intentional feature - but really wish there was a way to disable
August 13, 2025 at 7:42 PM
my kingdom for a flight booking MCP so I never have to touch an airline website again
August 13, 2025 at 12:04 AM
Reposted by John O'Nolan