Android · nothing leaves your phone

When the scrolling goes flat, something turns up.

ScreenLing waits for the scroll you did not decide to do. Then a small creature is drawn on top of it, and you can poke it, throw it, or tickle it until it laughs.

Nothing is blocked, nothing is counted, nothing is uploaded.

9:41

by Cliqueraft

Keep scrolling Leave
Rhythm reading
last 60 secondsruns of 1

The moment

Twenty minutes gone, and the thumb is still moving.

ScreenLing exists for that one moment, and for about eight seconds either side of it.

01

The scroll goes flat

Not slower — flatter. Several flicks in a row hunting for something that will hold you, then off again. That shape is the whole signal.

02

Somebody turns up

A linglet, about the size of your thumb, drawn over whatever you were looking at. Nothing is dimmed. Nothing is locked.

03

Then you choose

Keep scrolling, or leave. Both are fine, nobody is keeping score, and it wanders off by itself either way.

How it knows

A timer cannot tell reading from scrolling.

Both of them are “forty minutes in an app”. What separates them is the shape of the gestures, and it is not subtle once you look.

Someone working through an article advances once, then reads. Someone grazing a feed flicks four, six, eight times in a row hunting for something, stops on it for however long it happens to be worth, and comes back. ScreenLing looks for the second shape and nothing else.

Decline the accessibility service and it falls back to counting minutes in an app. Blunter, wrong more often, and still entirely on your phone.

Reading

One advance, then a steady, self-paced pause.

1flick in an average run

The other kind

Bursts, then pauses of wildly uneven length.

8flicks in an average run

Flicks in a run How many times you scroll before something stops you. The clearest separator there is. scored
Gestures per second How fast the whole thing is moving, across a rolling minute. scored
Unevenness of the pauses A steady rhythm is text setting the pace. A wildly uneven one is a feed setting it. scored
How one-directional it is Dropped from the score entirely, rather than guessed at, when the app underneath does not report usable deltas. scored when known
What is on your screen Not read, not stored, not available. The service declares canRetrieveWindowContent="false", so Android does not hand it over. never

Not another blocker

Most screen-time apps work by making you feel bad.

You have tried those. You quietly uninstalled them.

The usual bargain

  • A grey lock screen between you and the thing
  • A streak that punishes you for one bad evening
  • A number at bedtime, presented as a verdict on your day
  • A block you get around in two taps, then feel worse about

What turns up instead

  • Nothing is ever blocked. You can always carry on.
  • No score, no verdict, no comparison to yesterday.
  • The interruption is a small gift, not a penalty.
  • It is amused by you, never disappointed in you.

Why a creature and not a warning. A scrolling trance breaks when attention is captured, not merely obstructed. Something that plays back does that far more reliably than something that merely appears — which is also why the overlay draws no scrim, and why the buttons wait a few seconds before they arrive.

The eight

You pick who comes. The surprise is when.

Eight ship in the app, and exactly one of them is chosen at any time. Tap to choose — they are the same drawings that turn up on the phone.

Playing with it

It turns up cross. You talk it round.

It arrives sulking — brows down, mouth turned down, faintly affronted — and the first couple of touches change its mind. A creature that turns up already delighted has nothing to give anybody.

Pokeit squashes, ticks under your thumb, and leaves a ripple

Dragit follows your finger continuously

Throwit coasts, spins, and bounces off the wall it hits — thoroughly pleased

Shovethe round ones roll, always landing the right way up

Ticklepoke it quickly a few times and it laughs, in sparks

Ignore itit wanders off, or stops and looks around for you

Drag it. Then throw it.

The creature itself is completely inert — a drawing with no code and no notion of input. Everything above is done to it from outside, which is the same property that makes it safe to draw over a stranger’s banking app.

Your business stays yours

Three promises, none of which are promises.

Each one is a constraint built into the app, enforced by Android rather than by our good intentions.

It watches your list, and nothing else

The service’s packageNames is set at runtime to exactly the apps you picked, so the operating system never delivers an event from anything else. Not your keyboard, not your bank, not your messages.

It cannot read your screen

Not the words, not the pictures. canRetrieveWindowContent is declared false, so screen contents are not switched off by us — they are never handed over in the first place.

Nothing it notices leaves

No account, no sign-in, no analytics, no advertising ID, no crash reporter, no server that receives anything. There is no data for us to lose, because none of it ever reaches us.

The one time ScreenLing touches the network is when you open the creature catalogue and install one. Those are static, signed files, and nothing about you or your phone is sent with the request. Never open it and the app makes no network requests at all.

Read the full privacy policy →

Safe to draw over anything

A linglet has no text, no code, and no way to flash at you.

It is going to be drawn full-screen over a stranger’s banking app, so the format is inert by construction: one declarative renderer, no scripting, no external files — and no text layers at all, which is what makes it structurally incapable of imitating a system dialog.

Screened when it is packagedEvery creature is measured against WCAG 2.3.1 and ITU-R BT.1702 before it is ever published.
Screened again on your phoneRasterised at install by the same renderer that will play it, and refused outright if it disagrees with what the package claimed.
Limited while it playsA runtime limiter judges the animation as shown rather than as authored. And “calm linglets only” turns the liveliest ones off entirely.

A flash is a pair of opposing luminance changes. Requiring a direction reversal is what separates a strobe from a fade — and getting that distinction right is the one calculation in the product that is never approximated to save time.

Something lives in here.

Let it in, pick who turns up, and carry on with your evening.

Android only. The overlay behaviour this depends on does not exist on iOS.