Thinking about building a Markdown editor for macOS and iOS

OK, I have a bit of an update for everybody. I tried a bunch of the recommended apps, and here are some brief notes:

  • Nota. Nota is nice, but doesn’t have an iOS app and also doesn’t allow the granularity for sorting that I’d like. You can pick how to sort each folder, but you can’t manually sort (which nobody lets you do, actually), and you can’t sort descending. So in my Daily Notes folder, the most recent date is waaaaaaaay down at the bottom if I sort by name, which is the sensible way to sort that folder.
  • fsNotes. Super nice! But it doesn’t work well with checklists and todos. Seems kind of buggy.
  • Notebooks. Doesn’t do Zettelkasten well (it doesn’t autofill anything and you need to be very specific about where your file is in the workspace). Doesn’t like checklists. It won’t render bullet lists and checklist items when you mix them up.
  • Zettlr. Close, but it’s electron and doesn’t have an iOS app. It also doesn’t expand your Markdown links, and the typography is really weird. I’d prefer flat headings style with pound signs.
  • Taio. Didn’t like how this one renders type, and it’s too clearly an iPad app on the Mac. It’s not what I’d want to spend my time in. It also struggles to render unordered lists.

Out of everything I’ve tried, Nota is by far the closest to what I’d want. You can make it include all your Markdown syntax, which is nice. But it also makes all of your assets live in one folder, which is madness to me. If I need an image in a note, the image (or other asset) should be stored in a relative subdirectory named after the file name of the note I’m editing. That way I can easily find it later. It also doesn’t include tags, for some reason, which feels like an obvious miss.

Nota is also very tab happy, and the tabs aren’t native macOS tabs, which is a little weird.

Other than that, it’s quite close. Too bad there isn’t also an iOS app.

I wanted to like fsNotes, but it just doesn’t jive with me at all. It’s good work though. Just not for me.

So I guess I’m going to have to make what I want. The closest thing around is Noteplan, which I could use, but I don’t like that it doesn’t expose file names to me as a user. And as I said originally, it doesn’t really do long-form writing that well and I don’t need the “plan” part. (I say that now, but just wait until I change my mind and immediately abandon this whole project.)

Anyway, for reference, I’ve got a few notes that I would consider “Zettelkasten killers” — as in, if this doesn’t all look good and get supported out of the box and render properly, then I don’t want to use the app. If you’d like to try these files out, I’ve put them on Dropbox for folks to sample.

Here’s why I included these notes:

  • None of these notes are “small notes” you’d typically see people advocating Zettelkasten for, but they are perfect for something like Markdown or plaintext. Markdown-focused text editors like iA Writer usually render them well (so long as they support the task syntax).
  • You’ll note that the Elden Ring bullet journal does not render well in Obsidian. Many other apps struggle with text and checklist items side by side. Some apps, like Taio, don’t use hanging indentations. Nota handles all this just fine. Noteplan handles it exceptionally, but Noteplan is also designed for exactly this use case.
  • No app does the footnotes in Exodus 3 very well. In an ideal world, I’d be able to create footnotes and quickly add text to them. Ulysses does this well, but it also does it with quirky formatting that doesn’t follow strict Markdown syntax. Noteplan doesn’t render footnotes at all. There has to be some in between.
  • The Setting Up AWS S3 Buckets note is a great way to reveal whether or not your Zettelkasten app handles images well. Nota succeeds here. Noteplan does quite well. This is also a great way to see how your Markdown editor of choice handles code blocks.

Until I build my own app, I’ll use Nota on the desktop, unless I need to see my tags, in which case I’ll use Obsidian. I’ll use Obsidian on mobile because of a dearth of options for this sort of work.

4 Likes

Personally, I’d say that if Obsidian isn’t working for someone, especially someone who could write an app, then they haven’t tried Obsidian enough. Because if there’s one thing Obsidian is, it’s hackable. I consider that its most powerful feature, in fact. The ability to turn both the app layout and your data structure on a dime to whatever workflow you need in the moment, or whatever workflow your brain evolves to over time.

