Tweet Screenshot Generator — a post card you draw, not one you capture
Designers, writers and product teams need a picture of a post far more often than they need the post itself. A slide about social strategy wants an example card. A blog figure about tone of voice wants three versions of the same sentence side by side. A UI mockup wants a feed item that does not depend on whatever happened to be trending the afternoon the screenshot was taken. This tweet screenshot generator draws that card from fields you fill in and hands you a PNG.
Why a URL field would be dishonest here
The name people search for implies pasting a link and getting a capture back, so it is worth being precise about why that is not on offer. This site is a static export: there is no server, no route handler and nowhere to keep a secret. The platform’s API requires a bearer token, which cannot live inside a bundle anybody can read. Reading the post page directly from your browser is refused by the same-origin policy. A third-party CORS proxy would work until it didn’t, and would see every URL you looked up. So the input is your own text, and the drawing is honest about being a drawing.
The canvas is the preview
Most tools of this kind build the card out of HTML and then photograph it with a screenshot library, which means two renderers that slowly disagree — the download has a different font, a shifted baseline, a missing shadow. Here the card is painted directly onto a single canvas, and that same canvas is both what you see and what gets encoded. Every line break is decided by measuring the text with the browser’s own font metrics, and break opportunities come from Intl.Segmenter, so an emoji family, a skin-tone sequence or a Devanagari cluster is never cut down the middle. Right-to-left text is handed to the canvas to lay out rather than reversed by hand.
What you control
Display name, handle, badge colour and avatar make the header. The body takes as much text as you want, with hashtags, mentions and links picked out in the theme’s accent colour — as drawn text, never as anything clickable. A live weighted counter shows where you stand against 280, charging each link the fixed length the platform rewrites it to. The counter warns and never blocks, because longer posts exist. Reply, repost, like, bookmark and view counts are abbreviated to 1.8K or 42.8K, and any you leave blank simply disappear from the row. Light, dim and dark themes, three card widths and three export scales cover most placements.
Timestamps that do not drift
You either set an absolute date and time, rendered in a locale you pin so a colleague’s machine produces the same string, or you type a relative label like 2h yourself. Nothing is computed from the current time. A mockup whose meaning quietly changes overnight is a mockup you cannot check into a repository.
Your images stay on your device
The avatar and the attached image are local files only. Your browser decodes them in memory, applies their orientation so a phone photo is upright, and draws them onto the canvas. Nothing is uploaded, and the object URLs are released as soon as you swap an image out. Remote image URLs are not accepted at all — besides the privacy question, drawing a cross-origin image taints the canvas and breaks the export outright.
Where the line is
Every export carries a caption strip below the card reading Mockup — not a real post, and there is no control to remove it. Use this for design comps, documentation, teaching material and slides. Do not use it to fabricate a post attributed to a real person: putting words in someone’s mouth in a format built to look authentic is defamation with a nicer font, and no caption strip makes that acceptable. The badge and the corner mark drawn here are generic placeholders rather than official brand assets, for the same reason. This tool also computes nothing about performance — no reach, no engagement rate, no benchmark — because a card you typed cannot tell you anything about how a real post would do.