The Story of Letterbox

I want to go back in time and tell you of a piece of software I tried to create that was way too big for myself to take on.

Inception

Way back in December of 2015, Dropbox announced that Mailbox, their cross-platform email app, would end in February the next year. It was by far my favorite email client to use, and I was deeply saddened by this loss. Mailbox was the ultimate solution to combining my 4 email addresses into one seamless inbox that I could sign into on any device that I used, and I would have to switch back to separate, clunky apps for each of my computers and for my phone.

I needed a solution to this. That’s why the same day as the announcement, I set out to build my own cross-platform email client with Node.js. I set up a GitHub repository, started writing up a manifesto in the readme, and drafted a prototype in HTML.

Building it

Now that I had the idea and the place to build Letterbox, I had to actually learn the tools I was going to be using. I started out with node-webkit (now called nw.js) to turn my HTML and CSS pasta into a usable desktop application, until soon after I switched to Electron. I wanted to use web technologies so I could easily port it to other platforms later on.

I held off on coding the actual email processing part for a while, since I knew it was going to be a daunting process. That’s eventually what made me cancel this project; I had no idea how to do exactly what I intended to do.

That being said, I do think I designed Letterbox quite well. I did take a lot of inspiration from Mailbox, but I also looked at other email clients and figure out what I liked and didn’t like about them. I used the Materialize CSS framework to help my design, but I modified it a lot to suit what I wanted out of it.

Why I cancelled it

I worked on Letterbox on and off through June of 2016. Like I said, most of what brought me to cancel this project was that I really had no idea what I was doing in terms of programming a robust email client. I also had discovered a new, Node.js-built email client called Nylas Mail (called N1 back then). It wasn’t perfect; it didn’t have a mobile app, and in December Nylas announced they would be moving to a paid plan to use their sync service. But it’s open source, and not long after they announced a free version again. It was enough of a reason to stop me from working on Letterbox.

It’s not all bad though! Through the process of building it I learned a butt-ton about Node.js and Electron, which in my opinion is a huge plus for my skill set. Before I had zero experience creating desktop apps, but Electron provided me a gateway to do just that. Even more, I worked on a side-project called Titlebar which is a Node.js module that emulates a macOS and Windows title bar. The macOS portion of it was already created by Kapetan, but I contributed the Windows title bar design.

Even though I didn’t accomplish what I originally set out to do, I learned a hell of a lot about how to do it. These newly-acquired skills are going to help me so much later on in my computer programming and web design career.

I guess the moral of this story is that it’s not the destination that counts, it’s the journey that gets you there.

Rest in peace.