Notes on Long-Form Notes

Like many people, I find the subject of note-taking to be a little more than a curiosity given I rely on it extensively on a daily basis. I stop short of making it an obsession, but I rely on notes to keep myself organized at work, to keep track of things I’d like to learn/experiment/create and, of course, to write.

I am not a fundamentalist by any means, but (as I’ve written about ), I’ve been on a seemingly never-ending quest for a usable long-term, long-form writing approach.

And it’s had its low points. For instance, I used for many years–, , and since then on just about every single platform I used, because and, over a decade ago, it wasn’t a bloated mess of artificial restrictions.

It wasn’t perfect, though, and I was actually using Word for long-form. Yes, Word. And, prophetically, I did predict that by 2014 I would be tapping a follow-up on (sic) “my Apple webpad”.

Which I sort of did, various times, and I am drafting this on an iPad, which remains my main “personal” computer of sorts, so that was a fun twist.

OneNote

Anyway, I started moving to as a sort of universal long-term repository for any kind of notes that require keeping track of existing files, scanned documents and rich text, and I expect it to be around essentially forever without any of the vagaries that plagued and all the other trendy collaborative tools now making the rounds.

It works OK. I keep a fair amount of “long-term” personal and professional notes on it, including health, family and home info that I might need to look up from my phone, and it’s been great–storing PDFs and images on it works well (I can look up lightbulb references from pictures, for instance)

The things I don’t like about it (besides having no native Linux client, although the web version works fine in a pinch) is that it is slow as heck when trying to write long-form (the rich text editor is just too clunky), and that it has some persistent issues with Bluetooth keyboards on the iPad for me.

Plus I absolutely detest its antiquated “frames” approach for inserting objetcts or blocks of text, which just slows me down, and I can’t for the life of me get to grips with it having stopped working purely offline.

It’s OK for work, great for quick drafts of short-form stuff (although it consistently messes up font formatting on the Mac, iOS and when pasting onto some Windows apps), but, overall, not great for long-form or heavily structured notes.

The Rise of Plain Text

But there is something else that is going to outlast it in every other regard. Throughout the decades (yes, decades, this site is pretty much twenty years old by now, which is sobering) I tried all manner of tools, but I keep going back to plaintext (ok, ) in a folder or variants thereof, usually typed into a terminal window.

And that, thanks to sanity having prevailed regarding owning your notes as opposed to hosting them, is quite likely to be the future.

Well, mostly.

Over the past few years I’ve found myself having to jump through stupid hoops in order to get at my notes across various platforms, which ends up requiring a rather comical non-overlapping Venn diagram that can be boiled down into a few simple sentences:

  • Nothing syncs with Linux unless you store your stuff on a filesystem
  • My Apple devices live on a little universe of their own, with iOS as an outlier
  • Windows can sort of reach both, but not quite

I’ve tried papering over the cracks with various cross-platform apps and syncing services, but that doesn’t quite work.

Modern apps, in particular, are always a compromise and/or tend to rely on their own syncing mechanisms, not to mention they pop in and out of existence like mayflies, attracting volatile hordes of users that flutter into their halcyon glow and orbit them for a while before moving on.

Over the decades, I’ve seen this often (initially as part of the GTD craze), and it’s always the same pattern: free app appears, hypes itself on a particular feature or phylosophy, gathers a following, and then starts slipping into irrelevance as feature creep (or lack of maintenance) drag it down.

Sorry, I didn’t really want to rant about again.

Enter Obsidian

After a long period of avoidance (largely due to the Zettlekasten hype) I decided to give Obsidian a decent go and spent a few months doing drafts and random notes on it (including this one).

Not unexpectedly, it has been a bit of a pain to get to grips with, not because the feature set isn’t interesting, but because it is in various states of breakage across platforms–I can’t get the iOS version to handle Markdown reference style links properly, the Windows version keeps losing bits of sentences as I type them in, etc.–you’ll get more detail than most people would bargain for in about two paragraphs.

Obsidian is a cool idea where it concerns helping you manage relationships between notes and fragments easily, but, besides being another non-native Electron nightmare, makes it inscrutably hard do to simple things like changing the editor font to something I like (I ended up doing it inside a custom theme’s CSS) or dealing with note metadata/front-matter (on the iPad, it can be tricky to type triple dashes, and handling of hash marks was inconsistent).

But I didn’t give up, and kept at it long enough to amass a proper rant:

