Herringbone Dev Journal

Making a Mac-Assed Mac Blogging App

New Release 0.7.2

This release contains fixes for editor slowdown in very long posts, especially ones with footnotes.

New Release 0.7.0

This one is a bigger release, with a ton more performance improvements incoming. There are some more improvements incoming, including some reworking of the editor, which has had some mild jank introduced recently, now fixed.

Update: Now at 0.7.1 with the jank eliminated.

New Release 0.6.0

Major new changes in this release, which continued to be performance enhancements, particularly around site generation. The app has advanced correctness and concurrent performance improvements, and is now much faster to create and deploy sites.

Update: Of course, two regression bugs snuck through. Fixed now, in 0.6.1.

New Release 0.5.0

I just released 0.5.0, which is a pretty solid milestone. As I mentioned in the last post, this is the result of a lot of performance and stablility improvements, and it feels really good. I have a few things to do next:

  • Experiment with a new UI
  • Create a preflight check before publication. It should check, among other things, whether tags have been created.
  • Allow/enable easy self-linking to my own posts
  • Recording—and optionally, publishing—the location the post is published from

As always, more to come.

Update: Of course, I found a new bug right after releasing 0.5.0, so I guess there’s a 0.5.1 incoming. The bug: the editor can’t take the sequence to produce an umlaut. I discovered it while trying to post about the XCC race, and was trying to type “Blöcklinger”. As you can see, it works now. 😉

6 months

I’ve been working on Herringbone for about 6 months now, and it’s coming along really nicely. While it’s too hard to list all the work that’s been done since the last update, I’ve spent the last bit working on improving the architecture for site generation & deployment as well as cloud syncing between devices. I’m happy to say that both have come a long way since the early days. As I type this on my main Mac, running macOS 26.5.1, I’m watching my MacBook Air, running the app on the developer beta of 27.0 Golden Gate. As I type, the words are appearing in about 5 seconds, which is plenty for this application.

I’ve designed this as a single-user, multi-site application. That means that I’m not designing the editor to be a collaborative multi-user editor, which allows me to make decisions that favor my use case: just me working on sites, but I do it from multiple devices. That means that I can create, edit, and publish posts from any of my Macs, my iPhone, iPad, or Vision Pro, but from one at a time. By the time I switch to a device, the current state of the site is correct.

Next up, I’m planning to iterate on the UI. Right now, the app looks largely like it has since the beginning: a Mail.app-like interface. However, I’m rarely looking back down the list of posts, and I’m thinking of re-working the main interface to be more dashboard-like, and have posts live in individual windows, document-style. I haven’t really started that work, and may not like it, but I’m going to give it a shot before adding more features.

More to come soon.

Long Time No Update

I’ve had a lull in development, although I’ve been using Herringbone quite a bit, and love it. I just implemented a new feature, footnotes, which you can see in this post

However, I’ve let the non-Mac platforms languish, and that’s going to have to get remedied soon. I always envisioned this as a Mac-first platform—that’s where I do almost all of my writing and posting—but I do want the other Apple platforms to be first-class experiences. Now that the Mac version is a feature-filled, there are certainly things it does that aren’t necessary, or even desired, in the smaller form factors. Things like theme and template editing are best done on the desktop, and honestly, with an LLM’s assistance through the MCP server. (Did I mention that there’s an MCP server in Herringbone now, which allows LLMs to round-trip control the app? It’s awesome.) I’ll have to spend some time to figure out what things make sense for which platform.

More to come soon!

It’s come a long way!

Herringbone is now not only driving my main site and the Waterdog Open Space Stewards site, but it’s becoming a really solid app that I love to use. Since the last update, I’ve gone through a ton of polishing and feature additions, notably a new social sharing architecture that shares posts to Bluesky, with Mastodon and others coming soon. I just wrote up my experience with the new MacBook Pro, and composing the post was a real delight.

I’m working on some animation cues in the toolbar while publishing/deploying posts. It’s a lot of work for a little affordance, but I’m hoping I can make it read to the user like something good is happening.

It’s Alive!

Success! I hit my self-imposed deadline to get the Waterdog Open Space Stewards site off of its previous service provider in time to avoid renewing for another year, and it’s being served by Herringbone! 🎉

