Fake iMessage Chat Generator
Paste a conversation and get a chat mockup with the bubble grouping the real app actually uses.
For parody, education, and mockups only
One message per line. Start a line with > for a received message.
Leave blank to hide.
This is a generated image for entertainment purposes.
Everything here runs on your device. Nothing you enter is uploaded or stored.
Type a contact name, paste a conversation one message per line, and this draws a chat that matches the real layout — including the bubble grouping rules that most mockup tools get wrong.
How to use it
- Enter the contact name for the header.
- Write the conversation with one message per line. A line beginning with
>is a received message; everything else is treated as sent. - Set the clock time shown in the status bar.
- Toggle the status bar, the typing indicator and the delivery receipt as needed.
- Choose light or dark, then Download PNG or Copy image.
Bubble grouping is the detail that gives a mockup away
Almost every fake chat generator draws each message as an identical rounded rectangle with a pointed tail. The real app does not do that, and once you know the actual rule the difference is impossible to unsee.
When one person sends several messages in a row, those bubbles form a run. Within a run, only the last bubble gets the tail — the small pointed flick at the bottom corner that indicates who is speaking. Every other bubble in that run is tail-less, and its inner corner squares off from the full 18-pixel radius down to about 4 pixels, so consecutive messages visually stack into a single block.
The spacing changes too. Bubbles inside a run sit about 3 pixels apart. When the speaker changes, the gap opens to roughly 10 pixels. That variable rhythm is what makes a real conversation readable at a glance: you can see who is talking without reading a word, purely from how the blocks group.
Get this wrong and you produce something that looks like a chat but reads as a list. Five separate tailed bubbles from the same person is not a thing the app has ever rendered, and it is the reason a lot of fabricated screenshots look subtly wrong even to people who could not say why.
This tool implements the run logic properly. Write three consecutive lines from the same side and you will see them square up and stack, with one tail at the bottom.
The other details that matter
Sent bubbles are pure blue with white text. The blue is #0b93f6, and the text on it is pure white rather than off-white. Received bubbles are a light grey in light mode (#e9e9eb) and a much darker grey in dark mode (#26262a), both with the standard text colour.
Bubbles are width-fitted, not full-width. A short message produces a short bubble. The maximum width is capped at around 260 pixels so long messages wrap rather than stretching edge to edge, and the bubble shrinks to fit its content otherwise.
The header is centred with a back chevron in the accent colour on the left, not a left-aligned title. The delivery receipt sits right-aligned under the final sent bubble, in small muted text.
What it does not do
It renders text messages only. Attachment bubbles, image previews, voice notes with waveforms, tapback reactions, read receipts with timestamps, and group chats with multiple named participants are all outside what this tool draws. There is no way to import a real conversation, and there should not be.
Nothing is uploaded. The canvas is drawn in your browser and the PNG is produced on your device.
Bubble geometry
| Property | Value |
|---|---|
| Corner radius | 18px |
| Squared inner corner | 4px |
| Gap within a run | 3px |
| Gap between speakers | 10px |
| Maximum bubble width | 260px |
| Text size | 16px |
| Line height | 20px |
Colours by theme
| Element | Light | Dark |
|---|---|---|
| Background | #ffffff | #000000 |
| Sent bubble | #0b93f6 | #0b93f6 |
| Received bubble | #e9e9eb | #26262a |
| Primary text | #000000 | #ffffff |
| Muted text | #8e8e93 | #8e8e93 |
Questions
How do I mark who said what?
Start a line with a greater-than sign for a received message, which renders grey and left-aligned. Any other line is treated as sent, so it renders blue and right-aligned. Pasting a whole conversation at once is faster than filling in a form per message.
Why do only some bubbles have a pointed tail?
Because that is how the real app draws them. When one person sends several messages in a row, only the final bubble of that run gets a tail, and the inner corners square off. Giving every bubble a tail is the single most common mistake in a chat mockup.
Can I add images or voice notes to the conversation?
Not in this tool. It renders text bubbles, the typing indicator and the delivery receipt. Attachment bubbles and reactions are not implemented, so a mockup needing those will look incomplete.
Is this legal to use?
For parody, education, design mockups and screenwriting, yes. Using it to fabricate evidence, impersonate someone, defraud or harass is not, and fabricated messages presented as real can be a criminal matter. The output is a generated image.
Last updated