Using GitHub to host Markdown files
Why should developers be the only ones who get to have fun with GitHub repositories? Writers can get in on the action too.
The point of this post is not to teach you how to use git and GitHub. You can find other resources to help with that. I intend only to explain why GitHub might be a good option for hosting Markdown files for cross-platform writing.
My digital writing workflow was straight forward as long as I was using only devices made by Apple (Mac mini, iPad, and iPhone) and could sync all of my Markdown files via iCloud. However, I ran into a problem whenever I re-purposed an old Asus laptop by installing Fedora 35, converting the laptop into a Linux desktop. (I call it a “Linux desktop” because the display no longer works, but the laptop projects onto an external display via the HDMI port).
I knew of no way for a Linux computer to sync with iCloud, so I had to look for a third-party syncing solution.
Following is a snapshot of some other options I tried before settling onto GitHub.
Technically, Dropbox could have worked—if I were willing to pay $9.99 a month (or $11.99 a month if I didn't pay for a year upfront) for the Plus plan. But I didn't want to pay just for syncing Markdown files. It's not as if I have a huge library taking up gigabytes of storage, so anything more than $2 a month feels like a waste of money.
I could have stuck with the free plan if I were willing to limit myself to only 3 devices. But I instead chose to stick with my 4:
- Linux desktop.
- Mac mini.
I also considered Dropbox Paper. While Paper does respond to some Markdown, I ran into a couple issues:
- Paper didn't recognize links written in Markdown. (What other problems would I run into if I used Markdown beyond headings?)
- Paper doesn't save files in Markdown.
I appreciate that Markdown allows flexibility for editors—I don't want to be locked into a certain app or ecosystem. I write my Markdown files in iA writer on Mac and iOS. iA writer does not have a Linux client, so on Linux I use Typora.
Box & Google Drive
Box looked like a great option, especially since I have 50GB free due to some promotion from a few years ago.
But Box doesn't have a Linux client. And using WebDAV has never seemed reliable to me.
Also, Google Drive no longer has a Linux client. Boo!
No, thank you.
I considered using Nextcloud to host my own cloud on a VPS like DigitalOcean or at home on my own Raspberry Pi. But I've been down that road before and know that I don't want to be responsible for maintaining my own server.
GitHub to the rescue
After the failures listed above, I decided to give GitHub a shot. And I'm glad I did, because the process couldn't have been much easier.
Using GitHub to host my Markdown files has required:
- Creating a private repository for my files.
- Using git for syncing the repository on the Linux desktop and Mac mini.
- Using Working Copy for syncing the repository on my iPad and iPhone.
Perhaps I would not have been so quick to go with GitHub if I hadn't already paid $19.99 for the Pro version of Working Copy. But the price of the Pro license is comparable to two months of Dropbox's Plus plan, so this solution would still make sense.
Despite being happy with my choice of using GitHub, I would be dishonest not to mention some concerns with this solution.
Syncing is not automatic
Syncing via GitHub is not a big deal. Just execute a pull or a commit and a push, and you're good to go. That said, I could forget to push on one machine and then jump to another machine, unable to access the latest version of a piece of writing on that original machine.
Fortunately, I'm not working on any mission critical projects. Worst case scenario, I might take my iPad to the coffee shop and be inconvenienced because I can't access the latest file version I edited on my Mac mini or Linux desktop. That's a risk worth taking.
This problem kind of plays into the point about syncing not being automatic.
What if I'm out of the house with my iPhone or iPad and do not have reliable internet, meaning I can't pull and update from my GitHub repo?
While my concerns are valid, I am fortunate that I am hardly ever without internet or in a situation where forgetting to sync would be detrimental. Also, I am not currently working on anything critical that could not wait until a later date, even if my anxiety makes me forget that at times.