You Need To Already Know

31 Jan 2021

I love what Luminary is doing with podcasts: don't hit me with ads, charge me money.

I just tried out their new app and the design has one particularly infuriating antipattern: it makes me wait.

There are two problems here:

One is that it's not ready. I tapped a show, expressing an intent to read more about the show, and it has to make a network roundtrip to get what amounts to three sentences - perhaps a few hundred bytes.

This device has an 80Mbps unmetered connection and gigabytes of free storage. Why do I have to wait for 200 bytes?

My onboarding workflow here is to look at all of the available shows to select the best subset to listen to - that's a lot of roundtrips, and a lot of waiting.

The other is the immediate rendering of useless, but animated, partial page content, capturing my attention and forcing me to parse something that ultimately wastes my time. If I do have to wait for a device to be ready, I'll do something else in the meantime. Don't try to fool me into thinking that you're ready when you're not; you can load in unimportant content like images after rendering, but the newly-rendered page needs to immediately have some value.

(This is how I browse the web: on a page load of more than one or two seconds, I'll context-switch away and return when the tab has fully loaded. On the modern web, that can easily be ten seconds, but that's another story)

I have the same - possibly unreasonable - objection to heavily paginated interfaces. You've just sent me 5mb of javascript that I didn't want. Why will you only send me the data that I do want 10kb at a time?

Nothing here is a dealbreaker. But, for me, raw speed - fast enough that I never wait, and never context-switch away - is the difference between an app that I'm prepared to use, and one that I enjoy using.

You can't ask the server. You need to already know.