True, it isn’t native, but from what I see, the Electron nails that stick out in it are due to them not being polished yet. Stuff that’s easy to fix as soon as the development team makes it a priority. Not stuff that’s hammered in the wrong way and hard to fix, like slowness. And to me, Visual Studio Code is proof of concept that an Electron app can be made amazing objectively.

2 Likes

Or alternatively, if there’s one thing Obsidian is, it’s simply a vanilla MD editor until you put in the time to figure out exactly how to hack it reliably to do what you need.

This is where I start to step off the train.

Which is where I step further off of the train.

My major frustration is that Obsidian is not intuitive to use. For someone who is not into markdown as a life blood, and for someone who has the language of macOS inherent in his workflow, I am just not getting a “this is a joy to use” vibe when I open Obsidian. Rather, I get a consistent “let me remember again that creating a new note exactly where I want to put it is a PITA and may not work but let me keep trying this again anyway” experience.

And the discussions that go on and on and on and on about things such as “How do I coordinate Obsidian with (APPXYZ … e.g. Zotero) so that THIS THING can happen …” leave me wondering … “Isn’t there already an app that coordinates with Zotero to do that and why should I have to keep going back here to figure it out each time”?

I do not doubt for the potential power in Obsidian. But it seems akin to the old days of building your PC computer one component at a time, shouting about how great it is, and finding out five minutes later that the next update to the OS will crash your special high-performance graphics card versus buying a Mac, plugging in the video in cable, and having it just work.


JJW

5 Likes

This is a straw man’s argument. If you’re the sort of person who wants a 5K monitor, no 4K monitor will meet your needs. If you’re the sort of person who wants a native app for a task, no hackable electron app will meet your desires by very definition.

VS Code is exceptional and I use it every day, even over tools like Nova or BBEdit, because it suits my needs better. But it’s also an app for programmers, so of course a hackable app fits the niche. It’s an exception, not a rule.

If you like native tools like iA Writer, but want to use Zettelkasten on Apple platforms, you’re outta luck.

And it’s cool if you’re happy with Obsidian! I’m not. I hate the way I scroll through long documents and see it rendering in real time. I hate it’s contextual menus. I want a menu bar. I want it to be more like a Mac app. What am I supposed to do, hack the entire codebase? It’s not open source. It’s just CSS-friendly. Not the same thing.

But if you like it, you do you. You’re probably not the sort of person resonating with my needs listed in the first post.

1 Like

Listen, if you want to build an app, go for it. I’m just telling you that in a universe with these two statements:

…this third, implicit statement cannot be true.

Ok, that’s fair, but you are literally putting words in my mouth :wink:

Electron does not preclude Obsidian from being great, and for some, it is or will be. But for others, like me, I want native file browsing, a native menu, and native type rendering with native macOS spell check and native tabs, native windows, etc. It can do a couple of those things, but Obsidian will never do all of those things.

Besides, Obsidian is free. My app probably won’t be, because I have a wife to support and a house that sucks up money like a vacuum. So I’ve already lost the market for most people. I’m cool with that. I just want to make an app for people who want what I want. And there could be at least a dozen of us!

3 Likes

Electron precludes Obsidian from being native, and that’s enough for some of us to want to look elsewhere. The pleasures of a native apps are numerous, they are subtle, and they’re deeper than CSS tweaking.

To be clear, as of right now, I use Obsidian and other Electron apps daily, I even send monthly money to both Obsidian and Zettlr, so you cannot deduce that I am an anti-Electron fundamentalist. I recognize that these developers filled a niche that no Mac developer had or has yet filled well – and this fact alone is a warning for the health of the Mac platform. It’s great that those Electron apps exist. But it’s gonna be even greater when @snelly’s app is ready to go!

2 Likes

This is tremendously kind of you, but you might be waiting a while, so somebody else could well beat me to it. I’m just about done with Day 1 of 100 Days of SwiftUI. So far, it’s (almost) all stuff I know from Javascript, but I don’t want to miss anything. And I think once I’m done here I’ll need to spend some time in UIKit and the Core Data framework before I’m able to make an app that doesn’t totally suck, so give me 12 months.

