Kyle Conroy

Blogging on Paper

I recently published my first blog post of 2017. The fact that it was posted exactly one year after my last post was mere coincidence. Looking over the the last six years of my blog, it's hard to really call it a blog at all.

Year 2011 2012 2013 2014 2015 2016 2017
Number of Posts 0 1 1 2 1 1 1

I think I may change the title to "Kyle Conroy's Personal Yearly Post". I'd love to pretend my posts are so meticulously researched that they take a year to write, but that's not the case. It took me more time to deploy my site than it did to write "I should write a blog post".

One of the reasons for the slow output is my current workflow. I write posts in Markdown using vim, generate HTML using Jekyll, and serve the content via a small web app in Go on Heroku.

There are a few problems with this setup. Starting a new post involves firing up vim and creating a new Markdown file, a process which isn't easy to replicate on mobile. When I'm finished with a draft, I can't easily get feedback from peers unless I open a PR on Github and invite them to my private repository.

At work, we use Hackpad as one of our tools for collaborating on documents. Dropbox bought Hackpad, shut it down, and turned it into Dropbox Paper. Paper feels like Hackpad with all the bugs ironed out. Once I found out that Paper supported exporting documents in Markdown, I decided to try it out for blogging. After writing two posts in Paper, I'm glad I've switched.

I found myself in some long lines at a museum over the weekend. While I was waiting, I worked on few posts using the Paper mobile app. I'm sure there are mobile apps out there for editing Markdown, but I'd need to figure out how to integrate them into my workflow.

Paper also supports inline comments. I was able to ask a few friends for input on the previous post, and they could post comments inline. Many document editing platforms support comments, but I haven't used one before for blogging.

My previous setup is unchanged save for an extra step at the start where I pull down posts from Paper using the API. While the API works, it was some serious short comings:

  • The markdown export doesn't support fenced code blocks.
  • The API doesn't return the date a document was created or updated.
  • Changes to Paper documents don't generate webhooks.
  • I can't create a read-only API key.

These are minor annoyances now, but may prove problematic in the future. I've also open-sourced my Paper API client written in Go. It's incomplete, but implements enough of the API to export documents.

I've now written two posts within the span of a week. We'll see how long it lasts, but using Paper has made writing more enjoyable.