How I Convinced Our CTO to Switch From CoffeeScript to ES6
Aha! is a Rails monolith. Although we have embraced front end technologies, such as webpack and React, Rails is the glue that holds everything together. And like many Rails monoliths, CoffeeScript made up the bulk of our front end code. It was the obvious choice for us when Aha! launched in 2013 – back when Rails 3 was stable and ES6 still lived in arcane specification documents.
My Sublime Text Setup Revisited
Three and a half years ago (wow, time flies) I wrote a blog post detailing my Sublime Text configuration. Over that time, I’ve tried out a handful of new offerings (Atom and VS Code among others) but I’ve never found an editor to match the speed, stability, and ultimately productivity of Sublime. I was recently going to link my old post to a coworker but realized it’s now pretty hopelessly out of date, so I decided to write a new post about my Sublime Text setup. I hope it helps you get started on my favorite text editor.
Why Your Email App Sucks
2.5 years ago, I wrote a post about the state of email apps for Mac that surprisingly got a little popular on Hacker News. At the time, I was bullish on Mail Pilot, but in the weeks and months following the post it grew buggier and less reliable and ultimately ended up with the others on the trash heap of email apps.
You would think that the state of email on the Mac would have improved in the 2.5 years since that post, but you would be wrong. Slack grew to a $4 billion company; Facebook grew from 1.25 billion to 1.75 billion users; a few hundred unicorns were born, grew up, and died; and email in the Apple ecosystem is just as underwhelming as it was two Januaries past.
It’s not for lack of trying. There are many, many options out there, and it’s a hobby of mine to try new ones every month or so. But almost invariably, my experimentation leads to disappointment. Like Sisyphus, I’ll continue rolling this rock up the mountain until someday it perhaps sticks at the top. But for now, here’s why your email app sucks.
Email startups: stop selling yourselves to big tech companies.
Mailbox – Never even made it out of beta. Thanks, Dropbox. Even before it was fully shut down, I never really got on board with the idea of doing away with labels/folders. An app with that philosophy also needs really good search to support it (so I can find old mails a few months or years later) and Mailbox never really delivered it.
Sparrow – Thanks, Google. It doesn’t even have a homepage anymore (http://sprw.me leads to a 404 page on Google). I remember it being promising, but alas.
Acompli – Was bought by Microsoft and turned into Outlook for iOS (more on that later). Their homepage just redirects to Outlook now. At least so far, though, Microsoft has done a good job of actually putting their acquihire to good use – they rebranded the app but it’s still a pretty good option that’s under active development.
Mail.app – Is really the baseline for mediocre. It’s the built-in default and it does the job, but it’s buggy and crashy, it needs to update my email library every few months when I open it (why does my email need a library?), and it lacks any sort of innovative feature set (or even support for things like snoozing).
Airmail ($9.99 macOS/$4.99 iOS) – Airmail is the trusty jalopy of email apps. It’s the default I usually bounce back to after a disappointing experiment with a new app comes to an end. It’s just good enough that I come back to it, but it’s consistently buggy and bloated, often crashing in the middle of a long email or when trying to sync new messages.
Wanted: Mac App
Maybe I’m just too needy, but I want a unified experience with my email – the same app on my iPhone and my Mac. Much of this is because I run into compatibility issues trying to use two different apps – for example, most iOS apps that support snoozing actually stick the message in a special Gmail folder that they hide, while others will create special folders for their lists or “todo later” features. At any rate, this category of apps would be great if they also existed on my Mac.
Google Inbox (free iOS) – My kingdom for a unified inbox and a Mac app. I would never leave Google Inbox again. It’s almost perfect – stable, amazing Google-powered search, snoozing by time and location, all the bells and whistles. And I only have Gmail accounts so I’m fine getting my email straight from the source. But it doesn’t have a unified inbox (switching back and forth between my personal and work accounts is slow and inconvenient) and it doesn’t have a Mac app (I like having my email outside of a browser tab, with notifications). While I’m on the subject, Gmail for iOS has exactly the same problems, without the innovative features Inbox offers.
EasilyDo Mail (free iOS) – EasilyDo Mail, conveniently shortened to Email, is actually a pretty nifty little iOS app. It supports all of the major things I care about – it’s stable, allows snoozing messages, has pretty good search, etc. It has really nice personal assistant features like finding receipts and travel itineraries (which makes sense because EasilyDo’s primary product is a personal assistant/AI app for iOS). But it lacks a Mac app, and the team behind it doesn’t seem to really be focusing at all in that direction. It also lacks support for HTML signatures (although EasilyDo says it’s coming this month) which is important to me since I need HTML for my work signature.
Boxer ($4.99 iOS) – Boxer isn’t a bad iOS app. It supports all of the standard features like snoozing and features really good customizability (swipe actions and more). It also integrates nicely with a bunch of other services, like Dropbox and Evernote. But it’s somewhat buggy for me on iOS and it lacks a Mac app.
Dispatch ($6.99 iOS) – Dispatch is built around the concept of turning your email into actions, sort of like a more advanced Boxer. It interacts with 31 (and counting) 3rd-party apps from Maps to Todoist to Pocket, allowing you to take contextual actions based on the content of your mails. But it doesn’t support snoozing, and doesn’t even have true push notifications; and again, does not have a Mac app.
Outlook (free with Office 365 on macOS/free iOS) – Outlook is sort of a dishonorary mention here. The iOS app is actually super good, and it’s because Microsoft basically bought email startup Acompli and rebranded it as Outlook. But the Mac app, even though it exists, is an entirely different story; it’s just the classic Microsoft one and is missing nearly all of the advanced features of the mobile app. I also think the iOS app tries to do too much – it has 5 tabs on the bottom including Contacts (which shouldn’t be a top-level tab) and Calendar (which I don’t want at all since I use Fantastical, and I don’t really want my email app to be my calendar). Mark this as one to watch though – if Microsoft lets Acompli do their thing and some of the iOS features make it over to Mac, it could eventually turn into my daily driver.
Others – there’s at least 5-10 other iOS-only mail apps I could include in this section, but for the sake of brevity, none of the ones I’ve tried are better at their headline features than Inbox/Boxer/Outlook.
Wanted: iOS App
I originally didn’t think to include this section (not particularly clever since this is an article about Mac apps) but a few HN comments reminded me of some Mac-only apps that are definitely worthy of being mentioned.
Postbox ($20 macOS) – Postbox is a very stable but also somewhat mundane app. If all you really want is a more stable and regularly updated version of Mail.app, Postbox is probably for you. But it lacks advanced features like snoozing and it doesn’t have an iOS companion app.
Nylas N1 ($9/mo macOS) – Actually free, because it’s open-source, but $9/mo to enable snoozing + send later (which requires Nylas’s servers to work). N1 is an interesting and rapidly rising option for Mac, with a clean design, smooth cross-platform experience built on Electron, and support for some innovative features. However, it doesn’t have an iOS app and N1 says they don’t have plans to build one anytime soon. This is a particular problem because N1’s snooze/send later implementations won’t play nicely with any different mobile app’s snooze/send later.
Mailplane ($24.95 macOS) – Mailplane is a very elegant wrapper for the Gmail web interface. It supports plenty of native features like notifications and shortcuts, and it provides a nice simple tabbed interface for multiple Gmail accounts (or calendars). But it doesn’t get you much farther than web Gmail does – no unified inbox and no support for snoozing, etc.
Boxy (free macOS) – Boxy is basically Mailplane but for Google Inbox rather than Gmail. It adds similar native features like notifications, but also no unified inbox (it’s just a web wrapper). The big downer for me is that there’s no tabbed interface; multiple Gmail accounts require me to either switch back and forth like the Inbox iOS app or have multiple windows open.
The Bloated and the Buggy
Polymail (free macOS/free iOS, beta only) – I used Polymail as my primary email app for a solid month or two but recently had to give up on it, at least for now. In spirit, it’s the heir apparent to Mailbox, offering a clean, beautiful UI and advanced features like open tracking (it sticks a tracking pixel in your outgoing mails and tells you when people open them; haven’t decided yet if this is creepy), one-click unsubscribe (super useful and everyone should do this), and scheduled followups. It also has pretty good search for a product that’s not Google. But (and it’s a big but) the stability is awful. On Mac, the most recent few builds will keep consuming memory (as high as 5GB or more) until my Mac runs out and I force-quit. On iOS, the app has serious crashing issues; it’ll frequently get into a state where it just auto-crashes after the app is open for 30 seconds or right after I start typing an email. Mark this another one to watch – their dev team has been pretty responsive to these issues and I would have no problems giving it a solid recommendation if it was stable. But for now, it’s just not reliable enough for regular use.
Inky (free macOS/iOS, monthly fee for Exchange + Google Apps) – I’ve used Inky a handful of times and generally found it to be somewhat bloated and slow, without snoozing or any other particularly inspiring features. My sense from the homepage is that it’s marketed primarily to businesses, which might explain why it’s not particularly appealing to me.
Mail Pilot 2 (unavailable) – I discovered when writing this that Mail Pilot 2 seems to have been pulled from the Mac and iOS app stores; as I recall it previously cost in the neighborhood of $10 for each. Their website just has a mailing list signup and a big banner for Throttle, a different email-related service, so who knows if it’s coming back. At any rate, when I used it, it had a pretty good feature set and some great keyboard shortcuts but was incredibly buggy particularly when syncing email.
- CloudMagic ($19.99 macOS/free iOS) – CloudMagic is my current email app at the time of this writing. It has pretty stable apps on both iOS and Mac, and $20 is a little high for the market but I don’t mind paying especially if it means my email app won’t get acquihired in the near future. It’s a bit basic though; it doesn’t have email snoozing or any other features that are particularly innovative, and it doesn’t integrate with anything like Dropbox for attachments. It’s somewhat promising and the stability is good, but it might fall into the Mediocre heap in the next few months absent substantial continued development.
- Unibox ($15.99 macOS/free iOS) – I’ll be honest, I just don’t get it. Unibox’s shtick is that it organizes your mails like a text/Facebook conversation, by individual contact with emails threaded into conversations and recent contacts rising to the top. It’s probably a fine choice if that’s a workflow you like but it’s really not my cup of tea, especially since a lot of my mails are things like automated alerts or newsletters that don’t fit well in the contact/threaded model.
Email, as it turns out, is a harder problem than people tend to assume. It’s an unforgiving space – competitors abound, users expect you to be free or nearly free, and from a technical standpoint email protocols are not pleasant to work with. But email is still an unsolved problem; there is ample room for a startup in the mold of Slack to move in and turn the space upside down. Some of the existing players are promising: Polymail could do it if they could fix their stability issues; Outlook could do it if they avoid the Microsoft curse and overhaul their Mac app; and CloudMagic could do it if they aggressively expand their feature set. But until then, I’ll continue bouncing around between unsatisfying options and writing blog posts every so often to complain about it.
So it’s been a hot second since I’ve written a new blog post. Even longer when I reflect on the things that have happened since October 14, 2015. Here’s a brief list (in no particular order):
- Became Director of Technology for Bernie 2016
- Learned a metric crapton about the world of American politics
- Made a few thousand commits on GitHub
- Assistant-coached a debate partnership to second place in the country
- Watched every episode of Rick and Morty a few hundred times
- Got engaged to the woman I’ll spend the rest of my life with
- Saw LCD Soundsystem live for the first time
- Got a new cat, Morty (yes, named after that Morty)
- Rejoined Aha! after my tenure at Bernie 2016 was complete
- Learned Elixir, Phoenix, Redux, and Alt.js, might sometime in the future prefer Phoenix to Rails
- Confirmed I still strongly prefer CoffeeScript to ES6
- Spent several cumulative days on reddit
- Ate a few pizzas, drank a few beers
- Forgot entirely how to publish a new post with Jekyll
Okay, hopefully I’ll post more interesting stuff soon, but I’m trying to get back into the swing of this so this post will do for now. Cheers!
Why You Should Not Major in Engineering
My college algorithms class was the final weed-out course in the computer science program. It covered advanced topics like computational complexity and graph theory. If you passed, you would likely graduate. If you didn’t, the universe might be hinting that you aren’t cut out for a computer science career.