Macchiato has run its course. No further sign-ups will be accepted, and there will be no further TestFlight releases.

It started life as a project for me to read 10C blurbs on my own phone and have some fun with Swift when that was new and I wasn't otherwise getting much practice in with it.

I was able to share it with some fellow 10C folk using TestFlight, and it did a pretty good job. It never quite recovered from the v4 => v5 cutover - image upload never returned. And I never got around to implementing some of the more interesting ideas about threaded conversation presentation, but that was in large part because those proved unneeded in this environment than in a more hectic, larger community.

I'll have a look into opening the source for it, so if you've got a Dev account, you can build and run the app on your own phone - and have it work for a year rather than a few months.

(Plus, the Markdown-to-rich-text rendering code was pretty fun.)

Thank you to everyone who used Macchiato and helped me build it out. I recommend adopting the official Web client; it's improved a lot over the years, and it has far richer post visibility and multiple-account support than Macchiato ever had.

Build 26: Quote Posts

This build brings some long-delayed fixes from the 10Cv5 and iOS 13 transition, as well as a new feature: improved support for quote posts. I've been working around the missing context by guessing it was a quote post (big blockquote? probably a quote post) and using the View in WebView action to see the full content. This build displays that information front and center, at last.


  • Quote posts show any title, author, and link as part of the post title.


  • Pin colors are no longer mis-reported.
  • The background of the login page is no longer transparent. Thanks, !

a quote post in macchiato 2.0 (26)

Submitted to TestFlight: Version 2.0 (25)

A new version of Macchiato is awaiting Apple's processing and approval for distribution. Once they approve it, I'll pass it along. Apologies for letting the last build expire; it's been busy lately.


  • Macchiato supports Dark Mode under iOS 13.
  • "Share" post action shares the post's canonical URL.


  • The "Pinned" and "Starred" streams are no longer separate.
  • The "Interactions" stream is now named "Stars & Pins".


  • Pinning works again.
  • All posts mentioning you are highlighted, not only those in threads.
  • "More Posts" button at end of stream loads more posts.
  • "View in WebView" works. It shows the dedicated page for that post.


  • The "Starters" stream no longer exists in 10Centuries v5 and has been removed.
  • The "Interactions" stream that showed others' interactions with your posts is no longer provided by 10Centuries v5. (The interactions you saw here with v2.0 (23) and (24) were your own interactions with others' posts.)

Basic support for 10Cv5 is now available

I just pushed out v2.0 (23). This gets the basics working again with 10Cv5.

(This site doesn't seem to have carried over the custom page describing what Macchiato is or how to sign up. I don't see any way to add those pages back, either. 10Cv5 itself is still healing after the cut-over, too.)

The full changelog is below, but if you're in the TestFlight group, you've already got a copy. If you're not, but wanna be, I need an email address to send the invite to. I also like to have name & 10C handle.

2.0 (23) - 2019-04-18

