$ show sindresorhus/Gifski
Gifski is a polished macOS application that converts video files into high-quality animated GIFs. The application uses a hybrid architecture: a SwiftUI frontend handles the user interface, video decoding (via AVFoundation), real-time preview compositing (via Metal shaders), and system integration (Share Extension, Shortcuts), while the core GIF encoding is performed by a companion Rust library (gifski-api) exposed through a C API. Key data flows involve decoding video frames, optional cropping/trimming/resizing, temporal denoising and palette quantization in the Rust engine, and finally writing the GIF output. The codebase demonstrates solid engineering with actor-based concurrency, comprehensive unit tests, and reusable UI components. However, it carries technical drift from macOS version workarounds and deprecated Rust API usage, and targets a future macOS version (26+) not yet generally available.
The LLM identified 4 files worth highlighting for reuse:
A reusable SwiftUI view for numeric input that supports keyboard arrow-key delta adjustments (up/down) and enforces value bounds. Designed to be embedded in forms or preference panels where integer values need direct editing with immediate feedback.
A customizable checkerboard pattern view drawn via NSBezierPath (macOS). Supports arbitrary checker size, tile colors, and an optional clear rect overlay for highlighting a subregion. Useful as a transparent background indicator in image/video editors.
A ViewModifier that attaches drag gesture handling to crop handle views, encapsulating minimum distance, coordinate space conversion, and drag state tracking. Can be reused wherever draggable resize handles are needed (e.g., rectangle selection, custom sliders).
Contains a generic Debouncer class (within a larger utility file) that coalesces rapid calls into a single execution after a configurable delay. Also includes an async-friendly `ProgressableTask` pattern for reporting progress during long-running conversions. These patterns are independently reusable in any Swift project needing throttling or progress tracking.