Last weekend I met up with my friend Lucas Woj and pitched him my idea of the Markdown editor that will rule them all and he promptly informed me that it already exists!

But I had googled for like 20 minutes and did not find one so I demanded he bring proof. After the most suspenseful 25 minutes of watching someone else google, Lucas produced (noticeably disgruntled that it took that long) Typora.

I was ready to strike it down with some pointed criticism, but after using it to write a couple posts I grudgingly came to the conclusion that Typora is sweet.

The Man Behind the Curtain

Abner Lee is the man behind the project and he even had the gall to write a thoroughly more fleshed out blog post on why he thinks the world needed a better markdown editor. I kind of like this guy because we both share a hatred for the two-pane setup of basically every markdown editor in existence

I cannot accept that, only half of my screen displays useful information (for the other half just displays duplicated text content)

I also appreciate this thought:

Therefore, typora is a good experiment to create a lightweight markdown input area, which users may not even feel they are inputing marked plain text instead of rich texts.

Markdown is a means to an end, not a goal in itself. I want to write content that will be elegantly presented to myself and others, however, it would be ideal if I didn’t have to look at Markdown source code the entire time. I am working with my thoughts and ideas, not writing Markdown for the sake of having written hashes (#) and dashes (-). By removing the distraction of syntax, we can afford the author an arguably more productive and focused writing experience.

I am grateful for Abner’s work and am already reaping the benfits of his philosophy on Markdown editing.

So What’s the Rub?

There’s no actual text editor in Typora! I understand that virtually everyone in the world does not use vim, however, we’re talking about my ideal markdown editor not everyone else’s ideal markdown editor. I have opened a ticket on the Typora Issues Github repository, but I don’t have high hopes among the 83 other issues vying for attention. Typora is not open source so I cannot burden Abner with a monstrous pull request injecting vim bindings into his code base and so naturally I must start on the long road to build a Typora competitor.

The Path Forward

I’m not sure that I will actually build a Typora competitor, but if I did, then I would start with two givens:

  1. I would write it in the new-fangled Functional programming language Purescript because I think there is a trove of interesting types in this project and Haskell doesn’t have as nice inter-op with existing JavaScript UI libraries
  2. I would incorporate neovim which affords the ability to embed a fully function instance of vim in any other application

Taken together these two givens lead to the first road block. neovim talks to other programs over MessagePack binary serialization format for which there does not exist a Purescript implementation. So I will start by writing it and seeing if I feel like continuing with the rest of the project. Keep a lookout for follow up posts on that endeavor

Epilogue

I’ve experienced the benefits of ditching the two-pane paradigm of more Markdown editors and I think we could make an incremental improvement by introducing a real text editor into the mix, but how can we further redefine the human computer interaction involved in writing about our thoughts over time? The existence of Typora forces me to even further reconsider the experience of what is going on when a person goes to type out their thoughts and how modern technology can support this endeavor in order to find another angle where I can truly change the way we write Markdown and in doing so the way we store and evolve our thoughts.

Until next time.