Making it easy to write on your phone

This is a story of disruption. I wanted to make it easy to write blogs posts on my phone. My Android app was not working, despite months of work. Taking a break lead me to discover a brand new way that opened up new avenues for anyone to use any mobile phone by just emailing their posts.

Covid has been tough on parents. The other day my unvaccinated daughter had her class cancelled for ten days because a kid in her class tested positive for covid. So, there goes my week, and it’s been like that for a year and a half. I’m grateful for all the time I got to spend with them, and my wife has been a rock, and it was a year full of fear and worry.

Raising kids is always disruptive (it’s also the most rewarding thing I could ever imagine), but the world I live in says that disruption is healthy and leads to big breakthroughs. Eight years ago I was holding my sleeping infant son at 3 in the morning, wishing I could be writing at the same time. That’s when I created an Android app to blog “one handed” so I could write while my son slept on my chest, or really, in any situation where you weren’t sitting down in front of a typewriter (like Hemingway).

That app, through a circuitous route, got me a book deal with O’Reilly. And kept my skills current enough through three other kids for me to work at one of the largest e-commerce companies in the world on their Android app.

A few years ago, I got excited about GitLab, and started changing the app so it would use GitLab instead of GitHub. It led to great instability. Saving posts would often not save. Sometimes they would, which was even worse. Was my code that problem (most likely) or was it that the GitLab API was flakey? An app is supposed to make it powerful and reliable, and it was the opposite for me. And, that interrupts my writing, and would interrupt anyone else’s writing flow. I wanted to use an Android app because I wanted something I could go offline with, and add a post and review it later, either in the online editor, or on my laptop, or whatever. But, if I had no confidence that my drafts were saved, it was agonizing.

When my daughter’s class was cancelled, I took her and her best friend out to the Scottish garden. Walks are the best way to get my mind flowing. It suddenly hit me, what I want to do is send my drafs via email and then edit them later. After a few hours of coding, I had what I wanted. I could email a draft from my email client, get the HTML converted to markdown, added as a draft, and then have that built into a preview site which I could send to people for review.

It works like this, just compose an email in any email client:

Compose Rich Email

Notice how I’m using the format button. I can use bold, italics or underline.

Then, I email to a special email address just for my blog. blog.svekyll.com+23123131@i.extrastatic.dev

After a few seconds, ExtraStatic creates a new draft (stored as a branch in GitLab, with a codename) and I can see this.

Draft Received

When a new draft is created, ExtraStatic also generates a preview site for me, and emails me that link. I can send that link to anyone if I want to have reviewers, or I can review it to see what it looks like before posting it to my regular blog.

Preview Site

Later, after receiving reviews or making changes, I can then click publish and merge that draft into my main site. My site will be regenerated, and automatically published.