Flat / GIF hosting

GIF hosting: upload animated GIFs and share a link

Publish a finished GIF from your browser or the CLI. Share a short animation with a browser preview and a direct URL to the original file.

Checking your upload limits... · Public · Limits

Drop your GIF files here

or choose them from your device.

Select GIF files

What people see at your GIF link

Animated GIFs play inside Flat's image viewer when the browser supports them. Flat preserves the frames, timing, and loop settings already saved in the file.

The screenshot shows one frame of the sample animation. The actual GIF remains animated. It uses image controls, rather than a video timeline or audio player.

A single image opens in Flat's viewer. Several files open in the explorer. Public links need no Flat account, and original downloads stay available.

The exact path /motion.gif serves the original image. Use the main link for the viewer, or the exact image URL when embedding a browser-compatible image on your website.

Flat's image viewer displaying one frame of a looping GIF with a moving orange circle.
One frame of motion.gif in Flat's viewerView full-size screenshot

How to upload GIF files and get a URL

  1. Prepare your images

    Create and export your GIF before uploading. Set its frame timing, dimensions, and loop count in your animation tool. Flat does not turn a video into a GIF or change its frame rate.

    Long GIFs can become large. For longer clips, sound, or playback controls, consider video hosting.

  2. Publish from your browser or terminal

    In your browser

    Drop, publish, copy the link.

    Drop your finished images into the uploader above, or choose them from your device. Enter your email if signed out, then choose "Publish images".

    Each file needs a unique name. Selected files publish at the top level. Use the CLI for folders; the browser uploader does not accept folders or extract ZIPs.

    TerminalNode.js 20+

    One command. Files or folders.

    npx -y @getflat/cli deploy ./motion.gif

    Replace the example path with your file, or pass a folder path to publish several images. The CLI preserves relative paths and prints the published URL.

  3. Open and share the URL

    Watch the published GIF through a complete loop. Check timing and image quality before sharing its viewer link or embedding the original GIF URL.

    Signed-out uploads expire after 1 hour by default. Sign in before expiry to keep them online, or sign in before publishing for no default expiry.

What you can share with GIF hosting

Short product demos
Show a brief interaction or before-and-after sequence. Use a small animation that makes sense without sound.
Motion design previews
Send an exported loop to a client. Keep comments and approvals in your existing review conversation.
Visual instructions
Place a short animated step in documentation using its exact GIF URL. Check whether the destination platform permits external animated images.

Keep a version, or keep an address.

Share this version

Every upload gets its own link. Publishing revised files creates a new link and leaves the earlier version unchanged. Use the version link when someone needs to review a specific upload.

Update files at one address

Use a named onflat.page address or your own domain. Sign in, then publish with the CLI using --domain. Publish revised files with the same domain to point that address to the new upload.

Named addresses are included on Free. Adding your own domain requires a paid plan. The browser uploader does not set up or repoint these addresses.

GIF hosting questions

Is hosting free, and what are the limits?

Yes. Signed-in Free includes 5 MiB per upload, 1 GiB of storage, and 5 GiB of monthly transfer, with no default expiry. The per-upload limit covers all files in that upload. Paid plans raise these limits.

Compare hosting plans and limits

Do readers need a Flat account?

No. Public links open without a Flat account. Anyone with the link can open the uploaded files. Password-protected links also require the visitor password.

Can I password-protect my upload?

Yes. Password protection is available on every plan. Add --password YOUR_PASSWORD to your CLI deploy command. It protects access to the upload and its files, but does not prevent someone with access from saving a copy. The browser uploader creates public uploads.

Set a visitor password

Can I replace files without changing the link?

A version link always refers to its original upload. For same-address updates, use a named address or your own domain. Publish revised files with the same --domain value in the CLI to point that address to the new upload.

What happens when an upload expires?

Flat stops serving it. An expired upload cannot be recovered. Signed-out uploads expire after 1 hour by default. For browser uploads, use the sign-in link shown after publishing. For CLI uploads, run npx -y @getflat/cli login. Complete sign-in before expiry to keep the upload online. If you chose a shorter expiry in the CLI, that deadline stays in place.

Will my uploaded GIF keep animating?

Flat keeps the original animation data. Playback follows the browser and the GIF's saved timing and loop settings. A still GIF stays still.

Can I pause or scrub a GIF in the viewer?

The image viewer has zoom, pan, and rotation controls, but no GIF timeline. If your audience needs pause and seek controls, export a video and publish that instead.

Does Flat compress GIFs or create them from video?

No. Export and optimize the GIF in your own tool, then publish the finished file. The original download keeps all uploaded frames.

How large can an image preview be?

Flat's viewer accepts image files up to 5 MiB. The browser must also be able to decode the image. Paid plans allow larger uploads, but do not raise the viewer's preview limit. Original files remain available to open or download when a preview is unavailable.

Find the guide for your next image.

Share your GIF files.

Publish your finished images, check the result, and copy the link.

Publish images

Free to start · View pricing

Compare all supported image formats