Google Analytics helps us understand which tools you use and which actions work. Your files and entered text stay out of analytics.

Free · no sign-upNo watermarkX and Twitter URLs

Tweet to image.
Keep the words. Give them room.

Turn a public X post into a clean image. Keep its author and source. Choose a design that stays readable wherever you share it.

One link or a batch of sixPNG, JPG, WebP and clipboardPublic URL import. Image export in your browser.

Paste a post link, choose a design, save the image.

Post Studio
@parish_khan · public example
FROM A LINK TO A SHAREABLE IMAGE

Give the words some room.

Import a public post. Keep its author, choose a design and save a clean image.

X / Twitter

Paste a public link. Press Enter to import.

Public links go to our import service to retrieve the post. Design and image export happen in your browser.

Your example is ready. Paste another link to make it yours.

LIVE PREVIEWPUBLIC EXAMPLE
Preparing previewPreview fits this space. Saved pixels stay sharp.

Public posts only. No watermark. Imported posts and images stay in this tab after retrieval. Save before closing it.

Only design settings are remembered. Imported posts stay in this tab.Saving details

How to turn a tweet into an image

  1. Paste the post link

    Copy the link to a public X or Twitter post. Paste one URL, or up to six on separate lines, and choose Import posts.

  2. Design it without changing the words

    Pick a treatment and background. Choose a canvas size. Check the original text, media and context in Source, text and import notes.

  3. Save an image you can read

    Check the export dimensions and phone-size text estimate. Save PNG, JPG or WebP, or copy PNG. A batch can arrive as one ZIP.

Using Post Studio

Import an existing post, then style the image around it. You cannot edit the imported wording, name or handle.

Import one URL or a small batch

Import post reads the URL in Start with a post link. Choose Import a batch to open space for up to six links. Each non-empty line must be a public post link.

Control or inputWhat happens
Start with a post linkAccepts HTTPS links from x.com, twitter.com and their www or mobile variants. Share parameters and photo/video suffixes are removed before retrieval.
Import post / Import postsImports up to six distinct post IDs. Duplicate links count once. A new successful run replaces the current set. Failed links are named by their line number.
Cancel importStops the browser’s pending import request. The previous composition stays available. A server request already received may finish upstream.
Try a public postRefreshes the public example from @parish_khan, post 2112165849088004370. The page starts with a bundled copy of that post, so the preview is ready without an import request. The button retrieves the latest available version from X.
Import a batch / One post insteadExpands or compacts the link field. Paste one URL per line. Shift+Enter inserts a new line; Enter imports the set.
Post tabs and ×Choose the post to preview or remove it from the current set. The same design applies to every remaining post.
ClearReleases imported posts and images from the studio. Your design settings remain. It does not delete the original on X.

A batch can partly succeed. The status line identifies failed imports, while the successful posts become the new set. If every link fails, the previous set stays.

The design settings scroll inside their own panel. The live preview stays beside them on a wide screen and above them on a narrow screen.

Choose a treatment and typeface

Paper, Midnight, Editorial and Outline change the card treatment. Editorial also selects Georgia. The other presets select Instrument Sans.

  • Typeface chooses Instrument Sans, Space Grotesk or Georgia. The first two fonts are hosted by floi. Your device supplies Georgia.
  • Text size sets body text between 18 and 36 design pixels. The final pixel size also depends on the canvas ratio and Export scale.
  • Reset design restores the initial treatment, spacing, context and export settings. It keeps imported posts.

Set the background and spacing

Background offers five gradients, Clear, Soft grey and Custom colour. Named swatches are shortcuts to the same setting.

SettingEffect
Background colourAppears for Custom colour. It fills the outer canvas, while the post keeps its treatment.
Card widthSets the design width from 420 to 760 pixels. A narrower card wraps words into more lines. This does not resize the tool window.
Outer spacingAdds 16 to 120 design pixels around the composition. Extra spacing can make text smaller inside a fixed canvas.
CornersRounds the card and its nested quote. It does not round or crop away the text.
ShadowChanges the shadow strength beneath the card. Zero removes it.

Keep enough context to be fair

Keep the context controls what surrounds the imported words. Author details remain visible in every treatment.

  • Photos and video posters includes returned media. Photos fit without cropping. A video or GIF is labelled as a still poster.
  • Quoted post includes a nested quoted card, when supplied. Parent post, if returned adds a parent above the main post.
  • Date and time in UTC shows the returned publication time with an explicit timezone.
  • Available engagement counts shows returned likes and replies. Missing counts are omitted. Views and repost counts are not invented.
  • Source link below card prints the post address outside the card. It is visible text in an image, not a clickable link.

