It happens, you need to design something: a website, brand, publication, poster, or anything else with a font budget of zero. Finding the right typeface to use is already challenging, but even more so when you’re limited to free ones. Here’s what you need to keep in mind when going trough the process of choosing a free font.
Language and Glyhps
The font has to support all the languages you will use, both written text and any names being used. Alternatively, it needs to have good fallback fonts to supplement it. Do note that fallback fonts work best if they target an entire script (e.g. Source Sans Pro as your main font with Noto Sans Arabic for Arabic text.). However, having entire characters substituted in the middle of a word will in the vast majority of cases look terrible. Remember, even the English language uses loanwords with afflicted characters such as naïve, frappé, soufflé, and café. Even if you are sure that your written text will be free of afflictions, don’t forget people’s names: Beyoncé, Zoë, Renée, and so on. And those are just common names that show up in English. Last, if you need to typeset LaTeX or mathematical formulas, you’ll want a typeface that has those glyphs.
Number and Types of Styles
When you design a poster, you likely only really need one or two styles. If you need contrast and hierarchy, spacing and differing sizing can already work wonders. If you’re setting type for a website or brand, you will probably want a wider range of styles to use in order to build up multiple levels of hierarchy (e.g. Large header, subtitle, small header, italic text.) On the contrary, if you’re designing the interior of a novel, you only really need a regular/roman and an italic, but having support for small caps and text figures [ 1 ] would be greatly prioritized. If you’re setting a lot of numbers in tables, having lining figures [ 2 ] would be essential to make them more scanable. Lately, variable fonts have emerged, and its flexibility could be a factor. Variable fonts are particularly useful for developing a “dark mode,” as you can drop the typeface weight just a little bit in order to make it more legible.
Depending on what you’re doing, you might prefer to use a sans-serif, serif, slab, monospace, or a script typeface. There are many better articles online regarding this, but broadly speaking, sans-serifs tend to be popular with branding work and UI text whereas serifs tend to be preferred for documents or novels. However, do not fall in the trap of style over substance. At the end of the day, your work will have to literally communicate. Some of the best typefaces in the world are boring at first glance, especially when previewed at very large sizes. Despite that, they can be incredibly legible with many small hidden details that give its personality and help your design be both readable and communicate whatever you intended it to.
Another trap is using branded typefaces. Ubuntu, Fira Sans, IBM Plex Sans, and Roboto are all decent to great typefaces, but depending on how and where you use it, you could end making yourself feel very “Ubuntu,” “Mozilla,” “IBM”, or “Googly” because they were made for and are used by those respective companies first. If you use Roboto for your iOS app, branding, and website, chances are, it will feel like a crappy Android port.
On the other hand, occasionally you will want to match something exactly. For instance, if you wanted to design a replica of the optician’s eyesight exams for a movie prop, I wouldn’t see any reason to use anything but Optician Sans, all other factors be damned.
Sometimes you’ll want to use two or more typefaces together. Usually this works best when they’re all part of the same family anyway. For example, using Source Sans Pro, with Source Serif Pro, and Source Code Mono. There are many better articles on doing pairings outside families, but, remember that you have to apply the same rules in this article for your pair, most critically that it’s free. For example, consider the excellent Fira Sans [ 3 ], based on FF Meta. With its more unusual shape, it’s a little more tricky to pair with serifs, except for the rather pricy FF Meta Serif.
Just because a font is free doesn’t necessarily mean you can actually use it for every purpose. Every font, save for the ultra-rare public domain one, is licensed. Free fonts can have a wide range of licenses, but they can otherwise be split into two categories: proprietary and open source.
Proprietary Font Licenses  •  These licenses typically restrict what you can do with the font. It might restrict this free version to be for evaluation or personal use only. Even if it allows commercial usage, if you plan to use it for a logo or logotype, make sure that the license allows it, especially if you want to modify the glyphs. Also note that in font licensing, website and app usage is considered different than the so called desktop/print usage. Web and app licenses usually have restrictions on how many users/page-views this license covers before you have to open your wallet and give them (more) money. Last, beware about rules regarding re-distribution. While this isn't usually a problem, one irky scenario is if you’re planning to ship this as part of some software project on a public repository such as Github. When in doubt, read the license.
Open Source Font Licenses  •  These commonly offer a lot more freedom than proprietary font licenses, but not always. Many free fonts are typically licensed under the OFL, which for the most part is “do whatever with no warranty,” however, some free fonts are licensed under a Creative Commons license. What is possible depends on the license, but you can find typefaces typically licensed under something like the CC-BY-SA which requires attribution with each usage. This would be fine if you’re typesetting a novel; all you’d need to do is add an extra line in the colophon, but a disaster for branding or posters as it would require attribution of the font each time it's being used. Also, I am not a lawyer, but my understanding is that creating a logotype using this license licensed typeface would make the logotype also Creative Commons licensed. When in doubt, read the license. Personally, I would stay away from Creative Commons licensed typefaces except for publications or a blog where attribution is easy to do.
This is a really tricky one. It can be especially difficult for beginners to really see what makes a well-made over low-quality typeface. But a good proxy is to look at who made it. Some good signs is if it’s made by a good font foundry or a type designer with a solid CV (e.g having a Masters in Type Design). Sometimes some type foundries make a few styles of a large font family free, or make some weaker typefaces they made free. There are also a few font foundries releasing exclusively open source typefaces. Another low hanging fruit is kerning and tracking. Kerning is the spacing between two letter forms, and a high quality typeface has many kerning pairs to ensure that letter combinations such as “VA”, “Ti”, and “fi” (although commonly a ligature,) don’t conflict.
When limited to free typefaces, you will end up making a compromise between (the amount of available) styles, styling ("aesthetics"), features, and quality. But a good designer with a great but “boring” typeface will always be ahead of a mediocre designer with an ok but very stylish typeface. It’s all about how you make the best use of it.
There are some exceptions to this rule though. For instance, Courier is the standard typeface for screenplays, and Courier Prime offers a fine upgrade in legibility without changing the style or character width. [ 4 ] As Courier is a particular weak typeface to start with, the fact that its designer might lack an amazing background in type design is not as important.
In addition, it’s common for people to modify existing open source monospace fonts (with a different name) to have additional features for programmers, most commonly, ligature support for arrows and symbols. [ 5 ] In this scenario, its designer lacking a strong type design background is equally unimportant. That being said, I would not recommend a typeface with programmer ligatures for code samples because the glyph substitutions sacrifices clarity, especially for people who are not used to them.
Where to Find Good Free Type
I prefer not to give any particular recommendation to any particular typeface: google around and there are plenty of articles covering that. However, I will refer to some decent places to get free fonts:
- Fontshare  •  operated by Indian Type Foundry. Offers high quality and contemporary (for 2020) typefaces, with many of them having multiple styles or being variable. Beware that many are missing italic styles and that typefaces are free but proprietary.
- Velvetyne  •  a French collective offering open source type. They are more focused on display type over body text type.
- Collletttivo  •  like Velvetyne, but Italian and with more typefaces suited for body text.
- Huerta Tipográfica  •  Argentinian type foundry offering high quality open source type.
- Omnibus Type Foundry  •  another Argentinian type foundry.
- League of Movable Type  •  frankly a bit pretentious—especially that name—but it has some quality work.
- FontFabric  •  A Bulgarian font foundry. They offer a generous amount of individual styles for free.
- Google Fonts  •  there is a lot of crap in here, but some great stuff by reputable foundries and individuals too. Note: Google Fonts is not restricted to web development, you can also download the font files from them.
- MyFonts  •  Despite being a type marketplace, there is a lot of crap here too. But many foundries do choose to release a few styles of a font family for free. Increasingly rarely—but occasionally—Monotype offers a few styles of their newly released typeface for free.
- Behance  •  there are some ok to high quality typefaces released here, usually by individual (type) designers.
Some Individual Typefaces not found on the usual places
These typefaces are great, free, and are not frequently mentioned on the usual "Good Free Fonts" list.
- Charter  •  a transitional serif made for reading on lower DPI screens, however, still brilliant for body text today.
- Utopia  •  another transitional serif, although not as sharp. Designed by Robert Slimbach and and gifted to the X Consortium by Adobe.
- Atkinson Hyperlegible  •  award winning typeface aimed at legibility.
- EB Garamond  •  Erik Spiekermann raved about it, what else do you need? A faithful Garamond adaption with a nice italic and a smallcaps style, based on particular point sizes instead of being an all-rounder like Adobe Garamond.
- [ 1 ] Small caps are basically capitals set to be the same height as lowercase letters with adjustments to make it work more nicely. Text figures can be thought of as "lower case numbers," like so: 0123456789 as opposed to 0123456789.↲
- [ 2 ] Lining figures refer to having all individual numbers have the same width. This is important in charts and infographs, as having them align vertically can make it easier to read.↲
- [ 3 ] In fact, it’s a steal with a design that’s almost FF Meta, whose full family costs thousands, with an insane range of styles, open-type features, and a price of zero.↲
- [ 4 ] In film and TV production, the length of a script is calculated based on the amount of pages it has with extremely consistent rules regarding page size, margins, type size, etc. Therefore, it is crucial that the font has the identical dimensions as the classic Courier typeface.↲
- [ 5 ] For instance,
const function = (x) => x >= 5could be shown as
const function = (x) → x ≥ 5in an IDE/text editor. The monospaced typeface I use in this website does not have coding ligatures, so this is an approximation.↲