Generating a QR code without JavaScript, without a server, without any external dependency. Just with a font. That’s exactly what qr-font does, the open source project by Jim Paris that has been making the rounds in developer communities since late June 2026.
QR Code and TrueType Font: an Unexpected Combination
The TrueType format is designed to display text. Jim Paris repurposed it to encode a complete application logic inside it. The result: a font capable of transforming text enclosed in brackets into a valid QR code, directly at render time, with no server-side or browser-side processing.
The principle is straightforward to use. You install the font, type abc[hello]ghi in your editor or application, and the portion inside the brackets renders as a QR code. The surrounding text stays fully readable, in the same typographic style.
This is what you’d call an elegant proof-of-concept: it doesn’t solve a problem nobody had, but it demonstrates something fundamental about the capabilities of the OpenType format.
How It Works Technically
The magic relies on OpenType’s glyph substitution engine, known as GSUB (Glyph Substitution). The project encodes the entire QR code processing pipeline directly inside the font:
- Delimiter parsing (the brackets
[and]) - Byte mode byte expansion
- Reed-Solomon parity computation
- QR module placement
- Fixed mask application
The build script generates thousands of contextual GSUB rules, then compiles everything into .ttf files. Normal ASCII glyphs are copied from Liberation Sans Regular and scaled to fit the QR font’s em square. That’s why text outside the QR code remains perfectly readable.
Three versions are available depending on the desired capacity: qrfont-1L.ttf (21×21 grid, up to 17 characters), qrfont-2L.ttf (25×25 grid, up to 32 characters), and qrfont-3L.ttf (29×29 grid, up to 53 characters).
One Important Constraint to Keep in Mind
The project only works in environments that apply OpenType shaping, meaning rendering engines that process GSUB features. Not every piece of software does this. Before integrating this font into a production workflow, you need to verify compatibility with your target renderer.
Inputs are also limited to printable ASCII. No complex UTF-8 URLs, no accented characters inside the QR block.
Build and License: Clean and Open
The project uses uv for Python dependency management. A simple make is enough to compile the fonts. A full build with the Reed-Solomon circuit takes significantly longer than a quick build without parity, but it’s the one that produces valid, scannable QR codes.
On the licensing side, the generated font is distributed under the SIL Open Font License 1.1, which allows redistribution and modification under certain conditions. Liberation Sans, the source of the ASCII glyphs, requires using a different family name for derived versions, hence the names QR Font 1-L, QR Font 2-L, and QR Font 3-L.
The repository was published as version 1.0.0 on June 28, 2026, and had 248 stars at the time of this analysis. Modest, but consistent with a highly technical niche project.
Why This Project Deserves Developers’ Attention
This isn’t a tool you’re going to deploy in production tomorrow. But it perfectly illustrates an approach I appreciate: pushing an existing format to its limits rather than adding another software layer on top.
A few concrete use cases worth considering:
- Generating QR codes in PDF documents without a JS dependency
- Integration into print systems that support OpenType fonts
- Offline generation in air-gapped environments
- Rapid prototyping without a backend server
In a DevOps or security context, the absence of any network dependency and server-side attack surface is a serious argument for certain very specific use cases.
Key Takeaways
- qr-font encodes the complete QR generation logic inside an OpenType font, with no JavaScript or server required.
- Three font versions cover 17 to 53 characters per QR code, in printable ASCII only.
- The project requires a GSUB-compatible renderer: check compatibility before any production use.
- The SIL OFL 1.1 license allows redistribution and modification under conditions.
- It’s a brilliant proof-of-concept, not yet a turnkey production tool.
If you work on document generation pipelines or constrained environments, this project is worth a look. You can test it directly at qr.jim.sh without installing anything.
If this kind of technical hack interests you, follow the blog: I regularly cover open source projects that push the limits of common formats and tools. Feel free to reach out if you want to dig into a concrete use case together.
Sources
- Official project repository: github.com/jimparis/qr-font
- Interactive demo site: qr.jim.sh
- Korben.info, article from June 28, 2026: korben.info/en/qr-font-typeface-turns-text-into-qr-code.html
