Project TNT

The next evolution of type on Medium

It’s late Thursday night in the Medium office, a week before the 2.0 launch. Marcin, a fellow designer and typographer, is sitting a few feet away. We’ve hit that moment in every project where you’re tired — really, really tired — and are reconsidering everything you’ve done.

We pause and think, should we just keep the fonts we have? Maybe the journey was the reward.

One month earlier, we started down the road of revisiting all typography on the platform.


Type is a huge component of design at Medium. We’re a stories platform, and we render our stories with type. We take care of the typography for you. We’ve turned your normal quotes into smart quotes, adjusted the weight of underlines, made printing stories great, etc.

Our constraints are changing. We made writing on Medium more casual, and brought that same writing experience to iOS. Shortly after that, we implemented it on Android — all in the last six months. We’ve created new canvases and as a result, need to consider how that impacts our design.

Today’s Medium typography refresh is an evolution. We set out to support a wider variety of stories, bring richer typography to Medium, and maybe lose some sleep along the way.


Day one of the project was about the physical space. We claimed an area in the office, moved furniture around, and printed our project logo on the plotter… or, well, not our logo, but a jokey logo of a TV station, and a half-inside joke towards The New Typography movement.

We made it our mission to get our co-workers feeling empowered in this process. We shared our thoughts and progress, constructed a font wall of some of the typefaces we were considering, set our milestones on a huge calendar, and created a Slack channel to keep the discussion flowing.

Then, we built custom tools to help test and compare typefaces within our UI. We jokingly called it “the Bloomberg terminal of type” or “the Fontificator” (which are both horrible names). You could take a variety of Medium stories, drag fonts into the browser, and adjust any value to set the type just right. Not only did this work on the desktop, but we built in live syncing to our iOS and Android devices.

Testing type in real situations was key. We quickly made variants on the web and our apps so we could start reading and writing with the new fonts. We tested internally and with a set of trusted testers, and had the luxury of calling on some truly great type thinkers and doers (you know who you are). Every few days, we shipped a new type pairing to all testers and solicited feedback. It was an emotional journey, one on which sometimes we went from falling in love to hating our decisions from the night before (sorry, Riona).


After countless late nights, hundreds of typefaces tested, multiple occurrences of Marcin saying “typography is going to kill me,” and 2,000-plus Slack messages, we settled on two new families:

Kievit will lead off stories as our new heading font. Kievit is a good mix of character and structure (our previous sans-serif font, Bernino, was supporting both headings and UI, which was no longer a concern for Kievit). As a bonus, Kievit Slab also makes an appearance, and if you haven’t seen the Kievit Slab ampersand, you definitely need to take a look at this cast of characters.

For the surrounding interface, we made the decision to use system fonts. For iOS this means Apple’s new font family, San Francisco, and for Android, Google’s own Roboto. We believe the UI should come secondary to the stories written on Medium, and we are pushing that further by using familiar fonts on each operating system.


We’re excited to share this with everyone who reads and writes on Medium. It’s been a fast-paced (but fun!) journey worth every moment we’ve put in. I’m sure you’re forming reactions of your own. We’d love to hear them! Turns out, we built a product that lets you do exactly that.

Oh yeah — we have a fresh new color palette, too. Maybe we can get Brad Simpson to write more about his process of color wizardry soon?