Stopwatch and Timer
A stopwatch and a countdown timer on one page. Count up with lap splits, or count down from any number of minutes, timed from your device clock.
Turn any text or link into a QR code in your browser. Set the size and color, watch it update as you type, then download a PNG. The data is encoded into the image itself and is not uploaded.
Updated
Your browser is preparing the tool. It runs 100% locally.
Type a URL or any text, pick a size (80-800 px) and a dark color, and the tool draws a QR code with the qrcodejs library as you type. Then download it as a PNG. It is a static code: the data sits in the pattern itself, so it never expires and makes no server call. Codes are generated at error-correction level H, about 30% recoverable, the most robust of the four levels.
Paste a link, a Wi-Fi string, a phone number or plain text into the box. A QR code appears within a quarter of a second and refreshes as you type. Set the size from 80 to 800 pixels, choose the dark color, and click Download PNG. The light squares stay white so scanners keep the contrast they need.
The code is drawn on your own device, so the text you encode is not sent anywhere. Because the code is static, what you type is written into the black-and-white pattern. There is no hidden short link or redirect, and no dashboard that could later change the code or switch it off.
The qrcodejs library takes your text, picks the smallest QR version (symbol size) that will hold it, and lays out the dark and light modules (the small squares) according to ISO/IEC 18004. It draws them onto an HTML canvas at the pixel size you set.
The tool keeps the library's default error-correction level, H, the highest of the four. Roughly 30% of the code can be smudged, torn or covered and it will still scan, which is why a QR survives printing on packaging or a small logo in the centre. Download saves the canvas as a PNG.
Longer text, busier code
| Library | qrcodejs (renders to canvas) |
|---|---|
| Standard | ISO/IEC 18004 QR Code symbology |
| Output size | 80-800 px square (default 240) |
| Colors | Custom dark color; fixed white background |
| Error correction | Level H, about 30% recoverable (library default) |
| Versions | Auto-selected, 1-40 (21×21 to 177×177 modules) |
| Capacity | Up to ~4,296 alphanumeric / ~2,953 bytes at high versions |
| Output format | PNG (raster) |
| Where it runs | In your browser; nothing is uploaded |
Codes are generated at level H, so they tolerate damage well but are denser than a level-L code holding the same text. A long URL makes the pattern busier and the modules smaller. Shorten the link first if you want larger squares that scan more easily.
The downloaded PNG is the bare symbol. Wherever you place it, keep a white margin (the quiet zone) of about four modules around it, or some scanners will struggle to lock on.
The background is locked to white, but a pale dark color can still stop the code scanning. Choose a dark, saturated color; plain black is safest.
It is a static QR. Once printed you cannot change where it points or see how many times it was scanned. Editable destinations and scan counts need a dynamic-QR service with a backend.
PNG is raster, so enlarging the file too far softens the edges. For big prints, generate at a larger pixel size from the start.
The four error-correction levels
Leave the quiet zone
Put a scannable link on a poster, business card, menu or slide so people can open it without typing.
Encode a Wi-Fi network string so guests join by scanning instead of reading out a password.
Print a code on a label or box; level-H correction means it still scans if the print gets scuffed.
Share a vCard, ticket reference or payment string as a code people scan at the door.
Need to edit the link later or see scan counts? That needs a dynamic-QR service with a backend. Want a 1-D retail or inventory code instead of a 2-D one? Use the barcode generator, which outputs scalable SVG.
Made with the qrcodejs library at its default error-correction level, H, which survives the most damage of the four levels. The text you encode stays in your browser.
A stopwatch and a countdown timer on one page. Count up with lap splits, or count down from any number of minutes, timed from your device clock.
Convert length, weight and volume units in your browser. Pick a category, type a value and the result appears at once, worked out through a fixed base unit with standard factors.
Type or paste text, choose a voice and a speed, and your browser reads it aloud using the voices already installed on your device.
Compress an image to JPEG with a quality slider and watch the file size drop as you drag, in your browser.
Combine several PDFs into one file in the order you choose, without leaving your browser.
Count words, characters, sentences and paragraphs as you type, with reading and speaking time alongside.
Generate as many as you need at the top of the page. It runs on this device and needs no account.