A few sneak peeks into Hey.com technology (I - Intro)
Tags: rails, ruby, webdev
Published: 2020-06-18 17:41:35

Few days ago, [Basecamp](https://basecamp.com) released their brand-new email service, [Hey.com](https://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](https://hey.com/features/) or have a look at the fabulous [Hey demo](https://www.youtube.com/watch?v=UCeYTysLyGI) 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](https://dev.to/borama/a-few-sneak-peeks-into-hey-com-technology-ii-keyboard-shortcuts-11kj).

> 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](https://m.signalvnoise.com/paying-tribute-to-the-web-with-view-source). 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?_ 😉