Zitly logo
Zitly
13 types · No watermark · Free

A QR code generator with no watermark, ever

Build a QR code for a URL, WiFi network, contact card, WhatsApp message, event, or payment link. Add a logo, pick a frame, and export a print-ready file, all inside this browser tab.

Zitly generates static QR codes using the open-source qrcode library, rendered entirely on the browser's own Canvas API. Nothing you type, including WiFi passwords or contact details, is ever sent anywhere.

Last updated August 21, 2026

13
Content types
12
Frame styles
PNG / SVG
Watermark-free export

QR code generator tool

Build your QR code

13 content types, a live style preview, and watermark-free export.

Loading the QR engine…

1. Content type

What should this QR code open or do?

2. Website URL details

3. Customize

Every thumbnail below is a real, live-rendered QR code.

Preview

Your QR code will appear here

Fill in the details and click Generate

  • Use High (H) error correction whenever a logo is added.
  • Keep at least 4:1 contrast between foreground and background.
  • Download SVG for anything going to a printer.

Five steps to a finished QR code

No payment screen appears at any point in this flow.

  1. Pick a content type

    13 options are available. The form below adjusts to match: a URL gets one field, WiFi gets a network name and password, a vCard gets a small contact form.

  2. Fill in the details

    Each field is validated as you type. A URL has to start with http:// or https://, an email has to match a real address pattern, so nothing broken makes it into the final code.

  3. Choose a style

    Pick a frame from the Style tab, set foreground and background colors in Colors, and upload a logo in Logo if you need one. Every preview is a real, live QR render, not a mockup.

  4. Set size and error correction

    Choose an output size from 200 to 1000 px, and an error correction level. Use Medium by default, and switch to High the moment a logo is involved.

  5. Generate and check it

    Click Generate QR Code. Scan the on-screen result with your own phone before downloading, then export PNG for screens or SVG for print.

Six mistakes that break scannability

Almost every QR code that fails to scan does so for one of these predictable reasons.

Logo added under Medium error correction

The logo covers modules that Medium's 15% redundancy can't fully recover, and the code stops scanning on a share of phones.

Switch to High (H) before adding a logo. Zitly does this automatically the moment a logo file is uploaded — check the Size tab to confirm it stuck.

Foreground and background colors too close in brightness

Scanners rely on detecting a contrast boundary between dark modules and the light background. Low contrast fails on older phones and in bright outdoor light.

Keep at least a 4:1 contrast ratio. Black on white remains the most reliable pairing across every device.

Scaling a downloaded PNG up for print

PNG is a fixed-pixel raster format. Stretching a 400×400 px file to fill a 10 cm print area produces a visibly blurred result that can fail to scan.

Download the SVG version for anything going to a printer. It's vector, so it stays sharp at any physical size.

Printing the code smaller than about 2 cm across

Most phone cameras struggle to resolve a QR code below roughly 2 cm × 2 cm at arm's length, especially a dense one from a long URL or a full vCard.

Stay at or above 2 cm square for anything handheld. For signage viewed from further away, scale up: 1 cm of code for every 10 cm of expected scanning distance.

Crowding the quiet zone around the code

Every QR code needs a clear margin on all four sides so a scanner can find the corner finder patterns. Placing other artwork right up against the edge breaks that.

The generator includes a safe margin in every export. If it's placed inside a larger design in Figma or Canva, leave at least 4 mm of clear space around it.

Using a dynamic, redirect-based QR service for something printed permanently

A dynamic code routes every scan through a third-party server. If that service shuts down or a subscription lapses, every code already printed goes dead at once.

Use a static code, the kind this tool makes, for anything printed permanently: business cards, packaging, signage.

Which type, format, and error level to use

A quick reference for common scenarios — pick your settings before you start filling in the form.

Use caseTypeFormatError level
Website link on a business cardURLSVGM
Café or venue WiFi accessWiFiSVGM
Conference badge contact exchangevCardPNG or SVGM
Event flyer with a logo overlayURLSVGH
Outdoor product packagingURLSVGQ
Instagram bio or story linkURLPNG 600×600M
Email signatureURLPNG 300×300L
WhatsApp customer service buttonWhatsAppPNG or SVGM
Billboard viewed from 5 m or moreURLSVGQ

L = 7% redundancy · M = 15% · Q = 25% · H = 30%. Higher levels produce a denser pattern.

What error correction actually does

Every QR code carries redundant data, extra encoded information that lets a scanner rebuild the full pattern even when part of it is dirty, damaged, or covered by a logo. More redundancy means a denser pattern for the same content, since more of the grid is spent on recovery instead of data.

Level L — 7%Low

Clean digital displays only, no logo, no physical handling. The smallest, least dense pattern.

Example: A code shown on a controlled digital sign or a screen.

Level M — 15%Medium

The default for most cases: business cards, flyers, product pages, email signatures.

Example: A plain business card code with no logo.

Level Q — 25%Quartile

Outdoor signage or packaging exposed to wear, without needing the maximum density of High.

Example: A transit poster or outdoor banner that might get scratched.

Level H — 30%High

Required whenever a logo is embedded. Also a safe default for heavily handled merchandise.

