2025-05-30

I used iA Writer for the very first time on December 19, 2013. I know this because that’s the datestamp of the document that sits at the bottom of my iA Writer file list. In the years since, I’ve used the app to write almost everything, across three years of university studies, three different employments, one freelance career, and lots of different sites about video games, movies, technology, and web development. In addition to most of the stuff I’ve posted here, of course.

I’m not writing this in iA Writer. Recently, I’ve almost completely replaced iA Writer with the text editor and personal knowledge base Obsidian.

A structured text editor

Like iA Writer, Obsidian is a Markdown editor. In the unlikely case you’re not familiar, Markdown is a plain text formatting syntax. To italicize a word, wrap it in asterisks. To create a list, start a new line with a dash. To add a horizontal separator, add three dashes on a line. The point of Markdown is that the structure and formatting of a document should be readable at a glance, even in pure plain text. Once finished, the formatting can easily be applied in editors with Markdown parsers, like the WordPress block editor. Simply paste the Markdown text in the block editor, and the formatting styles are applied.

Many text editors show the Markdown formatting characters more or less as-is. iA Writer does some light inline formatting, like rendering text wrapped in asterisks as italic, but it still shows the asterisks applying the formatting at all times. Headings are bolded, but the hash characters that determine the heading level in Markdown are always shown to the left of the heading text. As you may have guessed, that’s what inspired the styling of content headings on my blog.

Obsidian only shows the Markdown syntax while the element with the Markdown syntax is selected. When it’s not, the styles are rendered as formatted HTML. It’s taken some getting used to after years with iA Writer, but after I tweaked the default styles in Obsidian (more on that later), I’ve grown to like it.

Markdown in iA Writer.

And in Obsidian, which renders the formatting.

Unlike iA Writer, Obsidian is structured like a knowledge base or wiki, with the full folder hierarchy and their text files shown in the left sidebar. If you’ve ever browsed documentation for any type of online service or developer tool, it will likely look familiar. Since this knowledge base is populated with your own content, it’s up to you to decide what text files to include and how to structure them. When you first launch the app, the sidebar is completely empty. If that gets you excited, Obsidian is probably an app for you.

Since you can collapse and expand all folders, it’s pretty easy to find what you’re looking for regardless of how large or deep your structure is.

This is what my Obsidian folder structure looks like as I’m writing this:

At first, I thought I would only use Obsidian to keep track of static information. Code snippets, design resources, hike plans, project to do lists, and so on. I’ve ended up doing pretty much all of my writing for blog posts in it as well, modifying the folder structure as needed to keep everything neat and tidy. Since everything is synced with the iOS app (as well as Android, Linux, or PC), it’s easy to access information and create new drafts while on the go. It works with iCloud, but I’ve opted to pay for Obsidian Sync ($5/month). Given how much value I get out of it, it seemed a crime not to support the developers in some way.

I don’t put everything in Obsidian, of course. If I want a note easily accessible and secure, I add it to my 1Password vault. I also still open iA Writer every now and then if I want to jot something down quickly, or if I want to copy-paste something from a form in the browser because I’m afraid I’ll lose it in an unintentional reload. (I don’t use the Apple Notes app.) Pretty much everything else finds a home somewhere in my Obsidian vault.

Obsidians shortcomings

My biggest gripe with Obsidian is the reading experience, and especially the spacing between elements. If you add a paragraph, followed by a second level heading, followed by another paragraph, the default spacing looks absolutely terrible:

Ugh. The tightness around the heading makes the document hard to parse at a glance, which is extra noticeable in really large text files. The spacing is equally as stingy around tables, images, embeds, code blocks, and pretty much all elements that are not paragraphs. Initially, I found myself compensating for it by inserting extra line breaks, but that gets you into trouble when you copy your writing and paste it somewhere else.

Fortunately, Obsidian is built with picky designer-developers in mind. The app supports themes that let you modify the appearance of pretty much everything, but rolling my own theme seemed a bit overkill for some spacing tweaks. Besides, there doesn’t seem to be support for custom themes on the iOS app. (There are plenty of community themes to choose from, though.)

Instead, I added my changes to a little CSS file called tweaks.css that Obsidian includes by default and syncs with the document vault. Changes you apply there carry over to wherever you’re logged in, including the iOS app. By using tweaks.css, you can also have a community theme active separately.

By adding the following, I set the bottom spacing of headings to equal the body font size, and the top spacing to three times that:

That combined with some extra vertical spacing for other common elements improved my experience with Obsidian by leaps and bounds. Unfortunately, some of the calculations in Obsidian seem to count on margins not being used to set spacing between content elements, and when you use padding to set spacing between elements, you can end up with spacing being doubled-up since paddings don’t collapse like vertical margins do. Nitpicky? Maybe, but when you create an app in the “personal knowledge base” product category, you’re going to attract nitpicky users.

My tweaks.css file is still a work in progress (I haven’t even gotten to the typography yet), but I might put it up on GitHub down the line. I’ve also installed the community plugin “Smart Typography“ by Matthew Meyers, which automatically replaces dumb quotes (") with smart/curly quotes (“). An iA Writer feature I found I couldn’t live without.

While it’s great that Obsidian makes it easy for users to fine-tune the appearance of the text editor with CSS and community plugins, they really should do a better job with the default styles. There’s no excuse for a text editor to have a poor reading experience out of the box.

Final thoughts

Obsidian is built with Electron, so unlike iA Writer, it’s not a native Mac app. I’ve found that doesn’t bother me much. It does look a bit awkward alongside other MacOS apps, but it’s still snappy and sturdy. Given that I have Visual Studio Code, Figma, Linear and 1Password open pretty much constantly, I suspect my aversion to non-native apps has been worn down a bit over the years.

There’s still work to be done for Obsidian to offer a first-class visual experience, but if you share my affinity for structuring content and files, I suspect you’ll fall in love with Obsidian just as much as I have.

The post Replacing iA Writer with Obsidian appeared first on Anders Norén.

Show more