Paperwrite

13 Apr 2019

For a long time I've wanted a laptop with an e-ink screen, for writing outside (in sunlight), and late at night (avoiding bright screens).

I think it's a common dream - but, weirdly, one without an existing commercial implementation.

Back in 2015, Shubhro Saha came up with a really clever workaround using a Kindle. I tried it out then, but getting started each time meant running a couple of local servers on the laptop, opening a browser, setting up the kindle browser, then arranging all the hardware so that I had the kindle propped up, an external keyboard in front of it, and the laptop out of the way. It was fiddly, more-or-less append-only for writing, and I didn't use it much.

To change your behaviour, change your environment. I needed to make it better.

On the software side, I've added a visible cursor. This makes live-editing possible, which is essential for me; I often start by writing the beginning and the end, and then figuring out the middle. It's a hack (the Kindle's Experimental Browser is limited and buggy), but it does work, even well enough to copy-paste to rearrange paragraphs.

I swapped contentEditable for an old-school textarea, which means that I can now autofocus it when the page loads, saving one more step on startup.

I've tidied up by making sure that my home router always assigns the same IP to my laptop, then set the URL as a bookmark on the Kindle, so it's only a couple of taps. On the laptop side, I have a script that boots up the Meteor server and opens the browser.

On the hardware side, I cut down some plastic curtain hooks and glued them to the back of my kindle. I cannot overemphasise how much difference this makes. The kindle hangs neatly over the laptop screen, making it possible to use the laptop's built-in keyboard, and to rest the entire arrangement on your lap. Turning off the backlight on the LCD - another couple of keypresses - makes it distraction-free.

I'm genuinely surprised by how well this all works, and I'm really excited about how relentlessly this focuses on what really matters, and on unconventional solutions. As it turned out, the old system wasn't working mostly due to setup time, difficulty editing, and hardware fiddliness. To fix that, I didn't need new hardware, just 2p worth of curtain clips and glue.

Similarly, my software changes include actual crimes - right now, it sends the entire document across the wire, and writes it to disk, on every keystroke. I could fix that easily, but I'm not going to, because doing so would deliver no user value.

You can get the code here.


Q&A

This is nuts. You're using a Rube Goldberg 2019-era software stack to perform text-editing that was possible on a 1980s PC.

If it's stupid but it works, it's not stupid. A more technically excellent build would use, say, a Raspberry Pi, an e-ink screen, and a custom case. I looked at that, and it would have been fun to do, but the cost/benefit didn't work out.

What about the latency?

It's definitely noticeable. I thought it would be a dealbreaker, but it turns out that, as long as there's a visible cursor for editing, it's not. What really mattered was portability and setup time. There's no substitute for user testing.

Did you really use hot glue to attach curtain hooks to a Kindle Oasis? Do you even care how much work the Amazon engineers put into making it thin and ergonomic?

Yes. And no.

(But I did put a layer of duct tape down first, so I'd be able to remove them if it didn't work out)

You should wipe the fingerprints off your laptop screen.

Doing so would deliver no user value at this time.