Example: A branded code with a company logo, printed on event merchandise.

Static QR codes versus dynamic ones

This is one of the most common questions when picking a generator, and the right answer depends entirely on the use case, not on which option sounds more advanced.

Static (this tool)
  • Data lives directly in the image, no redirect server involved
  • Never expires, never depends on a third party staying online
  • No subscription required to keep working
  • Can't change the destination after printing
  • No built-in scan analytics
Dynamic (third-party services)
  • Can update the destination after the code is already printed
  • Built-in scan tracking and analytics
  • Needs an ongoing paid subscription to keep resolving
  • Every printed code breaks at once if the service shuts down

In practice: use a static code for anything printed permanently, business cards, packaging, signage, merchandise. Reach for a dynamic service only when post-print URL changes or detailed scan data genuinely matter, and budget for the subscription that keeps it working.

What to use each content type for

Six of the thirteen types, with what makes each one work and what tends to go wrong.

Website URL

Landing pages, menus, portfolios, booking forms

Tip: Add UTM parameters to the URL before generating, so scan traffic shows up clearly in your destination site's own analytics.

Avoid: Avoid pointing the code at a short link from another shortener. If that service goes down, every printed code breaks at once — encode the real destination directly.

WiFi network

Cafés, hotels, co-working spaces, short-term rentals

Tip: Place the code at the entrance and near the counter. Android 10+ and iOS 11+ scan and connect without a separate app.

Avoid: Don't print the plain-text password right next to the code if privacy matters — the QR handles the handshake; a visible password defeats the point.

vCard contact

Business cards, conference badges, email footers

Tip: One scan saves a fully-formed contact: name, title, company, phone, email, in one tap. Use vCard 3.0 for the widest device support.

Avoid: Skip embedding a photo in the vCard data — it inflates the code's density and hurts scan reliability at small sizes.

Email

Support desks, feedback prompts, contact pages

Tip: Pre-fill the subject line so replies route correctly without the sender typing anything.

Avoid: Don't use a QR-encoded email link for newsletter signups — spam filters treat a pre-composed mailto link differently from a real form submission.

WhatsApp

Customer support triggers, appointment confirmations

Tip: Include a short pre-written message so the customer only has to tap send.

Avoid: Always include the full international country code — the wa.me link fails silently without it.

Calendar event

Conference sessions, launches, local meetups

Tip: Scanning adds the event straight to the phone's calendar, no retyping dates or venue details.

Avoid: Double-check the timestamp format before generating — an invalid one creates an event at the wrong time or fails without warning.

QR codes beyond the obvious cases

Specific applications across three sectors that use QR codes daily.

Retail

  • Product tags linking to size guides or care instructions
  • In-store price checkers pointing to the product page
  • Return forms encoded directly on a receipt

Print & publishing

  • Magazine ads linking to video or an extended interview
  • Book codes linking to author notes or bonus material
  • Poster campaigns linking straight to a ticket page

Hospitality

  • Digital menus that update without a reprint
  • Table WiFi access without reading out a password
  • Feedback forms on a receipt or table card

A code that fails to scan after printing is rarely a generation problem — it's almost always a sizing or material decision made after export.

Minimum sizeAbout 2 cm × 2 cm for handheld scanning at arm's length. Below that, most phone cameras struggle to resolve a dense pattern.
Distance scalingFor anything read from further away, use a 1:10 ratio: 1 cm of code for every 10 cm of expected scanning distance.
File formatSVG for anything going to a professional printer or a design tool. It's vector, so it renders sharply at any size.
Quiet zoneLeave a clear margin on all sides, at least 4 mm in a layout tool, so scanners can find the corner markers.
Finish and materialGlossy or reflective stock can glare under light and block a scan. Request a matte finish where the code is the main call to action.
Test before the print runScan the final proof on two different phones, one recent and one a few years old, before committing to volume.

Questions people ask before making a QR code

Direct answers on watermarks, logos, error correction, and file formats.

Yes. Every download is watermark-free, with no account, no paid tier, and no cap on how many codes you make.

No. This tool creates static codes — the destination data is encoded directly into the image, with no redirect server involved on Zitly's side, so nothing about the code itself can expire.

Yes, as long as error correction is set to High (30% redundancy). The tool switches to High automatically the moment a logo is uploaded.

About 2 cm × 2 cm minimum for handheld scanning. For anything viewed from further away, scale up using a 1:10 ratio between code size and expected scanning distance.

PNG for screens: websites, email, social posts. SVG for print — it's vector, so it stays sharp at any physical size, from a business card to a banner.

No. Generation runs in the browser using the open-source qrcode library. WiFi passwords, contact details, and everything else you type stay on your device.

Medium (15%) covers most everyday cases. Move up to Quartile (25%) for anything exposed to wear, and use High (30%) whenever a logo is involved.

Static, the kind this tool makes, for anything printed permanently. Dynamic only if you genuinely need to change the destination after printing or want click analytics, and are willing to keep paying to maintain it.

Build your QR code

No signup screen. No watermark on the download. Just a QR code.

You might also like

(3 related tools)
Browse all 12 tools