Open Source, text and import notes to compare the imported words with the original. It records the retrieval time and flags missing images or edited posts. A reply’s parent may be absent even when the import succeeds.

Choose export dimensions without clipping text

Fit entire post grows the canvas with the returned content. Fixed sizes fit the complete composition inside the chosen rectangle.

Export controlResult
Canvas sizeFit entire post, square 1080 × 1080, portrait 1080 × 1350, vertical 1080 × 1920, landscape 1920 × 1080 or link preview 1200 × 630. These dimensions are at 1×.
Export scaleMultiplies both dimensions by 1, 2 or 3. A 1080 × 1350 canvas at 2× saves 2160 × 2700 pixels. More pixels do not enlarge text when the image is displayed at the same width.
File formatPNG avoids lossy encoding around letters. JPG and WebP use 94% encoding quality. Clear keeps transparency in PNG and WebP; JPG fills it with white.
Save PNG / JPG / WebPSaves the selected composition. The button name follows File format.
Save allSaves the current batch with one shared design. Choose one ZIP or separate files through the file bar’s save menu.
Copy PNGCopies image pixels, regardless of File format. If browser clipboard permission is unavailable, save a file instead.

The preview reports the exact saved dimensions and estimates body text at a 390-pixel display width. This is a geometry estimate, not an accessibility certification. A warning appears below 14 pixels. Prefer a taller canvas or separate images to tiny text.

Source description and the tool window

Copy description copies the visible post text, author, source and available media descriptions. Review it, then paste it into your destination’s image alt text.

  • Open in sends your finished image to another floi tool. Use Screenshot Beautifier when you need arrows or annotation.
  • Share offers the shared file options. Open in and Share use the same image as Save.
  • Narrow, Wide or Full at the top right changes the tool window. Minimise keeps the current work on the desk. Reloading the page loses imported posts.

Keyboard controls

Form controls keep their normal keyboard behaviour. The file bar provides the shared save shortcut.

KeyAction
Enter in the URL fieldImport the current links.
Shift + EnterAdd another URL line.
Ctrl / ⌘ + SSave the selected image through the file bar.
EscapeLeave focus mode through the shared window controls.

What this tool will not do

It cannot recover deleted posts or bypass protected accounts. X’s public embed service can fail or return shortened text. A designed card is a reconstruction, not proof that the original was unchanged.

It does not capture the X interface, crawl whole threads, translate posts, invent metrics or export video. Images are limited to 3 MB each during import, with a 10 MB total budget per post. Exports stop above 32 megapixels or 8192 pixels per side.

Imported posts and public media are not saved to account state, browser storage or Supabase Storage by this tool. Only design settings are remembered. Save the image before closing the tab.

Frequently asked questions

Can I turn a tweet URL into an image without signing in?

Yes. Paste a public X or Twitter post link and choose Import posts. No floi or X account is required. Protected, deleted or restricted posts may be unavailable. An import needs an internet connection.

Does this capture the full text of a long X post?

It renders all the text returned by X’s public embed-data service, with no Show more button added by floi. That service may return less than the original Premium post. Open the original and compare the final sentence. A successful import does not guarantee complete text.

Can I include a quote tweet, a reply or a thread?

A quoted or parent post appears when X returns it. The corresponding checkboxes control whether it is included. The tool does not fetch a whole conversation automatically. Paste up to six explicit post URLs to make a set of separate images. Review the original thread for context.

What happens to photos, videos and GIFs?

Up to four returned media items are included. Photos are fitted without cropping. Videos and GIFs become labelled still posters, with no motion or sound. If an image cannot be retrieved, a placeholder remains visible. You can hide media with Photos and video posters.

Is there a watermark or a limit?

No watermark is added. You can import up to six URLs per run. Exports are limited to 32 megapixels and 8192 pixels per side. The import service applies a temporary request throttle, and X may impose its own limits. There is no account or payment gate.

Are post links and images saved to my account?

No. The post link goes to floi’s Supabase import service, which retrieves public data and images from X. The function does not write those posts or images to a database or Storage. They stay in this tab after retrieval. Only design settings use automatic account saving. Hosting providers may retain ordinary request logs.

Something missing? Request a feature

↑↓ move↵ openesc close