Native Linux beta · browser companion · the static home of de.rtard.GifMaker

Launch the web app →

GIF Maker

Turn image sequences and photo bursts into high-quality animated GIFs — offline, native on Linux. Home: https://gif.rtard.de · App ID: de.rtard.GifMaker · License: GPL-3.0-or-later.

Launch the web app

The browser companion runs entirely in your tab (nothing is uploaded):

→ Launch GIF Maker web

What it does

Import a folder of frames (natural sort handles img_2 before img_10, EXIF orientation is applied), arrange them on the filmstrip, time them, and export an optimized animation:

Install

From source (current)

git clone <repo> gif-maker && cd gif-maker
python3 -m venv --system-site-packages .venv
.venv/bin/pip install -e ".[gui,dev]"
.venv/bin/python app/main.py

Optional encoders: dnf install gifsicle and cargo install --locked gifski (or use the Flatpak, which bundles both).

Flatpak / COPR (planned — Phase 4)

A manifest lives at packaging/flatpak/de.rtard.GifMaker.yml and an RPM spec at packaging/rpm/gifmaker.spec; both are drafted but not yet built.

CLI

The same engine ships as gifmaker:

gifmaker build ./frames/ -o out.gif --fps 12            # folder → GIF
gifmaker render project.gifproj -o sticker.webp         # project → WebP
gifmaker build ./frames/ -o small.gif --target-kb 512   # size-targeted GIF
gifmaker batch jobs.json                                # many renders, one command

GIF constraints worth knowing

Constraint What the app does about it
256 colors per frame palette + dithering controls
delays stored in 10 ms steps all timing snaps to the grid
<20 ms delays clamp to 100 ms in browsers warning + safe floor
size explodes with dimensions long-edge cap + target-size ladder

Development

.venv/bin/pytest          # 59 tests
.venv/bin/ruff check .
.venv/bin/python spike/benchmark.py

Layout: src/gifcore/ (engine, no GUI imports) · app/ (PySide6 GUI + services) · tests/ · spike/ (benchmarks) · packaging/. Roadmap and research: PLAN.md.