In my earlier ramblings, I mentioned a lot of things to do that ended up getting reshuffled, but the end goal of getting a production site live was a big success. I did end up going down a path that wasn’t planned, which was enabling a solid feedback loop for designing and refining the templates that drive the style of the site. I’m very excited about how this turned out, and am looking forward to improving on it.

Next up: getting my main site on Herringbone.

Getting to MVP

Since the last update, there’s been a ton of progress. Namely, I’ve got the publishing and deployment workflow in, and if you’re seeing this, then it’s working. 😉 But seriously, there are just way more edge cases when publishing like this than there are in a web application, where you’re effectively controlling the posting from the app that’s also serving the post. Still, the workflow feels good so far, and I’m really happy with how the app is shaping up. In fact, I was saying to my wife yesterday that, even though I’m making this for me, it’s looking so good that I may actually put it out there for others.

I mentioned performance in the last post, and I did spend some time there, and got the speed in the editor much improved. As expected, there was a lot of stuff in the hot path that just didn’t need to be there, making it feel more sluggish than a native app should. While the editor is the most important area, there is a lot to do in this regard throughout the app. But, as the title says, getting to MVP is the goal right now.

So what is “MVP”?

Well, since you’re reading this, the obvious, most important has been achieved: being able to publish to a live website. The not-so-obvious ones include being able to publish a site that I manage for a local open space stewardship called the Waterdog Open Space Stewards. I’m on the clock for that one, because it’s currently hosted at Squarespace, and costs a couple hundred dollars a year, and it renews next week. I’m looking to save that $200!

The next, biggest internal goal for MVP is my main website/blog, Scott’s Thoughts. I’ve been running that site (or some version of my blog) for over 20 years, and it’s currently a Ruby on Rails app hosted on Hetzner. It has over 1,600 posts, and is the real test for me. It’s gone from hand-crafted to more recently being my playground for building my AI muscles. It’s honestly in the best shape it’s ever been: it’s got features I’ve wanted for a long time, and a ton that I never even planned to actually do. But that’s on the chopping block, because Herringbone is on its way. 💪

But because Scott’s Thoughts is where I post regularly, and eating my own dogfood is going to get this app really into shape, that’s the real MVP goal that matters.

February 25, 2026

I’m really looking forward to using this as my regular editor for posting to my site. I’m wrapping up a big refactor of the app’s interface, focused on the asset management and site settings areas. Link cards and images in particular have been a big focus area—I want to make it really ergonomic to incorporate them into posts. I’m planning to add some keyboard shortcuts to make navigating the main areas of the app by keyboard. In particular, I want to make it super easy to get back to the most recent post being worked on, from anywhere in the app.

There are lots of small items I need to get working, but it feels like I’m getting pretty close to being able to dogfood this soon—a milestone I’m thinking of as “1.0 Alpha”. My goal is to get my main site on Herringbone by the end of the weekend, and to get the Waterdog Stewards site live in prod before the Squarespace renewal on March 4th. 🤞💪

To-do before 1.0 Alpha

Logo

I need a logo! The logo will have to be among the Herringbone dev stories. But in the meantime, I need to settle on a color pallete, generate the pattern background, and decide on a treatment for an “H” or something to sit in front of it.

Deployment

A big epic—and honestly, the biggest potential hurdle to 1.0 alpha—is deployment. In addition to plain site generation, I want to ideally host this site at Cloudflare. And I want a seamless way to not only deploy the site (the minimum for alpha), but to incrementally deploy changes. There’s a lot to do here.

Metadata

I’ve really cleaned up the metadata for the site that’s in production now, and I don’t want that to regress meaninfully when I go to prod with this app. So, I need the app to generate meta tags for canonical URL, OpenGraph/Twitter Card/etc., and other metadata that Google and other sites read.

Important, but not a blocker for 1.0 Alpha

Performance

I will soon have to look into performance; some areas of the app are feeling sluggish. For instance, typing in the title field of a post feels a little slow. And I’m not sure I need the near real-time page preview while typing in the editor, although I admit it’s nice. It’s not a dealbreaker for the alpha, but I need to learn how to use Instruments and get into the details.

Series

Among the last features I need to finish before considering going live with this is Series. That is, a series of related posts that will have their own index and navigation within the set of posts in the series. This is probably not strictly necessary, but it’s a feature on the current site, and I’d like to use it to write up techniques and stories from developing Herringbone.

Annual Index Page

I have a pretty nice index page that breaks up posts by publication year, and I want to be able to bring that over prior to go live.