# DWM QR > DWM QR (https://qr.dealwithmuhammad.com) is a free QR code generator with logos, colors, frames, print-ready templates and optional expiry dates. Static codes are generated entirely in the web browser and never expire; optional dynamic codes can stop working after 1, 7, 10, 20 or 30 days (or on a chosen date), count scans and have their destination changed after printing. There are no ads, no sign-up and no watermark. It was built by Muhammad Ahmad, a web and mobile app developer in Kuala Lumpur, Malaysia. ## What it does - **Content types** — Link/URL (https:// is added automatically), plain text, Wi-Fi (network name, password, WPA/WEP/no password, hidden networks; standard `WIFI:T:…;S:…;P:…;;` format with correct escaping), contact card (vCard 3.0 with name, phone, email, company, job title, website and address), email (mailto: with subject and message), phone call (tel:), SMS (SMSTO: with message), WhatsApp chat (https://wa.me/ link with an optional pre-filled message) and map location (geo: coordinates or a Google Maps link, with a "use my current location" button). Non-Latin text and emoji are encoded as UTF-8. - **Colors** — 12 one-click palettes (Classic, Forest, Ocean, Sunset, Grape, Midnight, Coral, Gold, Mint, Rose, Royal, Neon), custom dot and background colors, transparent background, linear or radial gradients with adjustable angle, and separate colors for the three corner "eyes". - **Shapes** — 6 dot styles (square, rounded, fluid, dots, classy, leaf), 6 corner-square styles and 5 corner-dot styles, each shown with a live thumbnail. - **Logo** — upload a PNG, JPG, SVG or WebP (it is resized in the browser and never uploaded) or pick one of 22 built-in icons (WhatsApp, Instagram, Facebook, YouTube, TikTok, X, LinkedIn, Telegram, link, website, Wi-Fi, email, phone, location, restaurant menu, café, shop, star, heart, event, ticket, music). Adjustable size and margin, and an option to clear the dots behind the logo. Error correction is automatically set to H (high) whenever a logo is used. - **Frames and call to action** — a label below the code, a speech bubble, a card, a banner on top or viewfinder corners, with editable text (such as "Scan me") and frame color. - **Scan-safety checks** — warnings for low contrast between dots and background, inverted (light-on-dark) codes, transparent backgrounds, very large logos and small quiet zones. Error correction (L, M, Q, H) and quiet zone (0–8 modules) are adjustable, and the editor suggests a minimum print size. - **Downloads** — PNG at 512, 1024 or 2048 px, SVG (vector), JPG and PDF, all including the frame and call to action; copy the image to the clipboard; or print it. File names look like `dwm-qr-link.png`. In SVG files the frame text uses the device's sans-serif font. - **Templates** — the code placed on an A4 poster, A5 flyer, 85 × 55 mm business card, A4 table tent that folds in half ("Scan for our menu"), A6 Wi-Fi card (network name and password filled in from the Wi-Fi form), 60 × 60 mm round or square sticker, or a 1080 × 1080 Instagram post. Headline, subtext, call to action and footer are editable and always shrink to fit. Print templates download as 300 DPI PNGs or as PDFs at the exact paper size; the Instagram post downloads as a PNG. - **Expiry and dynamic codes** — for Link, WhatsApp and Google Maps location codes, choose Forever, 1 day, 7 days, 10 days, 20 days, 30 days or a custom date (up to 5 years ahead). "Forever" with tracking off makes a normal static code. Any expiry, or the "Track scans & edit later" switch, makes a dynamic code that encodes a short link such as `https://qr.dealwithmuhammad.com/r/AbC1234` and redirects to the destination. - **My codes** — a list of the dynamic codes made in that browser, with scan counts and last-scan time. The owner can change the destination, extend or shorten the expiry, make a code permanent, delete it, re-open it in the editor, copy a private manage link (to open it on another device) and export or import the list as JSON. ## How dynamic codes and expiry work 1. When a dynamic code is created, the server stores its destination, optional name, creation time, expiry time and a scan counter, and returns a secret manage token. Only a SHA-256 hash of the token is stored; the browser keeps the token in its local storage. 2. Scanning opens `/r/`. If the code is active, the visitor is redirected (HTTP 307) and the scan is counted. Link-preview bots and crawlers are not counted. 3. After the expiry time the short link shows a friendly "This QR code has expired" page with the date it stopped working. Unknown or deleted codes show a "QR code not found" page. Expired codes are deleted from the server 90 days after they expire. 4. Destinations must be public http:// or https:// addresses (no local or private-network addresses, no embedded usernames or passwords, no other DWM QR short links, at most 2,048 characters). Each visitor can create up to 30 dynamic codes per day. ## Privacy - Static codes, uploaded logos and template designs are created entirely in the browser and are never uploaded. - For dynamic codes the server stores only the destination link, the optional name, creation and expiry dates, a scan count and the last scan time. It does not store scanners' IP addresses, locations or devices. - The rate limit uses a daily, hashed key; IP addresses are not stored. - The site records anonymous page views and button events (for example "qr-download-png"), never what a QR code contains. - No account, no sign-up, no watermark, no ads. ## Limits - A QR code holds at most about 2,900 bytes (less at higher error correction, which logos require). The Text field accepts up to 2,000 characters, and the editor says when content doesn't fit. - Dynamic codes need the DWM QR server to keep working; static codes never depend on it. - The "My codes" list lives in the browser's local storage. Clearing site data removes the list (the codes keep working); the manage link or a JSON export restores it. - Requires a modern browser with JavaScript (Chrome, Edge, Firefox, Safari — desktop or mobile). ## How to make a QR code 1. Choose what the code should open (Link, Text, Wi-Fi, Contact, Email, Phone, SMS, WhatsApp or Location) and fill in the details. The preview updates as you type. 2. For links, choose how long it should work: Forever (static) or 1, 7, 10, 20 or 30 days or a custom date (dynamic, press "Create dynamic code"). 3. Style it under Colors, Shape, Logo, Frame and More, then download PNG, SVG, JPG or PDF, copy or print it — or open Templates for a poster, flyer, business card, table tent, Wi-Fi card, sticker or Instagram post. ## FAQ - **Do QR codes expire?** Static QR codes never expire because the content is inside the code. A DWM QR code only stops working if you choose an expiry date, which makes it a dynamic code. - **Is it free?** Yes — free, with no ads, no sign-up, no watermark and no scan limits. Up to 30 new dynamic codes per visitor per day. - **Static vs dynamic?** Static codes contain the destination and work forever without a server. Dynamic codes contain a short link that redirects, so they can expire, count scans and be edited after printing. - **Can I edit a code after printing?** Only dynamic codes: open "My codes" in the same browser (or use the manage link) to change the destination or expiry. - **Will a logo or colors stop it scanning?** Not if the dots are clearly darker than the background. Logos automatically use error correction H; the editor warns about low contrast and large logos. - **What size should I print it?** At least 2 × 2 cm; roughly the scanning distance divided by 10. Keep a quiet zone of about 4 modules around the code. SVG and PDF stay sharp at any size. - **Who made it?** Muhammad Ahmad, a web and mobile app developer in Kuala Lumpur, Malaysia. ## Report abuse To report a DWM QR code used for spam, scams or phishing, email me@dealwithmuhammad.com with the short link (qr.dealwithmuhammad.com/r/…). ## Author - Name: Muhammad Ahmad — Web & Mobile App Developer, Kuala Lumpur, Malaysia - Portfolio: https://www.dealwithmuhammad.com - Case study: https://www.dealwithmuhammad.com/work/dwm-qr - Email: me@dealwithmuhammad.com - WhatsApp: https://wa.me/601139865270 - GitHub: https://github.com/Deal-With-Muhammad - LinkedIn: https://www.linkedin.com/in/muhammad-ahmad-7009b8248/ ## More free tools by the same author - [DWM Downloader](https://downloader.dealwithmuhammad.com): download videos from YouTube, Instagram, TikTok and more - [DWM Compressor](https://compressor.dealwithmuhammad.com): compress PDFs, images and video in your browser - [DWM BG Remover](https://bgremove.dealwithmuhammad.com): remove image backgrounds with AI, right in your browser - [DWM IP](https://ip.dealwithmuhammad.com): see your public IP address, location and ISP - [DWM Email Checker](https://emailcheck.dealwithmuhammad.com): check if an email address exists before you send - [Progress 2026](https://progress.dealwithmuhammad.com): a live counter of how much of the year has gone