Thinking about building a Markdown editor for macOS and iOS

Nota is great, I use it a good deal. But it is an Electron app and it has no iOS counterpart.

1 Like

If you are thinking about creating a commercial product, here’s a wish list of features from Jason Snell. I thought it might be helpful to see what he thinks is missing from current editors.

I’ve always thought having a successful app would be like having a child. Good luck with this task, should you choose to accept it.

Y’all have been very helpful here, thanks!

I suspect this would be a large project. I have been a front-end web dev for some years now, and I can handle the basics of JS and PHP, which is a mile away from Swift, so it would take some time to learn. I’d assume this project would take a year. Maybe more.

@WayneG: Thank you for the reminder about Snell’s article. I feel his pain on many fronts. Not all of that would make my 1.0 (I don’t see the same need for Shortcuts support, at least not for 1.0). But this is a very handy reference.

@va1984: I have submitted a request to check out Nota. I have not tried Typora but could tell just from their website that it’s not what I want. Zettlr was nice, but no iOS app. It would be great if there were one app that could handle all the things, but that’s hard to come by. (Nota will have this problem too). Taio I did not like; it felt wrong on the Mac to me, and that’s where I’d use it most. And Spaces is ruled out for the same reason Ulysses doesn’t make long-term sense for this sort of data, as you point out.

As far as your question, how much time do I have? Uh… I mean, more than I’d like to state, because I’ve gotten the platinum trophy in something like 12 PlayStation games since the pandemic started, but I also run a business where I already do some front-end work, so I am busy.

My thanks to @cornchip for also pointing out nota.

And @geoffaire, exactly my struggle. I’d probably want to charge something for this. No idea how much. Ideally it’d be a fee that was enough for me to live off of if I hit 1,000 paying users. So maybe something like $5/month. And if people don’t want to pay it, I’d try to use the same data structure as something like Obsidian, so it would be backwards- and forwards-compatible.

But all of you, thank you. I’m glad to see I’m not alone in wishing something like this existed. That alone is a comfort.

1 Like

Your ideas also sound close to the abandonware project Outlinely:

You and me both, my friend. If you decide to go the open-source route feel free to message me.

I’ve been thinking about this for a while, although I’ve been leaning towards something on a more small-side-project scale that’s basically only for me and not for any monetary gain, and also not Apple-platform specific. So not a threat but maybe adjacent to your idea :slight_smile:

1 Like

I definitely don’t want an outliner! I want a super speedy native Markdown app that works with plain text files in any directory of your choice, that also supports Obsidian’s native features (wiki links, tags, etc). Importantly, I want it to work just as well for longer form thinking and writing as it does notes.

I’d be very interested in this.

One of my soapboxes is the incompatibility of a lot of “markdown” syntax – in particular extensions of the original (or of Multimarkdown) like highlighting and commenting.

Just two examples:


## highlighting
This is {==Critic Markup==}
This is ==Obsidian==
This is ::NotePlan::

## strikethrough

This is ~~Github style~~
This is {--CriticMarkup--}

Devs often pick one, for any number of (perfectly good) reasons. My complaint: picking any one partially breaks interoperability across markdown apps. And that’s one of the supposed joys of markdown – you aren’t locked into one app or sets of apps … unless you use highlighting, strikethrough, etc.

At least for all the inline styles I’ve tried, it doesn’t have to be this way. It’s possible to incorporate all the options – I’ve got a proof of concept syntax and theme in Drafts that shows how this could work. Happy to share if it’s useful.

3 Likes

The one important thing that is often missed: typewriter scrolling. Please don’t make the carat live at the bottom of the window like a cockroach.

Incidentally, this is one thing I can’t believe BBEdit haven’t resolved yet.

Also, here’s a little summary list of Markdown contenders I wrote several years ago.

4 Likes

You might want to take a look at fsnotes

I think a text editor is wayyyyyyyy beyond a first build.

2 Likes

No, I know, not the same thing. Instead of iA Writer and Obsidian, Outlinely was like if Ulysses, Obsidian, and OmniOutliner had a baby. The experience of using it felt quite like what you’re describing, plus outlining. Just thought it was another comparable data point.

1 Like

I’m not sure how many of your points it touches … but the upcoming nvUltra may certainly be worth taking a look at. They have a beta, and they say it will be released soon … but I don’t know if that’s day, weeks, or months. Developed by Brett Terpstra and Fletcher Penney (he who developed multimarkdown). You should be able to get in on the beta.

Downside: no iOS app. Not a big deal for me but perhaps for you.

1 Like

Have you taken a look at Notebooks? To the best of my knowledge, it’s a native macOS / iOS app. You can create documents in markdown, plain text, or a WYSIWYG format that is stored as html rather than rtf. It has tags and wiki / backlinking. All files are in their native format and stored on the drive of your choosing in a folder hierarchy that you create. You can house and view other document types there as well. You can sync via iCloud, Dropbox, or a WebDav server. You can convert the documents you create into variety of formats, including PDF and epub. A major update with improved linking is apparently in the works.

I use Notebooks all the time for small, short-term, self-contained projects.

ETA: It’s a fully-featured app and not as spare as, say, Nota. But it can be as plain as you want it to be if that’s your preference.

3 Likes

This is delightfully detailed, thank you! I agree this should all work as you state. I’d assume it’s just a bit of regex, but at this point, I have no idea.

Thanks for your list! Typewriter scrolling is indeed important. I’ll add it to my list too, but I’ll be honest and say it wouldn’t make my list for MVP. But it’s definitely important.

Thanks for sharing fsnotes! I’ll give it a try shortly. You might be right about text editors being beyond a first build, but I plan on doing all Apple’s Swift and SwiftUI tutorials, and probably the 100 Days of SwiftUI course too.

Plus, it’s almost guaranteed to be easier to build than my other itches: a good task manager with the beauty of things and tools of OF, or an app for freelancers that allows them to create invoices in multiple currencies, track hours, and project their income in monthly/quarterly/annual/custom views.

I thought you might mean this! Thanks for sharing it in that spirit.

I’ll believe nvUltra is actually releasing once I can finally, for real, download the thing. It feels too much like vapourware to me ow. And I’d like there to be an iOS app.

Never heard of Notebooks before but it looks amazing. I’ll try it today as well. If it scratches my itch, maybe I don’t need to build this and we can all celebrate the existence of a quality plain text app for these purposes. Thank you!

1 Like

This would be awesome. For me all I need is markdown, links, pdfs and images.

Good luck learning Swift, I’ve worked on a few iOS apps in Swift.

I’ve also coded in Java and Objective C, and it’s kind of similar but more elegant (IMHO).

I’d argue both of those are easier than a text editor. Text is inherently messy even when you think there’s rules.

Comparatively generating reports and keeping track of tasks is quite simple. But! Good luck on your journey. Do your best to have fun while you’re doing it!

This is fair — and I could imagine that text would be inherently messy. But I also imagine that the parameters surrounding the rest of the app aren’t super challenging in comparison. I don’t think I’d need a lot of functional toolbar items, for example. Text rendering is the problem, and it must be difficult, because otherwise this itch of mine would be scratched.

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