Who should I follow?
The onboarding conversation a new network has constantly. Blue bubbles, no receipts, domain handles throughout.
Use this templateBuild a Bluesky DM with the thing that identifies the network — handles that are domains, like @name.bsky.social or your own — plus Bluesky blue outgoing bubbles, a blue-grey incoming rather than a neutral one, and no read receipts, because the app has none.
Each one opens in the editor as an editable, fictional scene — names, timings and interface details already set. Change a word, or change everything.
The onboarding conversation a new network has constantly. Blue bubbles, no receipts, domain handles throughout.
Use this templateA user reporting something properly, and a maintainer who is grateful. Common on a developer-heavy network.
Use this templateThe three above are what this network's DMs are actually full of: two people comparing domain handles, a properly written bug report, and someone new asking why their feed is empty.
Full handle in the status field — @name.bsky.social or a custom domain. This is the detail that makes it Bluesky rather than any blue messenger, so it is worth getting right first.
Set who sent each one and when. Outgoing comes out Bluesky blue; incoming is the soft blue-grey rather than a neutral.
There is nothing to set — the app has none, and the skin will not draw any. The absence is part of the accuracy.
PNG at 1× free, up to 3× on Pro, light or dark, the whole thread or one screen, with or without the phone frame.
Our Bluesky skin is rebuilt from the real interface in code rather than traced from a screenshot, so the details that make it recognisable survive at export resolution. Here is what those details actually are.
@nadia.bsky.social, or @aisha.dev if you own the domain. This is the AT Protocol's entire identity model and the single most Bluesky thing on any screen — a bare @name reads as Twitter immediately. If your mockup has one, it is not a Bluesky mockup.
There is no blue tick to buy here, because owning the domain is the proof. That is worth understanding before you build a scene: a Bluesky screenshot showing a verification badge is showing a feature from a different network.
Outgoing bubbles are the brand blue with white text; incoming are a soft blue-grey rather than a neutral one. Most messengers use a plain grey for the other side — the tint here is small and consistent, and it is part of why the app reads as coherent.
18px all round on both sides and no pointer on any bubble. Clean and symmetrical in a way that reads as designed-by-developers, which is fair — that is what it is.
Bluesky DMs do not show them, so none are drawn even if the document carries one. Another network where the honest thing is an absence.
Display name on top, domain handle beneath. Because handles are domains rather than short strings, that second line is longer than most apps' and the header has to give it room — which itself contributes to the look.
Everything made here is simulated. SocialMock has no connection to Bluesky and cannot read, send or alter a real message. Do not use a mockup to impersonate anyone, pass it off as a genuine screenshot, or present it as evidence in any legal, workplace or academic matter — see our Acceptable Use policy. For general information about legal risk, read is it legal to fake a screenshot? If you publish somewhere a viewer might mistake it for real, switch on the “Simulated” label before exporting.
Click straight into the preview and type. Export when you are done — free at 1×, up to 3× on Pro.
Open the Bluesky editor