This release is the first after the cut-over to 10Cv5. (If that's news to you, see: https://matigo.ca/2019/04/10/server-down .) Its focus is re-enabling basic interaction with the 10C community. This release is less functional than the previous release was with 10Cv4, but since the previous release didn't support v5 at all, it's a big improvement over something that just crashes on launch.

Basic post display is working.

Login, posting, replying, and post editing work.

View in WebView is broken, and other features haven't even been explored yet.

Many of the streams in 10Cv4 may no longer apply to 10Cv5.
If so, they will be removed in a future release.


  • Crash when attempting to show a 10Centuries error message.


  • Supports 10Cv5 rather than 10Cv4.
  • Account display is only half-working now.
  • Image upload is as yet untested.


  • Displays any non-empty post title above the post.
  • Displays any post geo-tag info in post attributes.

Build 17: Open in WebView Works Again

The prior build was expiring in a couple days. Thanks to for the heads-up! I'm still waiting on Apple to greenlight this build, but you should expect it to roll out some time today or tomorrow.

While I was paying the toolchain tax and rebooting my phone in hopes of getting Xcode to recognize it as a valid test target again (it worked!), I fixed a small bug. Otherwise, it's the same app it's been for a good while now. As always, you can view the outstanding bugs, report new ones, and check out the maybe-one-day features at the GitLab Macchiato issue board.

1.0 (17) - 2018-01-20

This is a maintenance release.


  • "View in WebView" now uses the latest URL template. [#124]

Build 16: Staying Alive

I haven't been working on this, but I'm still using it, so it's still treading water. Thanks to for pinging me to point out the TestFlight build was expiring soon!

1.0 (16) - 2017-10-25
This is a maintenance release. The app is now using latest Apple toolchain.


  • Stream contents are no longer partly hidden under the navigation bar.

I also didn't post here about the previous release. It was a similar "oops, expiring soon" release. Unfortunately, I forget who prodded me into rolling a new build then. Thank you, person lost to my memory!

1.0 (15) - 2017-07-30

  • "Private" stream is no longer listed. DM support remains unimplemented. [#122]

Build 14: Minor Improvements

This release was precipitated by the clock expiring on the previous release. Many thanks to for the heads-up on that!

I've been occupied almost 100% with family since early March, when my second child was born. Sanity and evening hacking time will eventually return, but it's gonna be a while.

I am happy to finally get this "View Thread" action out there. The swipe gesture used to go from a post to its thread has seemed natural to maybe 60% of folks and been totally undiscoverable for the other 40%. Having an action button in a list of buttons will make it possible for that other 40% view threads without having to be clued in through luck.

1.0 (14) - 2017-05-18


  • Profile page now indicates if you're in the follower/following list. [#111]
  • ComposePost uses shorter "copy-mention" style /@abc rather than // @abc for mentions other than the primary one. [#113]
  • Post actions now include "View Thread" as an alternative to the "swipe-in" gesture. [#98]

Build 13: Profile page with Follow, Mute, and Star support

Build 13 adds a profile page reachable by tapping an avatar on a post.

The Un/Follow, Un/Mute, and Un/Star buttons work.

The ones to view posts, stars, followers, and following do not, but they do correctly report how many of each there are.

Also, be careful with that Silence button! Since you can only find the Profile page via a post, and silencing an account means you never see their posts, you won't have a chance to UNsilence them later via Macchiato just yet.

What took so long?

It's been 18 days since the last build, which is a lot longer than usual. If you're wondering what happened, and whether Macchiato is still under development, don't worry! It is. But:

  • I had a baby.
  • The whole family got the flu. (Except the baby, thank goodness!)
  • I got an ear infection.

It's been a pretty intense few weeks.

What's next?

  • Finish out Profile support
  • Fix up Thread display to make chasing parent posts easier
  • Support direct messages
  • Notifications

After that, I think the app's pretty much done.

There are some unusual features I had in mind originally, but I don't know there's much call for them, and they're lower priority
and more speculative than these basics. They would come in later updates following public release of the app.

1.0 (13) - 2017-03-26


  • Tap the avatar on a post to view the user's profile [#25]
  • Un/follow an account using a button on its profile page [#26]
  • Un/mute an account using a button on its profile page [#101]

Mutes take effect the next time you reload a stream. The API mostly won't send muted posts, but when it does, they are displayed with a "☠ (you muted this)" line in the post metadata area below the post content.

  • Un/silence an account using a button on its profile page [#64]

WARNING: Careful with this; you can currently only get to an account via a post avatar, and you won't see any posts from users you've silenced, so you won't be able to unsilence them once you leave this page!


  • Lists (including footnotes) now indent all their lines, not just the first [#97]
  • API requests now specify they want only JSON in response, which might improve error display in some weird cases you'll probably never encounter. [#96]


  • Footnotes should no longer truncate, but instead word-wrap [#97]
  • Starring and pinning a repost will update the repost to show the result [#99]
  • Unstar result is now toasted as such, not as starring [#99]
  • Unpin result is now toasted as such, not as pinning [#99]

Release 12: Post display bugfixes

Minor release, but it fixes some stuff that was annoying me, so I thought I'd share sooner rather than later. :)


  • Rewrote some HTML to valid XML to fix post display. [#55] [#93]
  • Forced line-wrapping to avoid unwanted truncation of paragraphs alongside blockquotes. [#87]

Build 11: Interactions and Keyboard Shortcuts

Build 11 makes the Interactions display actually useful, because you can now see who interacted with your posts and how.

It also brings keyboard shortcuts analogous to the New Post button as well as all three buttons on the New Post page.

Miscellaneous improvements include full-bleed image display, easier to use action sheets, and bootstrapping the thread view with any posts that oughta match that the parent stream already has on hand, which makes thread view feel faster: For posts that are already part of a thread, you're likely to see several posts even before the app finishes pulling the full thread from 10C.

1.0 (11) - 2017-03-05

  • Keyboard shortcuts for New Post, Send, Attach Image, and Cancel. Hold down Command to see what shortcuts are available at any point. [#76] [#77]


  • Posts display the image the full width of the screen. [#86]
  • Thread views are bootstrapped with posts already on hand. [#92]


  • The Interactions stream now tells you who starred or reposted your posts. This is thus the first release where the Interactions display is actually useful. [#58]
  • Reposts now display the reposter and date alongside the original post. Post actions are directed at the original post, not the repost-post. [#85]
  • Action sheets are now more HIG-compliant. [#90] [91]