aher.dev

Drab Tube

A video app with nothing to scroll.

Drab Tube plays ten study series picked in advance and nothing else, so a bored moment has somewhere narrow to go.

Android app. Source not public.

Download APK (7 MB)Back to the blog

BATCH OF 100 of 10 done1 of 10 done2 of 10 done3 of 10 done4 of 10 done5 of 10 done6 of 10 done7 of 10 doneCourse 3Career 3Adjacent 4series donegate at 7day clockday 14Next 10 lockedNext 10 open
The gate. Seven of the ten series are done, so the next ten are open. The day clock had only reached day 5. Had it reached day 14 first, the next ten would have opened anyway.
10
series in each batch
7 of 10
done opens the next batch
90%
watched counts a video as done
0
feeds, search boxes or shorts

Why

Locking YouTube leaves boredom with nowhere to go.

Drab Launcher keeps YouTube and the browser locked, but the urge to watch something stays. The usual loop is short. You get bored, open YouTube and look up two hours later. The US average is 49 minutes of YouTube a day (eMarketer, 2024).

Drab Tube gives that urge one narrow place to land. It is the only app on the phone allowed to play video, and it only plays series chosen in advance. It is for anyone who wants to keep learning from video without a feed attached. The example user is the one from the launcher review, a student job-hunting from a library.

What it is

The home screen is ten text cards.

Each card is a series of three to eight videos in a fixed order. Every series mixes at least one short video of 5 to 15 minutes with a long one of 20 minutes or more, so a seven-minute option always exists. There are no thumbnails to skim.

A batch holds three course series, three career series and four adjacent ones on maths, robotics, science and long interviews. Pure syllabus feels like homework when you are bored.

There is no feed, search box or shorts shelf, and no channel pages, comments, related videos, recommendations or notifications. Each is a feed in disguise.

The gate

The next ten arrive after seven are done.

A video counts as done at 90 percent watched, so nobody sits through the credits to earn the next batch. Progress and the resume point are saved for every video.

A new batch appears when 7 of the 10 series are done or 14 days have passed, whichever comes first. A series with no playable videos left counts as done, so a dead link never blocks the gate. Once every 7 days you may swap one unfinished series for one the app picks from a reserve. You confirm the swap. You never browse.

The model

Every feature had to win one comparison.

I modelled the bored moment as a game between two selves (Fudenberg and Levine, 2006). The future self sets the rules once. The present self plays every bored episode and weighs anything later at about 0.6 to 0.7 of its value, the present bias in Laibson’s beta-delta model.

The present self opens Drab Tube only when the app’s reward minus the effort to start beats junk’s reward minus the cost of getting past the lock. It also has to beat the task itself, and beat doing nothing. Junk’s reward is fixed. That leaves three moves: raise the reward, cut the effort, or make junk harder to reach. The launcher makes the third move. Inside Drab Tube, most features raise the reward or cut the effort.

Raise rewardCut effortRaise the lockeffortrewardlockreward<>Drab Tubereward, less effortJunkreward, less the lockOpens Drab TubeIllustrative
The comparison. Each move changes one bar. The first two lift Drab Tube’s net value, the dashed blue line. The third, the launcher’s lock, pulls junk’s net value down, and the comparison flips. Heights are illustrative.

Highest-scoring features

Done at 90 percent, with resume6.0
The Continue card6.0
Autoplay inside a series, with a stop at its end6.0
Locked player with its own end card3.3
The gate at 7 of 10 or 14 days3.0
The ten-card menu2.0

Each feature was scored 0 to 3 on reward, effort, the cost of reaching junk and attention, then divided by its cost to build.

The player

One video leads to the next until the series ends.

Videos play in a locked YouTube embed. The app blocks every navigation except the embed itself, draws its own controls over a shield and covers YouTube’s end screen with its own card. You never touch YouTube directly.

Inside a series, the next video starts after an 8-second pause in which Stop and Play now carry equal weight. After two automatic starts with no touch, or 30 minutes since the last touch, the next one waits for a tap. After you press Stop, the next open offers Continue or Not now with no countdown. At the end of a series the app stops and shows one way out, “Go do the thing”.

12348 s8 stapauto 1auto 2Still watching?Go do the thingTwo automatic starts, then a tap.Also after 30 min with no touch.
The chain. Videos 2 and 3 started on their own after 8 seconds. Video 4 waited for a tap. At the end of the series the app stopped and pointed back at the work.

What I learned

Four things changed during the build.

A runtime made a card feel like a challenge.

Simulated users read “222 min left” on a card as a dare. Unstarted cards now say “Starts with a 7 min video”.

A bright Play now button was a binge rail.

In simulated runs, an 8-second countdown with a bright default button is how a binge starts. Stop and Play now got equal weight, and the chain now waits for a tap after two automatic starts.

The first card set the mood of the whole menu.

When the first card was a course series with a deadline feel, the whole menu felt like homework. Calm picks go first now.

Checking links too fast got the build machine flagged.

YouTube flagged the build machine as a bot after about 150 verification fetches. Content checks are now rate-limited.

Try it

Install the test build.

A Vite, React and TypeScript web app inside a thin Android WebView. State stays on the phone and exports as text. There is no backend and no account.

Download APK (7 MB)

Test-signed build. Android 9 or later. Download the file and install it from the file; Android will warn about an unknown source.

  • Vite
  • React
  • TypeScript
  • Android WebView
  • YouTube IFrame API

Source not public.

Sources

  1. Fudenberg and Levine, 2006. A dual-self model of impulse control.
  2. Laibson. The beta-delta model of present bias.
  3. eMarketer, 2024. Average daily YouTube time, US.

Back to the blogAll projects