Local generationStatic codes are rendered on your device. The content is never uploaded, and no account is required.
Dynamic codesChange a printed code's destination at any time. Supports passwords, expiry dates, UTM parameters, custom slugs and a change history.
DesignerColors, module and corner shapes, logos, frames, labels and presets, with a warning whenever a design is likely to scan poorly.
Privacy-preserving analyticsScan counts, unique visitors, devices, browsers, countries and referrers. IP addresses are not stored.
Libraries and toolsA dependency-free core library, React components, a CLI, a JavaScript SDK and an OpenAPI-documented REST API.
Self-hostedRuns with Docker Compose on PostgreSQL, or as a single binary on SQLite. No paid services are required.