I Really, Really Enjoy Typora

Jon Sully

8 Minutes

Ruminating on the joys of a fantastic writing companion

It’s really rare to enjoy a piece of software more and more over the years that I use it. Frankly, there aren’t that many pieces of software I use over a multi-year timespan in the first place. Apps come and go! And apps that do stick around sort of have this unfortunate tendency to get worse over time…

But Typora? Typora has remained extremely good, super stable, and a joy to use. Sure, it hasn’t added all that many features over the years — it’s a slow-and-steady kind of app. No, the real joy comes from me learning how to use it better over time.

Typora is one of those applications that can be configured super deeply (you can go down the rabbit hole really far if you want to) but which comes out of the box so darn functional and intuitive that you don’t need to. You just start writing. And everything works.

That makes for the magical situation when, after using the app for years, you realize you need some special feature or tool and… it’s already waiting for you. You just had to turn it on or learn to use it. That is the best feeling in software. “Ah 💡, it already does that!”

I’ve had that feeling quite a few times with Typora over the last five years. I love this app. I’m writing this post in it now! I’d venture to say that one of the reasons I’ve become a writer over the last four years is (at least in part) due to how much I love my tools. I fell in love with playing guitar, in part, because I had a Taylor. Same idea!

So, purely out of love for a great app, here are a few of the little things I’ve tailored my Typora installation to do over the years.

Themes, of course!

Every writing app has several visual themes. This is nothing new. What is novel about Typora is that the community has made hundreds of themes for it. Since Typora themes are simply CSS, lots of folks have ventured into the land of DIY, and most are posted up on the Typora Themes directory for all to see and enjoy. For a long time I ran Newsprint, though I dabbled in Whitey (and Whitey Dark) from time to time. Within the last year I switched to Paradox and started down my own journey of customizations.

And that’s the first neat thing with Typora — it has a system for running an out-of-the-box theme while sprinkling on your own customizations safely. My Paradox overrides a few colors, some styles for H3’s and images, and the overall writing width.

Tip

Back in 2021 when I was procrastinating with reading Hacker News on the daily, I found this thread. The article that it links to is neither here nor there, but the thread of conversation on HN itself got me thinking about my writing environment a lot. Ultimately, I decided on forcing a fixed-width writing space with a certain number of characters (as many in the linked discussion chat about). Typora made that really easy. Even with a theme, I can override the writing space width to what I want for myself. Many of us use 80- or 100- length character rulers in our code editors… why not have a similar setup in our writing editors?!

Here’s what my writing space looks like today:

Example image of my Typora editor with lots of elements and styles going on

And while the document I setup there ^ has a lot of visual elements going on (for example’s sake), in general I end up with a super clean, simple look. On a day-to-day basis, it’s more like this:

Example image of my Typora editor with just text and an image on it

Just a simple white canvas, a whole bunch of words, and an image. That’s much more my speed! In fact, to that end…

A Focused Space

One of my favorite things about Typora is just how much can be stripped out of the UI. Typora can be a focused haven whenever I want it to be. That last screenshot above gives a great sample — no side-bar, no tab bar, doing the integrated macOS top-bar thing. There can be virtually nothing outside of the words I’m writing at that time, and that’s exactly what I want.

If I really want to double down for a distraction-free writing session, I actually put Typora in macOS full-screen mode and now my entire monitor is… a typewriter (and yes, taking a picture of my monitor was the best way to show this…):

A quick iPhone-photo of my monitor with Typora full-screened, nothing else on the screen
Distraction-free writing

Between this hyper-focused space and my AirPods Max’s cancelling out everything, this is, by far, my favorite way to write. Just the paper and me, so to speak.

Interestingly, I don’t actually use Typora’s Focus Mode or Typewriter Mode. I think they’re neat, but I don’t have the itch they scratch. When I really need to focus I just go full-screen.

A PDF Machine

It doesn’t happen all that often, but there’ve been times over the last several years where I want to produce a nice-looking PDF for someone or something. Maybe it’s a project proposal. Maybe a letter of recommendation for a friend. In fact, I wrote the cover letter for my current role in Typora and exported it as a PDF! That’s the beautiful thing about PDF export — it includes your theme:

A screenshot of a pdf file exported from typora

That means, in the style of WYSIWYG (which rarely applies to PDFs), you get the same look in your final PDF that you do in your editor.

And while the Markdown spec doesn’t include much around page control, Typora gives just enough. There’s a little snippet of code we can add to our base CSS override file that converts every <hr> into a page break. So if I need to force a new page, it’s super easy. Just a --- away!

An Image Uploader

Okay, I’ve written about Typora’s image-upload ability before, but I’ve taken it further since then. While I’m not sure I mentioned it in the previous article, the originating concept was as follows.

You’re writing an article that’s going to end up on the web; great. Why go through an annoying process of formatting and loading an image referenced by your Markdown into your code project (static site assets/ directory or etc.) when you could just upload it directly to an image host inside your writing editor to begin with? They’re all going to come from your CDN anyway! What if you just uploaded them directly to the CDN rather than having to worry about them in your file system / project at all?

That’s what happens here!

Any time I paste an image into Typora, Typora automatically uploads that image to Cloudflare Images and replaces the local image path with the absolute URL that Cloudflare returns for the upload. A globally accessible, public image URL.

Then, when I publish my blog posts, the URL of the images is indeed that very same URL directly from Cloudflare. My Rails back-end has no idea about my images. It’s simply seeing some Markdown with image tags that point to external URLs and converting them to <img> tags in kind.

Feel free to check the source of this image — it’s not from Rails or assets; it’s just a Cloudflare serve path on my domain (since this domain is served by Cloudflare):

An example image served by cloudflare

The actual script I run has changed a bit since my last post. If you want a copy of it, let me know! Since I occasionally upload to multiple different Cloudflare Images accounts, I have a little popup selector that prompts for which account to upload to. It’s quite handy!

This is still what it looks like, essentially; just a different web address that pops in:

A gif showing the loading icon that appears when pasting an image into Typora, then how it changes to a real URL once the image is uploaded

All the Tables!

I’ve actually come to use tables quite a bit in the last year. After seeing how a coworker began using them as a simple means of showing two images side-by-side, I too realized that tables can be a powerful layout mechanism. In fact, it’s a markdown table powering my Books page (and a table that’s showing these very two images side-by-side):

How it looks in Typora How it looks on this site
A screenshot of how Typora renders my Books page
A Screenshot of how the books page looks on my site

And while the styling is obviously slightly different, the editing experience in Typora is top-notch. Tables are easy to work in and easy to create. I’ve gotten very comfortable with the Cmd+Opt+T shortcut for generating a new table:

Table Wizard Panel Result
A screenshot showing the pop-up table selector in Typora
A screenshot showing the result of the table wizard creating a table for me

Git Push From Typora

One last customization I made allows me to publish an article directly from Typora once I’m done writing it. As in, no VS Code or Terminal action required! I just save the file then run Export → Git Commit + Push. That’s a custom export setting that runs:

git add "${currentPath}" && git commit -m "Added Post from Typora"; git push

And that’s it! As long as I save the file first (so the latest changes are recorded to the file contents), it’ll go straight to GitHub, then production.


Anyway… I ♥️ this great app. That’s all for now!

Comments? Thoughts?

Please note: spam comments happen a lot. All submitted comments are run through OpenAI to detect and block spam.