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.

Build 7: Load ALL the images

Build 7 fixes those unsightly blank squares. It also improves post rendering by combining styles, so bold-italic shows up as such rather than either bold or italic.

Thanks to @phoneboy for the push to ship this sooner rather than later. :)


  • Load images with non-HTTPS source URLs. These were showing up as a blank square beneath the post before. [#61]
  • Render "stacked" styles, like bold-italics. Before, only the "topmost" style was applied, so bold-italics would be just italics, and italic-bold would be just bold. [#56]

Bold Italics à la Baz - Simulator Screen Shot 8 Feb 2017, 09.22.50.png

Build 6: Images, links, and distinctive mentions

Today's milestone brings some big improvements!

Paragraphs are more distinct within posts, and each post has a suite of tappable links and images following it. You probably won't need to use that "View in WebView" action again any time soon!


  • URLs linked in a post are listed as buttons below the post text. Tap the button to navigate to the URL within the app.
  • Images linked in a post are displayed below any link buttons. They are scaled to fit, so some bits outside the center might have been cropped. Tap the image to see the full image. [#35]
  • An "Edit" action appears in the list of post actions for your own posts. This list is the list that is triggered by long-pressing on a post. [#40]
  • The background of posts that mention you is now a light blue, to make it easier to skim for mentions. [#41]


  • Paragraphs now display block-style, with a full blank line between them. [#53]

Images Display Below the Post.png
Highlighted Mentions and Tappable Links.png

TF-5: We have avatars!


  • Avatars appear alongside post content. [#33]
  • Settings has a "Third-Party Components" row. Tap to view licenses for third-party components used by Macchiato. [#52]


  • Account info percolates to all stream views, so that you shouldn't see a post action list of just "View in WebView" once you're logged in unless you're really fast or your network is really slow. [#50]

Release: 1.0 (4) - 2017-01-25

The major change in this release is displaying posts as rich text. At last, the computer is now parsing the markup rather than you! I took the unusual tack of rendering the post HTML rather than the post Markdown text in order to ensure faithful rendering of The Official 10C Markdown, rather than risk fragmenting the dialect based on who's viewing posts in what client.

Image display is what I plan to work on next, because the timeline is looking a bit drab without them. As always, you can see what I'm up to by peeping the Issue Board.

Thanks for beta-testing Macchiato!


  • Display rich text rather than raw Markdown.1 [#34]
  • Omit mentioning yourself when you reply to a post that mentioned you.2 [#32]

TF4 Brings Rich Text Rendering - Captura de pantalla 2017-01-25 a las 09.28.26.png

  1. Links aren't clickable yet, and images display as their ALT text.
  2. The author of the post you're replying to still gets mentioned, though, so if you reply to your own post, you'll still mention yourself.

  1. 1