But I’m on it.

3 Likes

Guys, I am greatly inspired by you guys. I am not a coder / programmer / developer at all. However, I am determined to learn, even though I have very little basis to start.

I do not think I have any app that I can share in any time soon, this is just for my own personal development. Hope no one laugh at me for such silly and late start

3 Likes

Who wants to bet that @snelly beats nvUltra to release? I think he’s got a chance! :slightly_smiling_face:

5 Likes

I don’t meant to be snarky to Brett, who is truly gifted, but given what we know about nvUltra, I wouldn’t bet against me releasing an iOS version of this before he does…

But listen, if somebody else beats me to it and makes an incredible flipping app for this, I’m not committing to finish this thing. I’m just committing to learn. If somebody puts out the equivalent of iA Writer or Nova for long-form Markdown and Zettelkasten, then hey, that’s great.

1 Like

Thank you for bringing up Notebooks. I thought I had seem them all, but amazingly, there is always one more note/markdown app.
I really like it so far, it may have a shot at supplanting Obsidian for me, but I don’t want to speak too soon. Anyway, thank you for the suggestion.

On balance, I agree with your general sentiment regarding Obsidian, @snelly. However, I use iA Writer along with DEVONthink 3 to maintain a large Zettelkasten notes database. You absolutely can use Zettelkasten on Apple Platforms via native apps.

But maybe I’m missing your point…

I would be interested in hearing more about your workflow, with the caveat that I really need nothing more than what Markdown does already: plain text with the occasional image thrown in. Add some checklists if I need to, etc. That would be enough for basically everything I write and take notes. The only addition I really want is wiki links with backlink references.

My understanding of DT, which is admittedly super fuzzy, is that DT wants me to keep things in its own database? It would be better (for me, not for everybody) if everything was just in a plain text file that didn’t rely on any one specific app to open. (I recognize the irony in saying that and also learning to code to build a specific app that does what I want, but I’m a neurotic person.)

DT can either import the files into its own database, or it can index any folder of files without importing them and provide the same functionality. That’s how people use it together with iA Writer, Obsidian, Zotero etc., indexing and working on the same set of files.

1 Like

Thanks. I read up on this last night and tried it. I would much prefer if this all happened in the same place I wrote, and if I didn’t need to add another tool to do this.

Actually I think @jacobio and @dario may be right. An indexed set of notes in DEVONthink is pretty close to (my understanding of) what you’re seeking out.

This is a markdown file in ~/iCloud Drive/Obsidian/Mainframe/ open in DEVONthink 3, showing both the markdown source and preview, and the inspector with its incoming links.

This is the same file open at the same time in DEVONthink To Go:

DEVONthink’s indexing and databases can largely be disregarded if you’re just going to use the app as a markdown editor with linking features.

I go into detail about DEVONthink here because, if you’re pursuing rich linking metadata, you’re ultimately going to run into the same issue DEVONthink and Obsidian and all the others have.

That is: how do you build knowledge about links into markdown files?

This inevitably requires some kind of in-app database of the files. It just so happens that many of these apps have adopted the same [[wikilinking]] convention, allowing them all to come up with their own way of implementing that in-app database. So, when you say…

I get worried about a dead-end rabbithole.

Other approaches to this feature are Ghostnote and Hook. Arguably, both provide links in place. But I think they are “another tool” as well.

4 Likes

I don’t want to dissuade you, but having gone down your path of learning SwiftUI recently, you should probably aim for something smaller first. Creating a Markdown editor that is better than the competition is not going to be easy. Create a few simple apps first before trying to tackle what will be a challenging project. I’ve been doing that because SwiftUI is a different programming paradigm from anything I’ve used before and so some things that I know how to do are just not obvious because of the declarative nature of SwiftUI.

1 Like

Wow, DEVONthink has really come a long way since I last used it.

1 Like

It’s not that this wouldn’t work, it’s that what I want is a nice writing environment. And DT doesn’t qualify as that for me.