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: .) 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 @phoneboy 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 @phoneboy 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 @AdamTheVictini 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]

Build 10: Upload Images

Build 10 adds the ability to upload images to reference from your posts and also various and sundry fixes. The most noticeable is the new post layout.


  • Upload Image button: Pick an image, and it gets uploaded to the 10C CDN, and corresponding image Markdown appended to the post body. [#12]


  • Posts display date and username on separate lines. [#74]
  • Posts use the full width of the screen for their text block. [#75]
  • Starting a new post immediately puts the caret after the first mention. [#24]
  • A Post Actions button serves as a more discoverable version of the long-press gesture. [#44]
  • Display Markdown rather than raw HTML when post HTML rendering fails [#81]


  • Posts are now sorted by publication date, not creation date. Using the wrong date sometimes led to a time range being skipped by Load Older. [#79]
  • Logging in should be recognized without a restart. [#44]
  • Private posts no longer stay stuck to the top of the post list; they are ignored entirely. [#80]

New Post Layout - TF-10 - 2017-02-27.png

Build 9: Delete posts

Build 9 brings a few small improvements.

The largest improvement in a sense is one you'll hopefully never notice: the app does its best to show something for every post it gets from 10C now, and even if that fails, one bogus post won't prevent showing all the other, perfectly fine posts.

This should close out the "Cappuccino and Macchiato are both showing no posts" incident from about a week ago. It might mean you end up seeing some grody HTML if things go badly, but you shouldn't find yourself locked out from seeing Global again.


  • "Delete" action appears on own posts. [#69]
  • Blockquote now renders as indented, slightly smaller, slightly gray text. [#51]


  • "New Post" button now says that, rather than "+". [#45]


  • Post data received from the API should now pretty much always display something. [#62]

Build 8: Smoother Log-In

This build mainly fixes a lot of the ugliness around log-in. This has been a pain for everyone who's signed up for beta testing to date, so thank you all for fighting through it!

I think this will also fix @der_jeff's issue with not being able to post at launch.


  • Give initial stream page a stream and an identity when launched in full split-view glory, so that you can post via it. [#57]
  • Log In form no longer stays on screen after log-in succeeds. [#43]
  • No longer thinks you're logged in after you've logged out.
  • If log-in fails, you'll actually see the error message sent by the 10C API, like "bogus credentials", rather than a uselessly vague "operation failed". [#30]
  • Log In button enables as soon as there's text in both the username and password fields. [#49]


  • New Post button disables rather than vanishing completely when the app doesn't yet know who you are.