Things I didn’t Like

  • The internal linking double-bracket syntax ([[foobar]]) feels like an antiquated kludge (and an eyesore) in this shining new age of Markdown.
  • Compounding on the above, Obsidian does not support reference-style links properly (see #6620). This both for internal linking (which I prefer since they allow me to change multiple identical links in a document by just changing the reference) and external linking (with which the mobile version seems to have particular issues).
  • Titles and filenames are synonymous by default, which is a bit of a pain. You can work around it somewhat by using front-matter aliases, but it feels like a kludge and auto-linking gets confused sometimes.
  • Also, for bonus frustration, since the Mac ignores case in filenames it can be really easy to get into trouble and overwrite/conflict files.
  • The app is not Open Source (besides it being Electron-based, etc.), so I’m wary of its long-term prospects.
  • The vim bindings are buggy (at least on Windows), and editing is iffy in general on Windows–worryingly, portions of the current line occasionally vanish as I type, in what appears to be a race condition with auto-saving.
  • Keyboard navigation seemed promising at first, but ends up being lacking (switching between panes and doing some common actions via the keyboard requires you to go and define your own bindings).
  • You can’t store vaults in arbitrary folders or iOS file system providers (which would make it easier to use other sync services).
  • Resolving sync issues (of which I had quite a few) can be a nightmare (file snapshots help, but they also lack a “restore snapshot” button for some reason).
  • Moreover, snapshots are local to each machine, so if syncing fails on you for some reason (like when using iCloud sync, which has completely unreliable versioning), you might get stuck someplace without any way to access an older version of your notes.

Things I liked

  • The vim bindings (mostly) work. Mostly.
  • It’s snappy, at least for small (200+) volumes of notes.
  • Bare Markdown support is decent, in that it supports footnotes, tables, and understands document structure enough to provide various kinds of folding (which, incidentally, would benefit from granular keyboard controls).
  • I was able to quickly duplicate part of my name-spacing approach to notes by using nested folders, and (when I got links to work) those were navigable.
  • Switching between notes and issuing commands using the keyboard alone is fast and mostly fuss-free (especially on the iPad).
  • They sort of fixed attachments since I last used it (you can now specify for them to be stored in the same folder as the document you’re editing, or a central folder).

On the whole, though, using Obsidian felt somewhat contrived and a pain when I have over 8000 notes/posts online (3000 of which are vanilla Markdown) and trying to use it to draft more kept going against all sorts of friction (link formats, deviations from standard Markdown, etc.).

So, after some six months of banging my head against the wall, I filed it away under “Zettelkasten hype driven” and started looking for something simpler. I began by looking at things that would run well in Linux, somewhat mistakenly believing they would be a decent lower bound.

Simplenote

I’m going to go straight to the downsides: Simplenote has one serious drawback for me in that it only handles plaintext notes, which means I have to improvise some of the things I can do with (like checklists, which aren’t supported).

It also relies exclusively on its own syncing backend, which means it doesn’t really integrate with anything else I currently use (like iA Writer, which is my preferred longform editor in iOS).

A minor, but recurring annoyance is that there’s zero indication of whether your content was synced or not – which is not ideal when you’re constantly on the move or need to switch devices in a hurry.

On the upside, it has very decent, open source clients for every platform (including , where it’s quite pleasant to use), and there is no shortage of libraries for its back-end. The Electron-based Linux application, in particular, is very usable, although it didn’t cause a very nice first impression – the very first time I used it, it duplicated a line of text, overwriting another.

Unnacountably, the native Mac app doesn’t have a preview. Most of the third-party apps that have sprung up do, however, and I suspect the native Mac app will (unfortunately) be replaced by an Electron shim (which is another thing I consider a downside).

It’s killer feature for me is that it is fast. Plaintext means there are no extraneous features to prime upon launching, very little overhead in editing, copy/paste, etc., and no complications.

On my iPad I can fire up Simplenote, search for a note and start editing in half the time it takes for OneNote to move beyond the splash screen, making it easy to jot down many a stray thought before it scurries away.

vimwiki

Yeah, I know I’m bringing a rock to a knife fight, but it actually works, and is actually quite a good match for how I handle slowly accreting to long-form pieces over time.

But as much as I like vim for its raw speed and wide availabiity (yes, I even use it on iOS…) and how practical it is to write drafts and posts, there is actually a lot I can’t do in it (like previewing).

And those weaknesses translate across to managing rich notes, images, tables, and everything else. But it’s annoying how, when paired with vimwiki, it comes to getting a lot of things right.

Visual Studio Code

From a rock to a Swiss Army knife designed for an 800-pound gorilla, right?

VS Code can be extended to do everything I need (and then some), and now (thanks to Blink) I can also use a flavor of it on my iPad.

But it is a monstruous, And as much as the folks behind Dendron (a popular extension for note taking) would like, it’s not the easiest thing to use, raw or with any sort of extensions–although to be fair Dendron is very close to how I edit this site.

The key reason I’m mentioning it here is that most of the long-form I write goes through VS Code at some point, simply because I have it installed everywhere and it is very efficient and customizable (editing modes, multiple markup formats, fonts, preview, full-text searching of posts, and, of course, publishing via git).

But it’s not a long-form, note-taking application. It is, at best, a finishing application that makes it easy to clean up and publish my notes.

Conclusion

Right now, there isn’t a clear winner, which is a tad frustrating. iA Writer is still the single best editor to begin drafting a long-form piece, and I’m pretty sure VS Code will keep being the one app where I finish them and publish them on most platforms, but everything else in between (from looking up references to managing fragments, possibly including syncing) is still up for grabs.

If you’re reading this while doing research for your own note-taking app, consider these three points:

  • Build a simple and fast, polished UI before getting lost in the weeds of fancy diagrams and relationships. This is what matters to me the most in long-form writing.
  • Don’t reinvent the metadata or markup wheels, and heed the sage advice of Jon Postel: be tolerant in what you accept, and strict in what you output.
  • For $DIVINITY‘s sake, don’t build on Electron. I know it’s tempting (especially if you want to go cross-platform), but… just no.