On eating one's own dog food

Why dogfooding is good, and how I do it.

On eating one's own dog food

"Eating one's own dog food" – or to verb-ify it "Dogfooding"– means using your own product. The Wikipedia article is a fun read, although it doesn't seem like we're 100% sure where the term originated.

First off, a disclaimer: I'm not the Ghost team, so I guess I'm not technically dogfooding. However, I do spend a lot of my time telling people that they should use Ghost, and selling them services that are attached to them using Ghost. As a result, I'm going to say that my practice of using Ghost wherever I can use it is at least dogfooding-lite. (Not to be confused with diet dog food...?) This website/newsletter you're reading right now? Built with Ghost, and without any changes to the core, either.

It really bothers me when I see people sharing blog posts about Ghost, when their blog isn't running on Ghost. Why not? How do you have credibility to write that blog post if you don't actually use Ghost?

And don't get me started on WebDev agencies who want to be hired to work on Ghost but don't actually use it...

Why eat the dog food?

Using Ghost for my own website, blog, and newsletter means that I run up against the rough spots, and have some motivation to figure out how to work around them. (Or at least raise issues on them.) One of the dangers of selling work on a product is that one isn't using is that there's an opportunity to over-estimate how well something will work, or to underestimate how hard it will be.

I like having my blog on Ghost, because (a) Ghost is awesome but also (b) because I can point people at a working example of what I'm talking about.

It's also good inspiration for new products. I wanted these things, so I built them! And using them means I know where I need to make them better.

How I'm dogfooding on this site:

  • Social sign-on (although not as nice as what I've done for clients)
  • Ruby theme, with modifications
  • Webforms for Ghost (forthcoming product)
  • Newsletters sent through Ghost
  • Membership payments with Stripe
  • Tip jar

And then there's Google Search Console and Pagespeed.web.dev. Although I've gotten CLS on my homepage beaten into submission, I was still struggling to get my blog posts to pass. Instead of blogging this afternoon, I wrangled Ruby into better CLS behavior. I think I got it? Ask me again in 28 days...

Where I'm not dogfooding but would like to be:

  • Currently I use Asana for planning content. I'd like to pull that into a Ghost service of some sort, so that I could click between post draft and calendar more easily.
  • Footnotes - I've got code that does them, but am not running it on this site
  • Dark mode slider - I've got code, but am not using it.
  • I've done numerous Ghost/Algolia integrations, but am using the built-in search. (My excuse for a while was that I didn't have enough content to bother, but I'm rapidly getting out of that range.)

Where do you eat your own dog food?