Skip to content

FAQ ​

Is QRForge free? ​

Yes. It is MIT licensed and requires no paid services to develop, run or self-host. There is no paid tier in the code.

Do I need an account to create a QR code? ​

No. The Studio generates static codes in the browser without an account or a server. Accounts are needed only for dynamic codes, analytics and saving codes on a QRForge server.

Is my data sent anywhere? ​

Not for static codes, which are generated locally by @qrforge/core. Uploaded logos are also processed locally. Data reaches a server only when you save a code or create a dynamic code on your own QRForge server.

Do static codes expire? ​

No. The content is stored in the pattern itself, so nothing has to stay online.

What happens to dynamic codes if my server goes down? ​

They stop redirecting until the server is back, because they point to it. Keep backups and use a hostname you control. If a code must keep working without any infrastructure, make it static.

Which content types are supported? ​

URL, plain text, Wi-Fi, contact (vCard 3.0), email (mailto:), SMS (SMSTO:), phone (tel:), location (geo: or an OpenStreetMap, Google Maps or Apple Maps link) and calendar events (iCalendar VEVENT). Dynamic codes redirect to URLs.

Will a styled code still scan? ​

The presets are chosen to scan reliably, and every design is checked as you edit it. Low contrast, inverted colors, a missing quiet zone, very small modules, oversized logos and mixed corner shapes all produce warnings. The core test suite decodes every style with an independent decoder. Still, test with a few phones before printing.

Which error correction level should I use? ​

M (15%) suits most codes. Use Q or H when adding a logo or when the code may be damaged. Higher levels produce denser codes.

Why is the country shown as unknown? ​

QRForge does not include a GeoIP database or call geolocation services. Set QRFORGE_COUNTRY_HEADER to a header added by your CDN or proxy, such as CF-IPCountry. See Analytics.

PostgreSQL or SQLite? ​

Both are supported. SQLite is built in and suits single-instance installations. PostgreSQL is used by the default Docker Compose stack and is required for running more than one instance.

Can I run it without Docker? ​

Yes. The server is a single Go binary; see Installation.

How do I reset a password without email? ​

Use Forgot password. When SMTP is not configured, the reset link is written to the server log.

Can I stop others from registering? ​

Set QRFORGE_REGISTRATION=closed, or turn off Open registration under Admin → Settings. The first account can always register.

Is there an API? ​

Yes. The REST API uses API keys and is described by an OpenAPI document at /api/v1/openapi.yaml. A JavaScript SDK is also available. See REST API.

Can QRForge run on GitHub Pages? ​

Only the Studio. GitHub Pages serves static files, so the server features (accounts, dynamic codes, analytics) need a self-hosted QRForge server. See GitHub Pages.

Released under the MIT License.