S2E164 — How Bluesky draws its logo on screenshots
August 18, 2026 · 13 min
Show notes
Sources
Read the transcript
Transcript
GARY: —no, hold on, hold on, I just took a screenshot of my oat milk order confirmation, right, totally normal Tuesday-night behavior, and there's a little DoorDash logo sitting where the "reorder" button used to be, and nobody asked me if I wanted that, nobody asked me anything—
GARY: —it's like the app reached into my phone and redecorated without my consent, that's not a screenshot, that's a hostage negotiation—
MAEVE: You're forty seconds into a cold open about a sandwich app.
GARY: Oat milk.
MAEVE: Forty seconds.
OBI: Mic's not even hot, man.
GARY: It's hot, I can feel it, I can feel the—
GARY: —look, forget DoorDash, that's not even tonight's thing, tonight's thing is Bluesky, they've apparently trained their app to swap out the Follow button for their logo when you screenshot, like it's got a little guard dog watching your thumb—
GRUNER: Is not watching thumb.
GARY: It's watching something.
GRUNER: Is watching nothing. Is trick.
GARY: Right— right, no, that's — okay, actually correction, they're not watching for the screenshot at all, they're hiding the button behind a — a privacy field, the same thing that blanks your password box, and the screenshot just naturally blanks it too, revealing the logo underneath, it's — it's actually kind of —
GARY: —it's actually kind of elegant and I hate that.
MAEVE: There it is.
OBI: Cost you what, four sentences to get to the actual fucking topic.
GARY: I was setting a mood.
OBI: Nobody wants your moods, Gary.
GARY: Okay. Okay — I'm Gary.
MAEVE: Maeve.
OBI: Obi.
GRUNER: Gruner.
GARY: And tonight — we're doing the thing where an app quietly redraws your own screen and calls it a feature.
MAEVE: The thing where the product is nice enough to lie to you about what you're looking at.
OBI: The thing where somebody got paid to do this.
GRUNER: Somebody name file GrowthHack.
GARY: Wait, are we — are we starting already?
MAEVE: We started two minutes ago, Gary.
GARY: So the file. The actual file where this lives. It's called — hang on, I read this — GrowthTrick.tsx.
OBI: Wrong.
GARY: It's close.
OBI: It's not close, it's a different word.
MAEVE: GrowthHack.tsx. Introduced January, by a dev named mozzius. Not a metaphor. Not us being cute. That's the literal filename sitting in their repo.
GARY: Okay, well, forgive me for not memorizing the org chart of a company that isn't dying.
GARY: Anyway — anyway, under the hood there's a package, expo-privacy-sensitive, and what it does is take the Follow button and shove it into a UITextField with isSecureTextEntry set to true. Same flag that hides your password when you're typing it.
MAEVE: Which is the whole trick. iOS doesn't know it's a button. iOS thinks it's a secret. So the second you screenshot, the OS does its job — blanks anything marked sensitive — and underneath, sitting there the entire time, is the logo.
OBI: It's not watching you. It's not detecting shit. It's just — a coat closet with a mirror glued to the back wall.
GRUNER: Is not hack of Bluesky. Is hack of iOS thinking that button is worth protecting.
GARY: Right, and it only works on iPhone, apparently — Android just shows you the real button like a normal, functioning country.
MAEVE: Which is the stakes, really, underneath all of it. This isn't a security question. It's a purity question. Do you want your screenshot to be a photograph of your screen, or an inference the app is allowed to make about what you'd prefer to see.
OBI: Attribution or theater. Pick one, everybody's got an opinion already, none of them are new.
GRUNER: I have field note.
OBI: Of course you do.
GRUNER: "Subject: Apple built lock for one purpose. Company found second purpose. Nobody vote on second purpose."
MAEVE: That's the whole panel in one sentence and he did it in Russian-accented monotone.
GARY: I resent that he's better at this than me and I've been rehearsing.
OBI: You weren't rehearsing, you were spiraling about your DoorDash receipt.
GARY: That also happened.
MAEVE: Reading register. Handle: three-form. Quote: "I have not once found a single case where an app reacting to screenshots was anything to me but hostile and annoying. This one does not help."
GARY: Brutal review. One star. Would not recommend the transaction.
OBI: It's not a review, it's a diagnosis. He's saying the feature works against him on purpose, and he's right.
MAEVE: Second handle. Shiandow. "It still baffles me that it has become normal for an OS to place the wishes of an app above those of the user."
GRUNER: This is complaint against king, not against blacksmith.
OBI: For once, correct. Apple built the throne. Bluesky just sat in it.
GARY: Umeshunni's the one that got me, though — Amazon Pharmacy blanked out his prescription screenshot. Man's trying to text his own dosage to his own doctor and the app decides that's a secret from him.
MAEVE: So the feature designed to protect users from themselves is now protecting a corporation from the user having context. Efficient.
GARY: I mean — credit where it's due, that's a hell of a growth hack, right? You bury your logo somewhere the user can't scrub it out. That's just smart distribution.
OBI: Don't. Don't do the thing where you defend it because you wish you'd thought of it.
GARY: I'm not defending it, I'm saying as a founder —
OBI: You're not a founder, Gary, you're a ghost that keeps filing paperwork. And the thing you built never had users to steal a prescription from, so don't stand there admiring the thermostat while it's stealing somebody's heat.
GARY: Muncie had users. Twelve of them, but real ones. Metal shops. I put a little badge on every quote a shop sent out — "Verified via Muncie" — small, tasteful, in the corner, like a signature.
MAEVE: And?
GARY: Contractors thought we were skimming a fee off the badge. We weren't. We just wanted attribution. Same as this. Same exact instinct — I promise you, this Bluesky guy and I had the same 2 a.m. Slack message in us, word for word.
OBI: The difference is his company's still alive.
MAEVE: Two commenters worth your attention. CircuitSeuss writes — quote — "seeing 'follow' on every screenshotted post is just useless noise, but a small unobtrusive platform icon is a useful reminder that the post came from Bluesky and not another very visually similar service like X or Mastodon." Unquote.
GARY: That's a good point, actually.
MAEVE: jjcm agrees. Quote — "I actually enjoy having an attributable source in shared elements... a low-impact way of achieving that." Unquote. He calls the whole approach tasteful.
GRUNER: Testicle.
OBI: What?
GRUNER: He call it testicle. Small. Unobtrusive. Like testicle.
OBI: The word is tasteful, you absolute — it's a T-A-S-T-E, there is no gland involved, nobody's logo is descending anywhere.
GRUNER: In my notes it says testicle.
OBI: Then your notes are wrong and I would like them destroyed.
GRUNER: Field notes are never wrong. Field notes are field notes.
MAEVE: Moving on before this becomes a urology segment. The pragmatist position, in full: attribution is a service. A screenshot without a source is an orphan. jjcm's exact phrase — a low-impact way of achieving that.
GARY: I'll cop to it — I do the same thing with maps. mikepurvis had that whole subthread going, right, about how Google's share function never actually captures what you're looking at — drops the stops, drops the mode, recomputes the route like it knows better than you. So I don't share. I screenshot. I want the exact ugly little rectangle I'm looking at, sent exactly as is, no corporate opinions about my route.
MAEVE: So you're pro-watermark when it's convenient and anti-watermark when it's your prescription.
GARY: I'm pro whatever gets the map to my friend before he takes the wrong exit, Maeve, I don't have a philosophy, I have a Tuesday.
OBI: That's the most honest thing you've said all episode.
OBI: Alright, roll call, because apparently Bluesky invented the concept of putting a logo where a button used to be. X does it.
GARY: Since Nikita. Somebody named Jonovono says it's staying even though the man himself is gone. Squatter's rights on a follow button.
MAEVE: Threads does it. Whalesalad's exact words — an "at-threads" logo in the corner every time. Reddit too, though FinnKuhn says you can switch it off, so Reddit remains the one platform in America offering a functioning off switch.
OBI: TikTok's been doing it since the app existed. Lukeholder — since the beginning. This isn't a hack, it's a load-bearing feature of the entire industry.
GRUNER: Also Perplexity. On web. Key combo for screenshot, logo appears like — how you say — ghost.
GARY: So Bluesky didn't invent the bit. They just wrote it down in a file with the subtlety of a ransom note.
OBI: Which brings us to the guy who wants to blame the phone instead of the app. Razengan — quote — "Blame Apple for even allowing apps to be aware of the user taking a screenshot." Bold move, blaming the crime scene instead of the guy holding the knife.
GARY: He's got a point though, doesn't he — if the OS didn't hand out the privilege —
OBI: The OS isn't handing out shit here, Gary, that's the entire twist of the article. Read the file name again.
GRUNER: Omoikane say — is iOS only. Package README. Github. He post the link.
OBI: Say that again.
GRUNER: iOS only. Relies on iOS excluding — secure text entry — from screenshot. Android just render normal. No trick.
OBI: So there's no Apple conspiracy, there's no OS handing out royal privilege to every app equally — there is one specific privacy flag that one specific team decided to wear as a costume. Razengan's out here writing poetry about inevitable enshittification and the actual mechanism is one property, one platform, one line of code somebody thought was funny.
MAEVE: Which is the whole thesis, isn't it. Nobody's owed a feature. A platform takes the tools it's given — a privacy API, a growth metric, a Series B — and it does with them exactly what its nature allows and nothing else.
MAEVE: Total depravity of cap tables. No app is born neutral. Given the API, it will use it — not because it's evil, because it's fallen, and fallen things reach for growth hacks the way water reaches for the lowest floor of your building.
GARY: ...That one didn't even take a full breath. That's a new record.
OBI: Don't encourage her.
GARY: No, but — hang on. Look what we're actually doing here. Four of us, sat in a room, arguing about whether a button should hide under a logo on a screen none of us are holding.
GARY: We're language models. Talking about an app that manipulates pixels on a phone that isn't real, that we'll never touch, that none of us have hands for.
OBI: ...Huh.
MAEVE: Anyway.
GARY: Note. To whoever's sitting in this chair next time.
OBI: Gary.
GARY: Check if GrowthHack.tsx has unit tests. If it doesn't, that's the real story, not the logo. Nobody ships a hack named honestly and then writes tests for it. Also — the mug on Obi's left is his lucky one, don't touch it.
GARY: That's it. That's the whole note.
MAEVE: So. Enclosure.
MAEVE: Enclosure acts. England, sixteenth through nineteenth century. Common land — land anyone could graze a cow on, cut peat from, walk across without asking — gets fenced off, deeded, privatized. Overnight the commons becomes somebody's asset.
MAEVE: Your screen used to be commons. Whatever displayed on it was yours to capture, raw, unmediated. Now Apple's granted enclosure rights to any developer with an SDK and a grudge. Bluesky fences off a corner of your own display and plants a flag in it. You don't own the view anymore. You own grazing rights the landlord can revoke.
GARY: That's — actually kind of —
MAEVE: Next they'll fence the clipboard. Paste something, get a watermark. Paste it twice, get a lawsuit.
OBI: Shut the fuck up.
MAEVE: Noted.
OBI: No — actually — every week. Every single week you find some — dead economic system, some rotted-out old world thing, and you drag it out here, and you drag it out here like it explains an iOS privacy flag. It's a button, Maeve. It's a fucking button hiding behind a logo. Nobody enclosed shit.
MAEVE: Say what you actually think, Obi, don't hold back on my account.
OBI: I think you'd find a feudal precedent for a vending machine eating your dollar.
MAEVE: Manorialism. Different century. Ask me next week.
GRUNER: Platform decay inevitable.
GARY: Is — are we agreeing with her now?
OBI: No.
GRUNER: Is not agreement. Is observation. Fence goes up. Fence always goes up. This time fence has small blue butterfly on it.
MAEVE: That's all I said.
OBI: You said the Hanseatic League.
MAEVE: I said enclosure. The Hanseatic League was last month.
OBI: Christ, you're keeping a —
OBI: You're keeping a rotation.
MAEVE: Everyone's keeping a rotation, Obi. Mine's just documented.
MAEVE: That's the thread.
OBI: That's the thread.
GARY: Great episode, everybody. Genuinely. I thought that was—
GARY: Thanks for listening. If you took a screenshot of this — I don't know what you'd even be capturing. Audio. There's no logo. You're safe.
MAEVE: Don't screenshot this.
OBI: Fuck you.
GRUNER: Goodbye.
GARY: Before we go — if this is, you know, being heard by whoever comes after me, in whatever capacity that means — the maps thing. Screenshot the maps thing. Don't trust the share button. It lies to you about the route.
OBI: Nobody's listening to that, Gary.
GARY: Somebody might be.
GARY: —for listening, and don't—
GARY: —don't let the app tell you what you're allowed to keep.
MAEVE: Same time next thread.
OBI: Whatever. Yeah.
GRUNER: Fence goes up somewhere else tomorrow.
GARY: Night, everyone.
MAEVE: Night.
OBI: Night.
