Instagram Post Mockup Generator — a feed post you draw, not one you capture
A pitch deck about a campaign needs an example post long before the campaign exists. A blog figure about caption writing wants the same photo with three different captions side by side. A client preview wants to show how a shot will sit in the feed without publishing anything, and a teaching slide wants a post that will still make its point next year. This Instagram post mockup generator draws that in-feed post from fields you fill in and hands you a PNG.
Why there is no “paste a post link” box
The name suggests pasting a URL and getting a picture 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 Instagram Graph API needs an access token and a linked business or creator account, and a token inside a shipped bundle is a token anybody can read. Fetching an instagram.com/p/<shortcode>/ page straight from your browser is refused by the same-origin policy. A third-party CORS proxy would work until it stopped, and would see every link you looked up. So the input is your own text and your own image — which makes a better figure anyway, since it still says what you meant a year from now.
The canvas is the preview
Many tools of this kind build the post out of HTML and then photograph it with a screenshot library, which leaves two renderers that slowly disagree: the download gets a different font, a shifted baseline, a missing shadow. Here the post is painted directly onto a single canvas, and that same canvas is both what you see and what gets encoded. Line breaks are decided by measuring each candidate 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 captions are handed to the canvas to lay out rather than reversed by hand.
What you control
The header takes a username, an optional location line, an avatar and a generic verified badge. The image frame comes in square, portrait and landscape shapes, and because a cover crop quietly throws away part of a photo, two focal sliders move the region that is kept while a thumbnail shows you exactly what is being cut off. Carousel dots appear once you set more than one slide. Likes and comments are drawn as you type them — 1,234 likes in full, larger counts abbreviated — and a blank field hides that line entirely, while 0 draws as 0 likes. The caption runs on from the bold username as one flow, with hashtags, mentions and links picked out in the accent colour as drawn text, never as anything clickable. Collapsing it to two lines and a muted … more is a drawing choice; your caption itself is never edited.
Timestamps that do not drift
You either type the label yourself or pick a date rendered through a locale you pin, so a colleague’s machine produces the same string. Nothing is computed from the current time. A mockup whose meaning changes overnight is a mockup you cannot check into a repository or put in front of a client twice.
Your images stay on your device
The avatar and the post image are local files only. Your browser decodes them in memory, honours their EXIF orientation so a phone photo is not drawn sideways, and paints them onto the canvas. Nothing is uploaded, and the object URLs are released as soon as you swap an image out. Images by web address are not accepted at all: besides the privacy question, drawing a cross-origin image taints the canvas and breaks the export outright. The tool makes no network request of any kind, which you can confirm by using it with the connection switched off.
What this tool will not tell you
No number here describes somebody else’s product unless it could be read from that platform’s own documentation and dated. Instagram’s help pages were not reachable when this tool was built, so you will not find a caption character limit, a username length rule or a published upload size printed as fact — the tool shows your caption’s length and the frame’s ratio instead, and says plainly which figures are its own. It also estimates nothing about performance: no reach, no engagement rate, no posting-time advice. A post you typed cannot tell you how a real one would do.
Where the line is
Every export carries a strip below the post reading Mockup — not a real post, and there is no toggle, opacity slider or crop control that removes it. It sits outside the post frame so your comp still looks right in a slide while staying honest about what it is. Use this for design comps, decks, blog figures, client previews and teaching material. Do not use it to fabricate a post attributed to a real person: putting words and a photo in someone’s feed in a format built to look authentic is defamation with a nicer font, and a caption strip does not make it acceptable. For the same reason no Instagram or Meta wordmark, camera glyph or official badge is shipped — every icon here is a plain vector path drawn by the tool.