Bluesky draws its logo on screenshots
Bluesky employs a sneaky iOS UI hack that makes its logo magically appear on screenshots, even though it's not visible in the live app. This deep dive uncovers how a UITextField meant for secure input is repurposed to reveal branding upon screenshotting. It's a clever, if slightly controversial, use of platform features that sparks discussion about API intent versus creative implementation.
The Lowdown
This intriguing post explores a clever, almost invisible UI trick employed by the Bluesky social app: its logo mysteriously appears in the top-right corner of screenshots, even though that space is occupied by a "Follow" button within the live application. The author, baffled by this vanishing act, embarked on a technical detective mission to uncover the secret behind this ephemeral branding.
- The author initially observed the Bluesky logo only when taking screenshots, but not when viewing the post in the app where a "Follow" button resided.
- Upon investigation, by diving into Bluesky's open-source code (specifically
GrowthHack.tsxand theexpo-privacy-sensitivepackage), the mechanism was revealed. - The trick leverages an iOS feature: a
UITextFieldwithisSecureTextEntryset totrue. iOS blanks out the content of such fields in screenshots for privacy reasons. - Bluesky renders the live "Follow" button inside this secure text field's layer. When a screenshot is taken, the secure field blanks, effectively making the "Follow" button disappear and revealing the underlying Bluesky logo.
- This method is a repurposing of a technique used by apps like Telegram and Signal to prevent screenshots of sensitive content in "secret chats."
- The author notes that the original discussion around implementing this feature in Bluesky's pull request was met with some disapproval, questioning if it's a "nifty trick" or an "abuse of API meant for privacy."
Ultimately, this post shines a light on a highly creative, albeit debatable, technical maneuver. It demonstrates how developers can leverage platform-specific behaviors in unexpected ways, turning a privacy-focused feature into a subtle branding and growth-hacking tool, prompting reflection on ingenuity versus intended API usage.