A handle that is a website
The thing no other network does: the username is a domain the person controls, and that is the verification.
Use this templateBuild a Bluesky post the way the app draws one — the handle written as a domain, stacked under the display name because it will not fit beside it, the reposts, replies and likes written out as a sentence between two hairlines, bare action icons carrying no numbers, and no view counter anywhere.
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 thing no other network does: the username is a domain the person controls, and that is the verification.
Use this templateThe everyday post — an image, a short caption, and the three counts written out as a sentence rather than stacked beside icons.
Use this templateThe post that filled Bluesky's first year, and a reason to show a repost count doing more work than the likes.
Use this templateThe three above cover the field that matters: two .bsky.social handles and one person posting from a domain they own.
Photo, name, and the handle. Leave the domain off and it is completed for you; type a full one and it is kept.
Line breaks are kept, and nothing truncates. Bluesky allows 300 characters and shows all of them.
Reposts, replies and likes, as free text. Switch Liked on to fill the heart pink.
Full-height PNG at 1x free, up to 3x on Pro, device frame optional, and onto a sized canvas if it is going into a deck.
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.
@maya.rivera.bsky.social, or a website the person actually owns. No other network here writes an address where the username goes, and it is the single most Bluesky thing on the screen. Type a handle with no dot in it and the generator completes it to .bsky.social, because that is what Bluesky does.
X fits Name @handle on one line. A domain will not share a line with a display name, so Bluesky stacks them — bold name above, grey domain below. That two-line author block is a structural difference, not a styling choice.
Bluesky has never shipped one. X's post detail is built around its view counter, so the absence is the quickest way to tell two very similar screenshots apart. The Views field is hidden here rather than shown and ignored.
311 reposts · 94 replies · 1,842 likes, bold numbers and grey words, between two hairlines. X spreads icons with counts beside them. Same information, different sentence.
Reply, repost, like and more — bare glyphs, evenly spread, with nothing beside them. The counts were said once already in the line above, and repeating them next to the icons is X's layout rather than this one.
Bluesky's repost arrows are green and its like is pink. X uses green and a magenta-red. Close enough that a recolour looks plausible and wrong, which is why the whole card is built from the real screen instead.
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