What the GIFvideo → gif, the way creatives need it
gif in medium

Medium renders your GIF at 700 pixels and ships every byte of it

The reading column is narrow, the image CDN leaves animated GIFs untouched, and a reader on a phone downloads the whole upload. Build the loop for that reality before it goes near the draft.

Drop a video, get a GIF free · frame-perfect · nothing leaves your browser Open the converter →

How to put a GIF in a Medium article

What the GIF does the whole thing locally, right in your browser: nothing here ever leaves your machine.

  1. Record the moment. Capture the interaction with your operating system's recorder, or grab a browser tab with Record a Tab. One clean take, starting a beat before the click.
  2. Open it in the converter. Drop the recording onto What the GIF. Decoding and encoding both run in the tab, which matters when the footage shows something unannounced.
  3. Trim to the beat. Cut to the four to six seconds where the interface responds, nudging the in and out points frame by frame with the arrow keys.
  4. Crop to the column. Frame the panel or control, not the desktop. Export 700 to 800 pixels wide for the column, 1200 and up only for a wider placement.
  5. Make weight. Set 10 to 12 fps, start at 64 colors, and switch on Extra Compression if the estimate is still over 5 MB. That estimate is the reader's download.
  6. Place it in the draft. New line, plus button, Image, pick the .gif, or drag it in. Add alt text, type the caption, and put it under the paragraph it proves.

Seven hundred pixels is the whole stage

Medium's reading column is narrow on purpose, and the markup on Medium's own handbook gives the number: an in-column image renders at 700 pixels, with a 1400-pixel version listed for dense screens. That is the stage. The wider placements, past the column edge or across the screen, only appear on the toolbar when the image is at least 1192 pixels wide, per Medium's help center.

Here is where most article GIFs die. A capture from a 2560-wide display gets squeezed into 700 pixels and the 12-pixel labels in your interface come out at three. Crop to the panel where the action happens, keep the crop near native pixel size, and let the wallpaper and the dock go. Export 700 to 800 pixels wide for a single control, and 1200 or more only when the loop earns a wider placement. The capture itself, from Cmd-Shift-5 to the Game Bar, is on the screen recording page.

The CDN leaves animated GIFs alone, so the reader gets all of it

We checked rather than assumed. Medium serves images through miro.medium.com with a resize instruction in the URL: fit:700 for the column, fit:1400 for dense screens, and a fill:224:224 thumbnail crop. For the two GIFs in Medium's own handbook, every one of those URLs returned the identical file, byte for byte, at its original 3412 by 1658 pixels. One weighs 17 MB. As of this writing, the resize step skips animated GIFs.

So the 25 MB ceiling is not a budget, it is a cliff. What you upload is what every reader downloads, on a 700-pixel column or a 360-pixel phone alike. Plan for 2 to 5 MB on a UI loop, under 2 near the top of the story. Four levers, in order of payoff:

The projected size updates with every dial, so you hit the target before export. A finished GIF that still weighs too much goes through the compress page.

Into the draft: the plus button, and the Giphy side door

New line, the plus button on the left, the Image icon, pick the .gif, or drag it onto the draft. Medium accepts .JPG, .JPEG, .GIF, and .PNG up to 25 MB. Select it and the placement options appear, if the file is wide enough. Click Alt text and describe what the loop shows; a screen reader gets nothing from motion. Type the caption beneath as the step label (no italics there). Cmd or Ctrl plus K links the image to the real product.

The second door is for GIFs you do not own. Paste a Giphy or Imgur link on its own line, press Enter, and Medium turns the URL into the GIF through Embedly. Embed code is not supported; the bare link is the whole mechanism. Right for a reaction shot. For your own demo, upload the file, so the loop never depends on someone else's hosting once the story is live.

Where a GIF hurts a Medium story

Medium is a reading product first, and a GIF is an image tag with no pause button. Pretending otherwise produces worse articles. Skip the GIF when:

The strong article GIF is small in every sense: a few seconds, one interaction, directly under the sentence that needs proof. The product demo guide covers pacing when one loop carries a whole feature.

The first server to see your loop should be Medium's

A Medium draft stays private until you publish, which is the whole appeal of writing there: the launch post before the feature ships, the teardown of your own app while it is still in TestFlight. Route that footage through an upload-first converter and the arrangement breaks quietly. The first server to hold your loop belongs to a stranger, days before the story goes live.

This converter runs inside the browser tab. Decoding, palette building, and frame packing all happen there, and the .gif drops into Downloads with no request in between. The only upload in the process is the one you make into the draft, so Medium's server sees the loop first, and only when you are ready.

For a web app, Record a Tab captures the tab through the browser's share picker (desktop only, real time), and a shape overlay blocks out a customer's email before export.

Give the column a loop it can carry

Crop to the panel, cut to the beat, land under 5 MB. Converted in your browser, so the draft is the first place the GIF ever goes.

Open the converter

Questions, answered

What's the maximum GIF file size on Medium?
Medium's help center lists 25 MB for image uploads, GIF included, as of this writing. That is the failure point, not the target: the CDN serves an animated GIF at its uploaded size, so a trimmed UI loop should land between 2 and 5 MB.
Does Medium resize or compress a GIF after I upload it?
Not in our test. Medium's image URLs carry resize parameters, but for animated GIFs every variant we fetched, 640, 700, 1400, and a 224-pixel thumbnail, came back as the identical file. Every reader downloads exactly what you uploaded.
Why doesn't my GIF get the wider placement options on Medium?
Medium shows all placement options only when the image is at least 1192 pixels wide. A 700-pixel export sits in the column and stays there. Go wider for those placements and budget for the weight.
Can I paste a Giphy link into a Medium story instead of uploading a file?
Yes. Paste the link on its own line, press Enter, and Medium turns it into an embed through Embedly; embed code does not work, only the URL. For your own demo, upload the file so the loop never depends on someone else's hosting.
Should the cover image of a Medium story be an animated GIF?
Usually not. The featured image is cropped into share cards and story listings at thumbnail size, where a 700-pixel loop reads as noise, and in our test the CDN returned the full file even for a thumbnail request. Still cover, loop in the body.
How wide should a GIF be for a Medium article?
Seven hundred to 800 pixels for an in-column loop, cropped tight to the interface. Medium's markup lists a 1400-pixel version for dense screens, but the file arrives whole regardless, so doubling the width roughly quadruples the download for sharpness few readers will notice.