Few days ago, Basecamp released their brand-new email service, Hey.com, in an invitation-only regime (update: as of June 25th, invitations are no longer needed). They managed to ignite quite a hype around the new web and no wonder − Hey promises a completely fresh start, a redo of the way you read, write and manage your emails. Sounds great, huh?
I’m lucky enough to be already in so… I can play around! And I can tell you, handling all my forwarded emails to matous@hey.com feels great so far! But this post is not about the user experience or features. You can read about them elsewhere or have a look at the fabulous Hey demo by Jason Fried.
For me, a Ruby on Rails web developer, it’s the Hey technology that is equally (if not the most) exciting thing about the new web, the question How did they do it?
Why? Because what we heard about the forthcoming web tech stack during the latest months was very expected (“What else than plain old Rails could its creators possibly use?”) and, at the same time, very bold (“But Rails is not that great for such interactive sites and, besides, it will be too slow!”). All of this gained a lot of traction and triggered a ton of expectations.
And in a way, indeed, Hey is a very “boring”, old-school technology: everything is server-side rendered, only good old HTML data is sent over the wire using a REST API, the pages are made interactive with just a few bits of Javascript, most of the application code is written in ruby, HTML and CSS, just like we did years before. There’s no mumbo-jumbo technology, no React, in fact, no big front-end JS framework at all, no SPA, no CSS in JS, no client-side state, no GraphQL, no MongoDB, no JSON, no no machine learning, no microservices, no serverless computing.
Yet the Hey web feels damn fast, very interactive as well as clean and modern-looking. How did they do that? That’s what I’ll try to dig up from the web and present here in the following posts. It will be an open-ended series with each post trying to bring a particular technology “trick” to a wider audience. We'll start with a cute little feature, the keyboard shortcuts.
As a little disclaimer, please note that I have no access to the source codes of the Hey app. Everything that I state here is based on various info on the social networks and, more importantly, an analysis of the web itself using the developer tools in my browser. I spent quite a few hours looking into the web code and whatever I think I get, I’ll try to share with you, as long as my free time allows… 😏
This is also the right place to show my big appreciation of the generous approach that Basecamp takes regarding their source code. The back-end code itself is closed source but the client-side code is freely available and wonderfully readable as it is all covered with source maps! Without them none of this text would be possible. Thank you, Basecamp!
Stay tuned and feel free to tell me what you want to read here about the Hey tech stack. Send a comment or email, you know the address, right? 😉
Top comments (4)
I love reading this stuff. Im currently learning rails. I'm looking forward to seeing more under the hood posts!
Thanks and good luck with Rails! :)
Could you please share the invite code :) Thanks!
I would love to but I have none left, sorry!
But it shouldn't take more than about a week before all invite requests are sent by Hey: twitter.com/jasonfried/status/1274...