Skip to content

SecuriType

Presenting Fonts on the Web Without Exposing the Font File

TypeSecure is my first attempt at turning a concrete technical problem into a standalone product with real commercial potential.

The idea came from my girlfriend, who studies graphic design and creates her own typefaces. If you want to present a custom font on a website, you run into a fundamental problem: in order for the browser to display the font, the font file normally has to be transferred from the server to the browser.

For freely available web fonts, that does not really matter. For a typeface that is meant to be sold or licensed later, it does.

The Problem with Fonts in the Browser

When a font is embedded using standard web technologies such as @font-face, the browser needs access to the font file. This means that the WOFF, WOFF2, or TTF file is available through a publicly accessible URL on the server.

Using the browser’s developer tools, that file can be found and downloaded within just a few clicks. This does not require any special technical knowledge or an actual attack on the server.

For type designers, this creates a simple dilemma: the font should look as realistic as possible online, but the complete font file should not have to be delivered along with it.

That is why I built TypeSecure.

Rendering Instead of Delivering

The basic idea is simple: the actual font file never leaves the server.

Instead of sending the font to the browser, the entered text is rendered on the server using the selected typeface. The result is then returned to the browser as either an SVG or a PNG.

The client therefore receives only the visual representation of the text, not the font file itself.

Technically, this shifts an important part of the rendering process from the browser to the server.

Instead of

Browser → Download font → Render text

the process becomes

Browser → Send text → Server renders font → Return SVG or PNG

The font file remains exclusively on the server throughout the entire process.

SVG or PNG

TypeSecure supports two output formats, each with its own trade-off between visual quality and protection.

SVG

SVG is the better option for high-quality rendering in the browser. Because SVGs are vector-based, the letters remain sharp even at very large sizes.

However, the individual characters are transmitted as geometric shapes. In theory, those shapes can be extracted and reused.

What you get from that, however, is not the original font file. Metrics, sidebearings, kerning, OpenType features, and other internal properties of the typeface are lost.

Reconstructing a fully functional font from an SVG representation like this is significantly more difficult than simply downloading a web font file.

SVG therefore represents a compromise: very high visual quality while providing better protection for the actual font file.

PNG

If stronger protection is required, the output can instead be rendered as a PNG.

In that case, the browser receives only a raster image of the displayed text. Information about the original vector shapes of the characters is no longer included.

Reconstructing the typeface would then require manually or automatically tracing the visible characters.

The disadvantage comes from the format itself: PNG is raster-based and, especially at high levels of magnification, cannot achieve the same sharpness as SVG.

That is why TypeSecure supports both options. Depending on the use case, users can choose between maximum display quality and greater abstraction from the original font.

From Problem to Product

TypeSecure was interesting to me for another reason as well.

Most of my previous software projects originated from research, university work, or specific internal requirements. With TypeSecure, I wanted to go through the entire process of building a small software product myself for the first time.

The technical implementation was only one part of that process. I first had to understand whether the original problem could be solved in a meaningful way, what limitations such a solution would have, and how to turn it into an application that can also be used by someone without a technical background.

I particularly enjoyed the combination of a very specific problem from graphic design with a technical solution.

TypeSecure is deliberately not a DRM system, and it cannot prevent a visible typeface from being reproduced in some form. As soon as something can be displayed on a screen, it can also be copied, photographed, or traced.

The goal is different: the original, directly usable font file no longer has to be publicly delivered to the browser.

What would otherwise be a download taking only a few seconds becomes a significantly more involved reconstruction process.

Try It Live

TypeSecure is fully functional and can be tested directly on the website.

Rather than describing every individual feature here in detail, I built a live demo that allows users to try the rendering process and the different output formats directly.

For me, the project was primarily an exercise in identifying a real-world problem, deriving a technical architecture from it, and turning that architecture into an application designed to function as a standalone product.