The 80/20 rule: how I hacked together a desktop app experience as a Chrome extension in 2 hours

Harry Qi
3 min readDec 8, 2020

--

Motion Calendar loaded up on the right side in a Zoom call

The biggest complaint about Motion Calendar had always been there’s not a desktop app (Motion is a Chrome extension that lets you access your calendar from any website without switching page). This feedback made sense — Motion’s biggest value props were its speed and accessibility, but it can’t be that accessible if each time you are in another app, you need to open Chrome first and then use Motion.

We had known about this complaint for 3 months — ever since we launched the product. We had always just thought the cost-benefit wasn’t worth it — it’d probably take both of our technical co-founders two months to build a native app with a good enough performance.

Until the problem got unbearable — when “not available outside of Chrome” became the most-frequent answer to both “How can we improve Motion for you” and “Why did you stop using Motion.” We knew we had to fix this.

However, building an acceptable desktop MVP just for mac would take at least a month (none of us has ever built a desktop app before). So we asked ourselves — is it possible to hack together an experience that mimics that of a desktop app? After all, people just want to use Motion when they are outside of Chrome, right? What’s an 80/20 solution here — something hacky that we can build fast and get us 80% of the way there?

Is it possible to “fake” the experience of a native app using a Chrome window?

We proceeded to list the major UI/UX differences between a Chrome window and a desktop app (obviously there are a lot more, but we only care about the 80%):

  • A Chrome window has a bar at the top for tabs
  • A Chrome window has a url bar
  • Mac app has a place in the dock

That seemed to be all. We could solve the first two by just hiding them on the window we plan to embed Motion calendar in. We can solve the last one by making our calendar shortcut global instead of Chrome-only, so that when the user hits it (Option-C) from outside Chrome, Motion can still listen to that.

All of that sounded very plausible, so we hacked together a MVP version in less than 2 hours; it actually looked pretty nice.

It took us another day to improve performance and fix edge cases (e.g. dynamically resizing the Chrome window, loading the window and calendar faster, making sure all existing features still worked…etc). Now we have a desktop experience — there are further optimizations we can do, but I don’t think we’ll need to build a desktop app anytime soon. We were able to achieve 80% of what we wanted (more like 90%) in 20% of the time (more like 2%).

If you are curious to check out what the “desktop app” experience feels like — give Motion a try :)

--

--

Harry Qi

Co-Founder & CEO of Motion (YC W20). Prev: Quant trader @ Optiver, CS & Math from Dartmouth College