
The Weekly Dev's Brew
Join host Jan-Niklas Wortmann in 'The Weekly Dev's Brew, where we explore the latest in web development, JavaScript, TypeScript, and emerging technologies. Engage in coffee shop-style conversations with industry experts to learn about frameworks like React, Vue, Angular, and everything remotely related. Follow us on social media for more insights https://www.weeklybrew.dev/
The Weekly Dev's Brew
Fast Sites Start with Fonts: A Deep Dive with Daniel Roe
In this episode of The Weekly Dev’s Brew, Jan sits down with Daniel Roe to dive deep into a topic devs often overlook: web fonts. From performance pitfalls to implementation strategies, Daniel breaks down why your font choices might be slowing down your site—and what you can do about it. Whether you’ve been blindly copy-pasting Google Fonts or wondering how to ship faster, cleaner web experiences, this episode delivers practical insights with zero fluff.
☕ Pull up a brew and learn how to stop letting fonts wreck your performance budget.
Our Fantastic Guest
Danie Roe
Daniel leads the Nuxt core team. Previously, he was CTO of a SaaS startup and founder of a creative agency focusing on clarity of vision and message.
His open-source work has a focus in the Vue.js and Nuxt ecosystems. He's a keynote speaker at conferences and involved in consultancy with companies around the world, particularly around JAMstack, serverless and software architecture.
Bluesky
GitHub
LinkedIn
Chapters
00:00 - Into
00:36 - performance impact of fonts
03:03 - Font Optimization
04:37 - What is font subsetting?
06:54 - How to handle font licenses?
11:05 - How to prevent layout shifts?
17:07 - How to learn about fonts?
20:01 - What are Variable Fonts?
22:55 - Accessibility of Fonts
26:38 - System vs Custom Fonts
30:46 - About Font Providers
33:15 - How to know which font is applied?
35:48 - Local vs remote fonts
36:41 - Dynamical changing fonts?
38:17 - Fonts and i18n
40:45 - On Ligatures
42:36 - Outro
Links and Resources
Stoyan's Blog
Production support for this video was kindly provided by WebStorm. Thanks for helping bring this idea to life!
Thank you very much for listening!
We are also pretty much on all social media platforms, so make sure to like and subscribe!
Homepage - https://www.weeklybrew.dev/
BlueSky - https://bsky.app/profile/weeklybrew.dev
Instagram - https://www.instagram.com/weeklydevsbrew/
TikTok - https://www.tiktok.com/@weeklybrew.dev
YouTube - https://www.youtube.com/@theweeklydevsbrew
LinkedIn - https://linkedin.com/company/the-weekly-dev-s-brew
<b>Hey, everyone. Welcome to</b><b>another episode</b><b>of the Weekly Dev's Brew .</b><b>I'm here with Daniel Roe .</b><b>You probably already heard of</b><b>him in some way,</b><b>but he does do some fancy</b><b>things with Nuxt and stuff.</b><b>Having that said, we're not</b><b>talking about Nuxt.</b><b>We are talking about web fonts</b><b>where I have zero to,</b><b>not really a whole</b><b>lot of clue about.</b><b>So I'm very excited to talk to</b><b>Daniel about fonts today.</b><b>Hi, Daniel. How are you doing?</b><b>Hello. It's a</b><b>pleasure to be here.</b><b>Thank you. So I basically</b><b>already teased it.</b><b>When I implement a website, I</b><b>usually use Google Fonts or</b><b>something like that</b><b>to just get started with it and</b><b>then don't bother about it.</b><b>But based on recent talks that</b><b>I've seen of yours,</b><b>you seem to have</b><b>some opinions on fonts,</b><b>in particular how they affect</b><b>runtime</b><b>performance of websites.</b><b>So tell me more about that.</b><b>So, I mean, I totally</b><b>get what you're saying.</b><b>First thought, web</b><b>fonts are amazing.</b><b>Because it used to be that it</b><b>was not so simple.</b><b>No, I don't. You probably do</b><b>not remember the days before</b><b>native browser web fonts.</b><b>I do.</b><b>No, you remember</b><b>the days before.</b><b>You did like Kufon, like the</b><b>flash</b><b>implementation of web fonts.</b><b>No, I'm not.</b><b>No, no, no, no,</b><b>no, no, exactly.</b><b>But yeah, it's amazing that</b><b>things like Google Fonts exist.</b><b>And you can just drop a link in</b><b>your head and</b><b>you are good to go.</b><b>But there are</b><b>problems with that.</b><b>And so, and there used not to</b><b>be so many problems.</b><b>But, um,</b><b>there are so many problems.</b><b>So it used to be, for example,</b><b>that you could cache resources</b><b>like web fonts across sites.</b><b>So Google Fonts could</b><b>say, hey, here's a link.</b><b>This is the link for, you know,</b><b>Papyrus or whatever.</b><b>And then every website that was</b><b>using that font, you know, the</b><b>CSS would be the same.</b><b>The fonts could be cached.</b><b>That's, of</b><b>course, no longer true.</b><b>Because there's no</b><b>cross origin caching.</b><b>Yes.</b><b>It makes sense.</b><b>Those people to try and track</b><b>us through cache timing, you</b><b>know, they're</b><b>the reason we can't</b><b>have nice things.</b><b>And so we can't.</b><b>But it, when you put that link</b><b>in, it obviously is going to</b><b>immediately add the</b><b>overhead of connecting</b><b>to another origin, hitting a</b><b>DNS server for it.</b><b>And that doesn't even get into</b><b>the issues of that are caused</b><b>simply by having a web font of</b><b>any kind in your project.</b><b>But, I mean, that could be</b><b>solved if you bundle the font</b><b>with your project.</b><b>Then it's not, at least not a</b><b>cross origin recrised anymore.</b><b>Yes, you can do that.</b><b>Exactly.</b><b>The way you're talking about</b><b>it, that sounds like</b><b>another but though.</b><b>It's a no, it's a</b><b>very good thing to do.</b><b>Okay.</b><b>But the problem</b><b>is often syncing.</b><b>So, with a lot of optimization,</b><b>and this is, it's a more, it's</b><b>a bigger picture question.</b><b>When do you optimize?</b><b>And how, do you, do you just</b><b>manually optimize or do you put</b><b>a procedure in place that means</b><b>you don't have to re-optimize</b><b>when things change?</b><b>Let's maybe start at the fact,</b><b>what would you optimize?</b><b>Because I'm usually just</b><b>dropping the font that I want</b><b>in my project and be</b><b>like, I'm going to go</b><b>or use Google Fonts.</b><b>So, well, Google Fonts does</b><b>actually apply loads of</b><b>optimizations for you.</b><b>Easy, I knew that.</b><b>Well, you know,</b><b>it's not a bad choice.</b><b>I do think there</b><b>are better options.</b><b>Okay.</b><b>But, on top of Google Fonts.</b><b>But the kinds of things you</b><b>want to optimize</b><b>are, so the format.</b><b>So, you can have bigger file</b><b>formats, smaller ones.</b><b>Different browsers support</b><b>different formats.</b><b>But these days, almost every</b><b>browser supports WOFF2</b><b>which is great.</b><b>It used to be that things were</b><b>very complicated.</b><b>I do remember that.</b><b>Oh.</b><b>And, and then once you have the</b><b>file, the font file, you have</b><b>different font faces.</b><b>Mm-hmm.</b><b>Bold, italic.</b><b>You also have different</b><b>character sets.</b><b>So, you might have your sort of</b><b>Western European certain</b><b>accents involved,</b><b>but there are lots</b><b>more characters.</b><b>So, how full are you going to</b><b>get with your font?</b><b>Yeah.</b><b>And if you are using a font for</b><b>some fancy custom headline, or</b><b>your sort of brand font,</b><b>you probably, you're not</b><b>rendering pages of text.</b><b>You don't, you probably need</b><b>very few characters, actually</b><b>maybe even fewer</b><b>than a normal one.</b><b>And, and, and so there's</b><b>actually a technique to address</b><b>that called font</b><b>subsetting, where</b><b>you basically create a custom</b><b>build of the font.</b><b>Interesting.</b><b>With just the</b><b>characters you need.</b><b>So, you mentioned</b><b>font subsetting.</b><b>Yes.</b><b>How does this work?</b><b>I, do you say like, oh, here</b><b>are those 20 characters that I</b><b>use, please build a font with</b><b>that, or?</b><b>Exactly.</b><b>Now, you</b><b>mentioned Google Fonts.</b><b>Google Fonts</b><b>actually does this.</b><b>You can pass the character set</b><b>in the query string to Google</b><b>Fonts, and just,</b><b>it will generate</b><b>on the fly a font with just</b><b>those characters in it.</b><b>That's pretty cool.</b><b>I didn't know that.</b><b>But even if you don't do that,</b><b>it's possible to</b><b>use something called,</b><b>what you can</b><b>pass Unicode range.</b><b>And basically, in a font face</b><b>declaration in CSS, you say,</b><b>here's the file for format</b><b>WOFF2.</b><b>Here's the file for format WOFF,</b><b>just WOFF, here's the TTF.</b><b>This is going to</b><b>be for the bold.</b><b>This is going to be for, but</b><b>then you can say, and it's</b><b>going to be for</b><b>these characters,</b><b>for Unicode characters.</b><b>So already, Google Fonts will</b><b>generate a CSS file, which has</b><b>lots of different font files</b><b>for different Unicode ranges.</b><b>And when the browser encounters</b><b>something, a declaration like</b><b>that, any font</b><b>face declaration,</b><b>it's information that it then</b><b>uses to decide</b><b>when to fetch font.</b><b>It doesn't do anything</b><b>with it straight away.</b><b>Okay.</b><b>So what it will do is when it</b><b>encounters a character in that</b><b>Unicode range that has that</b><b>font applied to it, then it</b><b>will dynamically, then it will</b><b>request that font file.</b><b>Oh, okay.</b><b>So, well, but I mean, to answer</b><b>your question, yes, if you're</b><b>subsetting a</b><b>font, you basically</b><b>just, you run a command on the</b><b>font, and it strips out all of</b><b>the characters</b><b>that aren't in it.</b><b>It's not always legal. So</b><b>different fonts have different</b><b>licenses. And I</b><b>think we often don't,</b><b>we sort of have a feeling like</b><b>fonts are free, right?</b><b>A little bit.</b><b>They're out there, unless</b><b>you've paid for it, or unless</b><b>you've, but you</b><b>know, there are a lot</b><b>of different licenses. You can</b><b>have a license to use it in</b><b>print media, but</b><b>not online. You have</b><b>a license to use it online,</b><b>but, and you might not have</b><b>license to subset a</b><b>font. So you have to be</b><b>very, very careful before you,</b><b>particularly if there's any,</b><b>this is in a commercial way,</b><b>and you're using the site, you</b><b>know, you don't, you don't want</b><b>to do anything</b><b>that might put you</b><b>afoul of that.</b><b>How, how do you tackle like</b><b>this licensing topic? Like, I</b><b>think Google fonts</b><b>does share the license</b><b>for the font where you can look</b><b>and read through it. But in</b><b>other</b><b>circumstances, like if you're not</b><b>using Google fonts, how do you</b><b>approach making sure that the</b><b>license is</b><b>viable for what you're</b><b>doing with it?</b><b>It's difficult. It depends who</b><b>you are, like what kind of</b><b>project you are as well. So,</b><b>you know, a lot of people are</b><b>using these in their private</b><b>websites. A lot</b><b>of platforms have a</b><b>license, a single license that</b><b>you can read that spells out</b><b>some key conditions</b><b>for the server. So</b><b>there's another one, font</b><b>share, font source, there are a</b><b>lot of CDNs like</b><b>that. Adobe has a very,</b><b>very restrictive license. So do</b><b>read that if you're ever using</b><b>it. But yes, you</b><b>want to check. And</b><b>I mean, reading legal documents</b><b>is hard, no matter what it's</b><b>about, whether</b><b>it's about fonts or</b><b>something else. But the key</b><b>thing is you don't</b><b>want to get it wrong.</b><b>Yes. I do remember that, right?</b><b>That you do have a legal</b><b>background though. So,</b><b>yeah.</b><b>Okay. This is not coming out of</b><b>nowhere, right?</b><b>I said, yes, I studied law.</b><b>Okay. That's what I thought.</b><b>Yeah.</b><b>But you also did in between,</b><b>you did some consulting, right?</b><b>So did you ever run into,</b><b>or also now in your role as a</b><b>Nuxt team leader,</b><b>you ever run into</b><b>performance related issues that</b><b>are introduced</b><b>by fonts in a way?</b><b>Absolutely. So there are lots</b><b>of potential pitfalls. And some</b><b>are actually caused by</b><b>trying to make</b><b>things more performant.</b><b>Interesting. I can</b><b>totally see that already.</b><b>So the first obvious one, which</b><b>you already talked about is a</b><b>font which is too big.</b><b>Yeah.</b><b>And that is, or maybe you, or</b><b>maybe even more than that,</b><b>overuse of web fonts. Because</b><b>always consider,</b><b>can you get away with system</b><b>fonts? Because they are some</b><b>really nice</b><b>defaults cross platform.</b><b>But then when you do use web</b><b>fonts, you, I mean, you can</b><b>just pick</b><b>something that is too big.</b><b>So that is something you'll</b><b>just have to look at and see</b><b>whether it's worth</b><b>it. But people also do</b><b>things like preload web fonts.</b><b>And when they preload a font,</b><b>the font, it</b><b>basically bypasses the</b><b>browser's normal mechanism of</b><b>deciding when to load it.</b><b>Because the browser normally,</b><b>which for good reasons, because</b><b>the browser normally loads a</b><b>web font quite</b><b>late in the cycle.</b><b>So you have the HTML, you have</b><b>the CSS. Now as the, so the,</b><b>you, without the</b><b>CSS, you don't know</b><b>whether to load a web font. But</b><b>you also don't know whether to</b><b>load the web font</b><b>until you have the</b><b>HTML. And in particular, until</b><b>you know whether the selector</b><b>in the CSS</b><b>applies to the, the node</b><b>in the, in the element in the</b><b>DOM. And so it's at that point</b><b>that you start</b><b>loading. But this actually</b><b>can be quite late on in the</b><b>process. And wouldn't it be</b><b>nice if there, if there's not</b><b>so much of a gap</b><b>between loading with a fallback</b><b>font, and then web</b><b>font coming in. Right.</b><b>So people sometimes think,</b><b>rightly, let's get the browser</b><b>going sooner. Yes.</b><b>And so they'll add a preload</b><b>link, but this is where it goes</b><b>wrong. People</b><b>preload not just the,</b><b>so imagine this is your page,</b><b>you might not use every font</b><b>face, you might</b><b>not use every weight,</b><b>so you might have no italics,</b><b>just bold on this page, because</b><b>it's a heading,</b><b>but you've preloaded</b><b>more. Or you might think, you</b><b>might preload the wrong file of</b><b>the font format.</b><b>Yeah. So you might</b><b>preload the WOFF, but the</b><b>browser is not going to pick</b><b>it, it's going to pick the WAF</b><b>too. So you might</b><b>have this scenario, and I've</b><b>seen it where you look at the</b><b>network tab, and</b><b>there's lots of network</b><b>activity, and the fonts are</b><b>totally unused. Yeah. I think</b><b>it would be</b><b>interesting if the browser</b><b>printed the same warning. I</b><b>don't think the browser does</b><b>print this warning,</b><b>I should know that.</b><b>I'm pretty sure I've done that</b><b>and not seen a warning. Because</b><b>the browser will tell you,</b><b>the dev tools will say, hey,</b><b>this site preloaded this</b><b>JavaScript, and it</b><b>wasn't used, right? But I</b><b>don't think it does it for web</b><b>fonts. The thing that I'm</b><b>wondering now, if</b><b>you don't preload it,</b><b>can you not run into layout</b><b>shifts to some extent? I mean,</b><b>not in a dramatic</b><b>way of you're having an</b><b>entire section that you're</b><b>loading, but the size of the</b><b>font will be different if</b><b>you're using a system</b><b>font, or you're starting with a</b><b>system font, and then you're</b><b>switching to whatever you have.</b><b>Oh, yes. I mean, that's my</b><b>least favorite negative feeling</b><b>about it. So I mean, obviously,</b><b>a slow website is terrible if</b><b>you're trying to click around,</b><b>it's not</b><b>responding. But the other</b><b>thing is when you're loading a</b><b>site, and then it changes. It</b><b>would be like a</b><b>little jitter if the</b><b>font is just slightly</b><b>different. Yeah. But I mean, it</b><b>can be more, because if a font,</b><b>if you go from, it can suddenly</b><b>add another line. It's true.</b><b>And that can be a lot bigger,</b><b>even though it might just be a</b><b>little width difference. And</b><b>there are</b><b>solutions for that. So</b><b>the, yeah, some very, very,</b><b>very cool, cool stuff. So it's</b><b>possible to take</b><b>the metrics of a font.</b><b>So if you imagine a font file</b><b>is, I don't know, it's got</b><b>hundreds of different</b><b>characters in it.</b><b>It's, you know, it's got, it's</b><b>got lots of data. But if you</b><b>take a look at all of those,</b><b>you can extract some common</b><b>metrics. So how high above the</b><b>line does the top</b><b>character go? How low</b><b>does the lowest one go? Because</b><b>different fonts would, and how</b><b>wide is it on</b><b>average? You can't,</b><b>this isn't a perfect metric,</b><b>but you can take an average of</b><b>a character set. So</b><b>you can say of, say,</b><b>the Roman alphabet, you know,</b><b>like how many, what's the</b><b>average width?</b><b>Yeah. And so you can,</b><b>you can come up with some, some</b><b>metrics and use those to</b><b>characterize the font. And you</b><b>can characterize</b><b>them with just those four</b><b>numbers. And that can, that's</b><b>enough to say, now</b><b>let's, we can actually</b><b>morph your system font to be</b><b>the same shape. Interesting. So</b><b>it's, it's not</b><b>going to be exact.</b><b>It's not, it's not going to</b><b>look the same, you know, if</b><b>it's Times New Roman</b><b>and you're using Poppins,</b><b>it's never going to look the</b><b>same, but we can make it take</b><b>up the same amount</b><b>of space on the page.</b><b>Mm-hmm. And as a width wise on</b><b>average, take up the same</b><b>amount of space. Gotcha.</b><b>Which means that you, you'll</b><b>still have a flash, but it</b><b>won't, shouldn't move the</b><b>layout quite so much.</b><b>Right. Interesting. How?</b><b>I, it sounds like very tedious</b><b>manual approach to like figure</b><b>that out. Well, one</b><b>answer is probably</b><b>going to be, we have a Nuxt</b><b>module for that, but. So we do.</b><b>Thank you. No, we have a Nuxt</b><b>module for that,</b><b>um, called Nuxt fonts, but that</b><b>Nuxt module is actually built</b><b>on. So it's, it's</b><b>a bit of a story,</b><b>a bit of a saga. I have time.</b><b>How much time do you have? Um,</b><b>so, uh, so originally, um,</b><b>I built a small library called</b><b>Fontaine, which is a, uh,</b><b>unplugging. So it</b><b>runs in any, actually,</b><b>I originally built it as a Nuxt</b><b>module, but then I immediately</b><b>saw this is, this</b><b>is silly to be doing</b><b>this because it could be used</b><b>by anyone. Why is it specific</b><b>to Nuxt? So I, I pulled it out,</b><b>um, and made it, it was</b><b>originally like Nuxt font</b><b>metrics. So I pulled out and</b><b>made something called</b><b>Fontaine. Um, and it basically,</b><b>and by the way, this is not my</b><b>idea, the, the</b><b>metrics I, I, um,</b><b>some very smart people at</b><b>Google came up with this and I,</b><b>uh, I sort of absorbed it and</b><b>implemented it.</b><b>So I don't want you to think</b><b>more highly than you want. Um,</b><b>but basically, uh,</b><b>what it does is it</b><b>looks in the CSS for the font</b><b>family you're using, uh, and</b><b>then it adds some</b><b>metrics. So it says,</b><b>okay, so if you're using, uh, I</b><b>don't know, um, Nonito. So, uh,</b><b>and why not? And</b><b>why not? That's</b><b>legitimate. You should feel no</b><b>guilt. I don't care. Um, and so</b><b>you're using that font. And so</b><b>we're going to add,</b><b>a, um, another font face</b><b>declaration next to it. So you</b><b>have the Nonito font</b><b>face, and then you have</b><b>like, Nonito fallback. And it</b><b>will have, instead of, uh, the,</b><b>the source being a</b><b>web font, it will have</b><b>a source being your local, uh,</b><b>font. Um, and it will have some</b><b>font metrics that</b><b>we can apply to it.</b><b>So we can basically, we have</b><b>things like a scent override,</b><b>scent override, size adjust.</b><b>Mm-hmm.</b><b>New CSS properties that aren't</b><b>supported by every browser, but</b><b>this can be a, uh,</b><b>progressive enhancement because</b><b>it doesn't harm anything if</b><b>you're using an</b><b>older browser. It</b><b>just benefits a browser that</b><b>does support it. Uh, and so we</b><b>can generate that,</b><b>that, uh, font face.</b><b>And then in, when you're</b><b>rendering the, um, the</b><b>component, um, oh,</b><b>the, the component.</b><b>Clearly, when we're, when we're</b><b>rendering that, that node in</b><b>the DOM, that's, that's Lecter,</b><b>we can say the font family is</b><b>going to be first our web font,</b><b>comma, our fallback,</b><b>and then, uh, whatever else.</b><b>And so the browser says, okay,</b><b>right, we need</b><b>this font. But while</b><b>we're getting it, we're going</b><b>to render it in the fallback</b><b>font. Um, and so</b><b>the browser then falls</b><b>onto the, the, the value of</b><b>metrics we've provided, shapes</b><b>the system font to be</b><b>the right shape. And</b><b>then when the, in the</b><b>background, when the web font</b><b>is downloaded, the browser then</b><b>swaps across. Now,</b><b>you can control that totally</b><b>with, um, another CSS property</b><b>where you basically</b><b>say, uh, font display,</b><b>when do we display the font? If</b><b>it takes too long, we maybe</b><b>skip displaying</b><b>the web font. Um,</b><b>you can block rendering text</b><b>until the web font downloads,</b><b>but mostly people</b><b>just do swap. So</b><b>you just, when it downloads,</b><b>you change it across. And that</b><b>means that there's not</b><b>a huge jerk when that</b><b>happens. I do have a question</b><b>about this because I, I'm well</b><b>aware that I'm not the most</b><b>well-versed in CSS universe,</b><b>but how do you learn those</b><b>things? Is there like a</b><b>fonts.google.com</b><b>where they list all those</b><b>things here, like the 20 best</b><b>resources about fonts</b><b>or how, how do you get</b><b>that knowledge? Because I'm in</b><b>the, I'm doing web development</b><b>now for more than</b><b>10 years. And other</b><b>than like, well, let's go to</b><b>Google fonts and take them from</b><b>there. Um, I didn't</b><b>bother much more about</b><b>that. So how and where do you</b><b>get that knowledge? Well, it's</b><b>very much not</b><b>mine. I mean, I just,</b><b>well, you still have that</b><b>knowledge now. So somewhere</b><b>there must be a</b><b>universal resource</b><b>like Wikipedia or something</b><b>where they tell you, here's</b><b>everything you need</b><b>to know about fonts.</b><b>So this wasn't what I did, but</b><b>there are some great resources</b><b>out there at the moment. So</b><b>performance, uh, resources,</b><b>articles, information,</b><b>definitely check it out. Cool.</b><b>Um, and I think</b><b>that's, it's really helpful.</b><b>Okay. Uh, I spent a lot of time</b><b>with trial and</b><b>error, basically when I</b><b>was building these things, not</b><b>probably knowing where to look</b><b>and, uh, and</b><b>trying a lot of things</b><b>that didn't work. And also I</b><b>had some very clever ideas that</b><b>were totally, they</b><b>were not clever ideas,</b><b>but I thought they were very</b><b>clever at the time. I thought,</b><b>ah, this will solve it all,</b><b>you know, and, uh, and it</b><b>didn't work. So that sounds a</b><b>little bit like</b><b>sprite driven development where</b><b>you're like looking at the</b><b>network output or something,</b><b>or you either were like</b><b>bothered by the bundle size or</b><b>by layout shifts.</b><b>And we're like, okay,</b><b>fonts are the issues, how I'm</b><b>going to tackle that, where I'm</b><b>more just oblivious</b><b>to that. I'm more like,</b><b>huh, that's fine. I am. I am.</b><b>Well, and definitely friction</b><b>driven development is a very</b><b>real thing for me,</b><b>because when you, and I, I, I</b><b>feel this all the time with,</b><b>with Nuxt, for</b><b>example, you know,</b><b>I often, I go for, for a long</b><b>time building, building, fixing</b><b>feature,</b><b>whatever, dah, dah, dah,</b><b>and then I'm like, okay, right.</b><b>I'm going to build that side</b><b>project. And so I,</b><b>or I'm going to add</b><b>this feature to my website. And</b><b>then, then you notice something</b><b>like, I can't</b><b>believe that's what's</b><b>happening. This is terrible.</b><b>And you know, I do the final,</b><b>uh, polish. Yeah. I'm</b><b>sure we all do. Right.</b><b>The site is done. Now let's,</b><b>let's get the metrics and you</b><b>put it in and you're like,</b><b>I can't believe, why am I not</b><b>getting a hundred? I should get</b><b>a hundred. Right.</b><b>I mean, we, we all</b><b>deserve hundreds on our sites.</b><b>You know, that this is before,</b><b>you know, anyone</b><b>from marketing is</b><b>adding any scripts into it. It</b><b>should be a hundred. There's no</b><b>reason for a website</b><b>not to be all green.</b><b>And so if it isn't, it means</b><b>either the framework</b><b>needs a bug fixed or</b><b>I need a fixed finance site.</b><b>And yes, web fonts are a thing</b><b>that can be better.</b><b>Interesting. In my very</b><b>extensive research that I did</b><b>before coming to</b><b>this interview,</b><b>I came across a concept called</b><b>variable fonts that are gaining</b><b>traction to more</b><b>support, like less</b><b>about like performance, but</b><b>more offer a way to like</b><b>provide rich typography and</b><b>like be more variable</b><b>in the way you use it. What can</b><b>you tell me about that? Other</b><b>than that's a very fancy name.</b><b>They do. They do. Well, so the</b><b>variable fonts are, they're</b><b>definitely not a</b><b>solution for performance.</b><b>Yeah.</b><b>Unless you're using lots of</b><b>weights of the same font.</b><b>Yeah.</b><b>So because a variable font will</b><b>almost certainly be bigger than</b><b>any given like</b><b>weight of that font,</b><b>but it will probably be smaller</b><b>than say two different weights</b><b>of the same font or three,</b><b>like depending on it. But the</b><b>thing about variable fonts,</b><b>which you know,</b><b>is that they support more than</b><b>just the normal access that we</b><b>think about. We</b><b>think of two axes.</b><b>We think of sort of italicity,</b><b>you know, how slanted is the</b><b>thing. And we</b><b>think about weight,</b><b>like how sort of chunky is the</b><b>latter. But variable fonts</b><b>support lots of different</b><b>things. They can</b><b>support formality, informality.</b><b>So you can have a font which</b><b>gets like more like</b><b>handwriting and more</b><b>and like more like print.</b><b>Interesting.</b><b>And you can have fonts that</b><b>sort of change in</b><b>other ways as well.</b><b>So any kind of axis that you</b><b>can think of, you can implement</b><b>in a variable font.</b><b>Now, what does that</b><b>realistically mean? You can</b><b>animate it like from a CSS</b><b>point of view, you can animate</b><b>some of these things.</b><b>That's fun, isn't it? I mean,</b><b>probably not something for like</b><b>the body text on your website.</b><b>If you have like a title or</b><b>something like doing like the</b><b>calligraphy style for like a…</b><b>Yeah.</b><b>Yeah. I can totally see that.</b><b>And it means, you know, well,</b><b>anyway, it adds literally</b><b>additional</b><b>dimensions to your ability to</b><b>portray whatever you're trying</b><b>to communicate in your font.</b><b>Sounds like a very landing page</b><b>marketing thing though, not</b><b>like, oh, I'm working on a</b><b>stock ticker or something.</b><b>I think, I think with when you</b><b>give people a lot of choice,</b><b>particularly with web fonts,</b><b>you have to be very careful</b><b>because there are only so many</b><b>fonts, like combinations that</b><b>work, I think, for us.</b><b>And it's very easy. I think I</b><b>know I've done this myself to</b><b>sort of end up with like,</b><b>I've got five different font</b><b>weights of the same font just</b><b>because I like the</b><b>font. And you know,</b><b>why don't we do this? And then</b><b>it can create an almost</b><b>subconscious feeling of</b><b>busyness or clutter</b><b>on the website. And that's not</b><b>even mentioned, that's even if</b><b>it's just one font face.</b><b>So one thing I'm very</b><b>passionate about is</b><b>accessibility. And I know for a</b><b>fact that fonts can</b><b>be more accessible</b><b>than others, just from like the</b><b>way it's written, it's easier</b><b>to read and easier on the eye.</b><b>But is there anything else that</b><b>people need to consider to be</b><b>like, and I'm not even talking</b><b>about like compliant with like</b><b>specs or something, just like</b><b>making sure that the</b><b>website is generally</b><b>accessible by supporting fonts</b><b>in a specific way or something.</b><b>So one thing that's worth being</b><b>aware of is that fonts can be</b><b>different sizes.</b><b>at the same font size.</b><b>So oftentimes accessibility</b><b>audits will highlight things</b><b>that are related to the font</b><b>size in pixels.</b><b>But actually that doesn't</b><b>necessarily mean that</b><b>the font is readable.</b><b>And this is obviously</b><b>exacerbated by the fact of,</b><b>is the font itself, is it a</b><b>cursive fantasy style font</b><b>or is it a chunky</b><b>sans-serif font?</b><b>And so that's not something</b><b>that can really be</b><b>automated, unfortunately.</b><b>But there's definitely a</b><b>question to be asked.</b><b>So is my site readable?</b><b>Thankfully, web fonts do</b><b>significantly</b><b>improve accessibility</b><b>compared to some of the</b><b>previous</b><b>technologies that existed,</b><b>even like rendering</b><b>images, for example,</b><b>which would obviously be a</b><b>terrible, terrible</b><b>thing for accessibility.</b><b>So I would be thinking about</b><b>the question of readability.</b><b>But just also bearing in mind</b><b>that users who use your website</b><b>may have their own preferences</b><b>for their fonts</b><b>that they read your website in.</b><b>Is there a way</b><b>to overwrite that?</b><b>That is the design of</b><b>cascading style sheets.</b><b>Is the idea that you would have</b><b>browser vendors' preferences,</b><b>website makers' preferences,</b><b>users' preferences.</b><b>And the users' preferences</b><b>trump the others.</b><b>And that is something</b><b>that we can often feel</b><b>a bit annoyed about.</b><b>We feel like as</b><b>developers, we are in charge.</b><b>But we're actually not in</b><b>charge of how our</b><b>websites render.</b><b>We have a lot of control.</b><b>But at the end of the day,</b><b>there are things users can do.</b><b>And changing fonts is one of</b><b>probably the things</b><b>we should most</b><b>expect that they will do.</b><b>Because a user might say,</b><b>I want to view this website in</b><b>Atkinson hyperlegible.</b><b>Exactly.</b><b>And that's what I want.</b><b>And so if we create websites</b><b>that are 100% to the pixel,</b><b>they won't work if we're using</b><b>a different font.</b><b>That's a question.</b><b>I would, when you're testing</b><b>your website with fonts,</b><b>so one, test if it works,</b><b>what it's like if</b><b>the font is blocked.</b><b>So it can't be downloaded,</b><b>or there's some issue with it</b><b>for whatever reason.</b><b>Also, delete all copies of the</b><b>web font from your own system.</b><b>Because sometimes people are</b><b>building a website,</b><b>they have the font installed,</b><b>it all displays perfectly,</b><b>they deploy it,</b><b>and they find that they never</b><b>included some font weight.</b><b>They include one font weight,</b><b>but not the other.</b><b>It looked fine in their system,</b><b>but it doesn't.</b><b>Absolutely never</b><b>happened to me.</b><b>But also, try it with a</b><b>different font.</b><b>Because that is</b><b>something users will 100% do.</b><b>And different font sizes also.</b><b>A font size is another very,</b><b>very basic accessibility thing</b><b>that people will set.</b><b>And so, I mean, we all know the</b><b>experience of</b><b>zooming into a webpage,</b><b>but there are other ways of</b><b>setting font sizes too.</b><b>So those are</b><b>good to be aware of.</b><b>Never thought about that.</b><b>So thank you</b><b>very much for that.</b><b>So we briefly touched on this,</b><b>but there's to</b><b>some extent a shift,</b><b>or there used to be a shift</b><b>from system fonts</b><b>to custom fonts,</b><b>and now due to performance and</b><b>like bundle size issues,</b><b>there's somewhat also a shift</b><b>back to system fonts.</b><b>So you have like this kind of a</b><b>gap of like</b><b>creativity versus performance.</b><b>Like how, other than like your</b><b>fancy Nuxt trick,</b><b>if you don't have</b><b>Nuxt or Fontaine,</b><b>where would you</b><b>stand on that spectrum?</b><b>Well, asterisk, I want to say</b><b>something about that.</b><b>But, I mean, I think that,</b><b>I think custom</b><b>web fonts are great.</b><b>I mean, don't pick them just</b><b>because you have to,</b><b>but I don't think people do</b><b>pick web fonts just</b><b>because they have to.</b><b>I think it's a way of</b><b>expressing</b><b>individuality and feel,</b><b>and that's a</b><b>really good reason.</b><b>Yeah.</b><b>I mean, but obviously,</b><b>you can rein yourself in and</b><b>make good choices</b><b>when you're doing that.</b><b>But about Fontaine,</b><b>like it works in Next.js,</b><b>it works in Astro,</b><b>it works in DocuSaurus,</b><b>it's an unplugging,</b><b>which means that it supports</b><b>almost any bundler.</b><b>I mean, if you're not bundling</b><b>your app at all,</b><b>there are also websites that</b><b>will calculate the</b><b>metrics for you as well.</b><b>So it is possible</b><b>to do it manually.</b><b>There's also another,</b><b>there's also,</b><b>so there is a Nuxt module that</b><b>wraps everything up.</b><b>In the Nuxt ecosystem.</b><b>And the Nuxt module,</b><b>it gave me so much</b><b>satisfaction to build,</b><b>because literally the only</b><b>configuration a user has to do</b><b>in order to use</b><b>a custom web font</b><b>is write font family,</b><b>the name of the</b><b>custom web font.</b><b>They just write CSS.</b><b>Okay.</b><b>And Nuxt fonts detects that.</b><b>It queries,</b><b>I built another</b><b>package called Unifont,</b><b>which is a single unified</b><b>interface to the</b><b>different font CDNs,</b><b>like Google Fonts,</b><b>and so on.</b><b>And so it has a way of saying,</b><b>hey,</b><b>give me Poppins.</b><b>And Unifont,</b><b>it checks the registry,</b><b>says,</b><b>okay,</b><b>here's the data.</b><b>Nuxt fonts downloads the font</b><b>to the project.</b><b>So it's first party,</b><b>not served from a third party.</b><b>Nice.</b><b>So no foul with</b><b>German privacy laws,</b><b>for example.</b><b>So it's first</b><b>party in the project,</b><b>no DNS pre-connect issues.</b><b>It injects the</b><b>CSS into your CSS,</b><b>so it's not a separate request.</b><b>It hashes the fonts,</b><b>and it adds in the</b><b>font size overrides</b><b>to make sure that the fallback</b><b>is the same size as</b><b>the font you're using.</b><b>It does all of</b><b>that automatically,</b><b>so the user never</b><b>has to touch a thing.</b><b>But,</b><b>no,</b><b>no,</b><b>go on,</b><b>what are you?</b><b>I want to hook on to</b><b>the CDN thing on that,</b><b>but no,</b><b>you first.</b><b>But,</b><b>this was obviously,</b><b>this was so much fun.</b><b>So I loved it,</b><b>and it was so much fun to demo,</b><b>and really honestly,</b><b>I felt so proud of it,</b><b>because it was,</b><b>you know,</b><b>the little baby</b><b>out in the world,</b><b>and like bringing joy.</b><b>But then,</b><b>a couple of other frameworks</b><b>started to investigate,</b><b>and the reason</b><b>that underlying tools</b><b>were separated out</b><b>is so people could do this.</b><b>So other frameworks said,</b><b>hey,</b><b>we'd like to do the same.</b><b>I said,</b><b>great,</b><b>we've got the tools.</b><b>Well,</b><b>there is a fantastic,</b><b>amazing team from the Qwik team</b><b>contacted me and said,</b><b>hey,</b><b>we'd like to do it too.</b><b>Can we ask you some questions?</b><b>I've seen pictures on that.</b><b>Okay.</b><b>Yep.</b><b>And so,</b><b>great,</b><b>I said,</b><b>and we had a chat.</b><b>They went away,</b><b>and they</b><b>basically took Nuxt fonts,</b><b>and they removed all the code</b><b>that was related to Nuxt,</b><b>and said,</b><b>actually,</b><b>this works.</b><b>Can we,</b><b>so right now,</b><b>I've been so,</b><b>so slow on this,</b><b>but I need to refactor it,</b><b>but basically,</b><b>Nuxt fonts is going</b><b>to become agnostic.</b><b>And it's going to work</b><b>with any framework,</b><b>any Vite-based framework.</b><b>That's pretty cool.</b><b>So it's going to be Vite font?</b><b>Well,</b><b>it's going to be,</b><b>it's going to be something.</b><b>That's pretty cool.</b><b>On that,</b><b>so if I imagine you have like,</b><b>you said you</b><b>support multiple CDNs.</b><b>Yeah.</b><b>There must be some kind of</b><b>prioritization where you say,</b><b>hey, try this one first because</b><b>they're just better</b><b>than the other ones.</b><b>Then go to the next one.</b><b>I would at least assume that</b><b>that's kind of</b><b>like the behavior.</b><b>Which one is the best?</b><b>To put it very blunt.</b><b>So the way it works is that it</b><b>has this concept</b><b>of font providers.</b><b>And you can write</b><b>your own as well.</b><b>Sounds very Java.</b><b>So provider, exactly.</b><b>Well, basically,</b><b>it's just a file.</b><b>And it has a sort of like setup</b><b>function, which is</b><b>when it gets the registry.</b><b>And then it has another</b><b>function, which you can call</b><b>it, say, hey, give</b><b>me your whatever.</b><b>So when you configure this in</b><b>your project in Nuxt Fonts,</b><b>there's also one, by the way,</b><b>which just looks in</b><b>your own public folder.</b><b>So if you just copy a font in</b><b>there, then Nuxt Fonts will do</b><b>whatever with that.</b><b>It won't hit a CDN.</b><b>You can granularly disable</b><b>individual ones.</b><b>You can provide your own</b><b>prioritization.</b><b>So it will do it in whatever</b><b>order you want.</b><b>By default, it...</b><b>I'm waiting for the but.</b><b>There's no but.</b><b>By default, it hits</b><b>Google Fonts first.</b><b>That's the first</b><b>one in the list.</b><b>But you said at the beginning</b><b>it's not the best.</b><b>Font CDN?</b><b>Google Fonts is great.</b><b>But I just think there are</b><b>better options than fetching at</b><b>runtime from a CDN.</b><b>Oh, I see what you're saying.</b><b>So I think the better choice is</b><b>to include it first party in</b><b>your build as an asset.</b><b>Because immediately what you</b><b>have, the moment you have a</b><b>third party, and</b><b>I think so many</b><b>people have probably</b><b>struggled with this.</b><b>They will use Google Fonts and</b><b>then they will go to Google</b><b>Lighthouse and say, show me my</b><b>website.</b><b>Google Lighthouse will be like,</b><b>well, consider</b><b>your cache headers.</b><b>They could be longer.</b><b>And then they'll say, look at</b><b>this file from Google Fonts.</b><b>And people are like, do you</b><b>talk to each other?</b><b>Which is not like, there are</b><b>legitimate reasons for this.</b><b>And there's not</b><b>actually a problem here.</b><b>But it does feel a bit strange,</b><b>doesn't it, when</b><b>you get that warning.</b><b>So there are problems that will</b><b>be solved by including</b><b>something as an immutable asset</b><b>in your own deployment.</b><b>Actually, now that we talk</b><b>about this particular, every</b><b>time when I'm</b><b>troubleshooting issues</b><b>related to font, I think it's</b><b>really hard to deduct what font</b><b>is applied right now.</b><b>Particularly if you have</b><b>fallback fonts and</b><b>those kind of things.</b><b>Because it just says what font</b><b>face is applied, where it's</b><b>saying, by default</b><b>it loads OpenSans.</b><b>If that's not there,</b><b>then it tries Enter.</b><b>If that's not there.</b><b>So how do you tackle that?</b><b>You seem smarter than I am.</b><b>I'm not sure.</b><b>So in DevTools, you should be</b><b>able to see what font is</b><b>applied to a selector.</b><b>So it may be a</b><b>different DevTools.</b><b>You might need to go</b><b>to the Font DevTools.</b><b>Okay.</b><b>There are Font DevTools.</b><b>There are Font DevTools.</b><b>So basically, if you're looking</b><b>at your normal layout or</b><b>something like that, you'll see</b><b>your DOM nodes and</b><b>you click on them.</b><b>And then you'll see the CSS.</b><b>Exactly.</b><b>Yeah?</b><b>And so that will say Font</b><b>Family, whatever.</b><b>Exactly.</b><b>Right.</b><b>Not helpful.</b><b>But there is another Font Panel</b><b>that will show you what font is</b><b>being applied to the given</b><b>selector and also which fonts</b><b>are available on the page.</b><b>And also, I should say, Firefox</b><b>has great DevTools on fonts.</b><b>Okay.</b><b>So it's maybe worth also</b><b>checking those.</b><b>So there are some</b><b>really helpful tools.</b><b>And then if you do want to</b><b>start debugging this, try</b><b>granular network overrides</b><b>where if you go into your</b><b>network panel and look at the</b><b>fonts, you can</b><b>block fonts one by one.</b><b>So you can say, okay, let's see</b><b>what happens if we</b><b>don't have that font.</b><b>Because often if you want to</b><b>say debug the loading state of</b><b>the font, it's very difficult</b><b>to do that</b><b>because it's instant.</b><b>And even if you slow your</b><b>network down, it's</b><b>still going to time out.</b><b>But if you actually block the</b><b>requests to the font files, you</b><b>can get, okay, this is</b><b>authentically what the loading</b><b>state is going to look like.</b><b>And now I can then turn that</b><b>off and see what they're real.</b><b>So that's a very</b><b>useful tool as well.</b><b>Yeah, I didn't know that.</b><b>So today I learned.</b><b>I'm glad.</b><b>This was a great conversation.</b><b>It was worth it for you.</b><b>Yeah, absolutely.</b><b>I always love talking to you,</b><b>but this was very</b><b>worth it for me.</b><b>Because I always, as you said,</b><b>like looked at the CSS and I</b><b>was like, yeah,</b><b>this is useless.</b><b>It's not doing anything for me.</b><b>I know which font faces apply,</b><b>but it's not doing anything.</b><b>Glad.</b><b>Thank you.</b><b>So.</b><b>I think we touched on this to</b><b>some extent, but your</b><b>recommendation would basically</b><b>be at any given time, and that</b><b>sounded like that's what you're</b><b>doing with Nuxt,</b><b>is use local fonts.</b><b>So at compile time, you're</b><b>basically, even if you're using</b><b>a CDN, you're copying the asset</b><b>and applying the</b><b>CSS accordingly.</b><b>So if you would have to, your</b><b>strategy would always be</b><b>basically local</b><b>first in that sense.</b><b>Yes. I think your font should</b><b>be an asset that is, it</b><b>shouldn't be part of your build</b><b>probably, because it doesn't</b><b>need to be changed.</b><b>You're probably not applying</b><b>any transforms to the font.</b><b>I don't.</b><b>Unless you're subsetting it.</b><b>But even that, so you probably</b><b>don't want to be transforming</b><b>it, but it still should be,</b><b>yes, deployed with your site,</b><b>ideally, I think, as part of</b><b>your build asset.</b><b>So onto whatever CDN you're</b><b>using for your JavaScript.</b><b>Did you ever come to the</b><b>scenario where you had, I</b><b>cannot think about it, but</b><b>usually you don't want to</b><b>include assets as part of your</b><b>build if you want to be very</b><b>dynamic with them, where you</b><b>want to replace them and don't</b><b>want to redeploy</b><b>the entire site.</b><b>This would be one scenario</b><b>where a local CDN, for</b><b>instance, could make sense.</b><b>Is there anything that you have</b><b>encountered something like that</b><b>where someone is saying, I want</b><b>to change my, I mean, like</b><b>Google does it to some extent</b><b>where they're like,</b><b>doing like the little widgets</b><b>or something, and they change</b><b>like on a regular basis.</b><b>Have you ever come to the</b><b>scenario where you were like,</b><b>okay, we deploy our website</b><b>once a month, but we change our</b><b>font weekly based on</b><b>the mood of the team?</b><b>So, in my experience, fonts are</b><b>very rarely changed.</b><b>Yeah, that's what I think.</b><b>And so they're one of the</b><b>safest things to cache.</b><b>Yeah.</b><b>And the, I mean, you can,</b><b>basically, I would cache them</b><b>as immutable artifacts and then</b><b>change the name.</b><b>And you can change the name</b><b>with a hash of the contents if</b><b>you expect the</b><b>contents to change.</b><b>That's something that obviously</b><b>works best in a build step</b><b>where you're basically able,</b><b>which Nuxt fonts,</b><b>for example, does.</b><b>Shocked.</b><b>But also, I mean, there would</b><b>be lots of other</b><b>ways of doing that.</b><b>So, I would say, like, you're</b><b>not looking for the same file</b><b>name, you know,</b><b>public sans dot woff.</b><b>You're going to want some kind</b><b>of character, something in</b><b>there that you can change when</b><b>the contents change and then</b><b>just cache it as</b><b>an immutable asset.</b><b>So, one thing I'm also</b><b>wondering, because, I mean, at</b><b>this time we're in, it's not</b><b>uncommon that you want to have,</b><b>like, your site to be very</b><b>multilanguage or multilingual.</b><b>So, you might need also special</b><b>characters and then you're</b><b>also, depending on the</b><b>countries you want to support,</b><b>you have, like, right to left,</b><b>text that goes</b><b>from right to left.</b><b>Or even text that</b><b>goes from top to bottom.</b><b>But that, so, I mean, that, if</b><b>you're sticking with the same</b><b>font, then your character set</b><b>is, like, massive.</b><b>Yes.</b><b>How do you handle, like, the</b><b>scenario of, like, I'm Google</b><b>and have my website running in</b><b>260-something countries?</b><b>190 countries?</b><b>190-something countries?</b><b>195?</b><b>I think so.</b><b>I don't know how</b><b>many countries Google.</b><b>I would assume all of them.</b><b>All of them.</b><b>Yes, exactly.</b><b>Yeah, no, quite right.</b><b>So, I think Unicode ranges are</b><b>our frontier, because you can,</b><b>now, it doesn't address the</b><b>issue of testing it and making</b><b>sure that your site does</b><b>display properly, right?</b><b>So, and, you know, it's</b><b>possible to have different</b><b>fonts for</b><b>different character sets.</b><b>You know, you could do that.</b><b>But a lot of the fonts that</b><b>people would want, so, there</b><b>are fonts that are out there</b><b>that are basically niche fonts</b><b>that probably have a very</b><b>limited set character ranges,</b><b>but they have sort of very</b><b>interesting characters.</b><b>So, people might use those for</b><b>headings and things like that.</b><b>Yeah.</b><b>Probably not.</b><b>They can get away with using it</b><b>in the body for a</b><b>particular language.</b><b>The number of fonts, if you're</b><b>saying, like, I want every</b><b>language in the world to</b><b>support this font.</b><b>Yes.</b><b>There are many fewer of those.</b><b>And so, you're restricted in</b><b>your choices based</b><b>on the availability.</b><b>But once you've picked a font</b><b>that you feel does support all</b><b>the characters you'll want to</b><b>display, then it's the Unicode</b><b>ranges which are your friend.</b><b>So, you're effectively</b><b>splitting the font up</b><b>into lots of files.</b><b>Mm-hmm.</b><b>So, a user from India is going</b><b>to get a different set of font</b><b>files downloaded than a user</b><b>from Spain, than</b><b>a user from China.</b><b>Okay.</b><b>And so, that is, and the</b><b>browser just does</b><b>that very effortlessly.</b><b>So, you don't have to put a lot</b><b>of, as long as they're split up</b><b>and you provide the correct</b><b>Unicode ranges,</b><b>it's just done for you.</b><b>Okay.</b><b>Interesting.</b><b>There's one topic in regards to</b><b>fonts that kind of similarly</b><b>trigger me like enums do in</b><b>TypeScript, and</b><b>that's ligatures.</b><b>Ah.</b><b>So, what's your opinion?</b><b>I am not, I think I'm probably,</b><b>well, so I have,</b><b>I love ligatures.</b><b>I think they are</b><b>wonderful, beautiful.</b><b>They're works of art.</b><b>They just make me happier.</b><b>That's, I'm glad to hear that.</b><b>But, you know, I also, the font</b><b>I use in my editor, I've had</b><b>people tell me</b><b>they hate it so much.</b><b>But I think it's not surprising</b><b>because fonts</b><b>are very personal.</b><b>That's true.</b><b>And what you like to see, and</b><b>I've even been through a range</b><b>of different fonts.</b><b>At one time, I</b><b>used JetBrains Mono.</b><b>Yeah, that's great one.</b><b>It's a beautiful font.</b><b>And then, and you get, and I</b><b>find the same to</b><b>be true of music.</b><b>Yeah.</b><b>You listen to something</b><b>everywhere, and then you're</b><b>suddenly tired of it, and you</b><b>use something else, you know.</b><b>And then you come back to it,</b><b>and you say, oh,</b><b>this is wonderful.</b><b>How did I, why did</b><b>I ever tire of this?</b><b>So, it's very interesting fonts</b><b>and preference.</b><b>So, not sure if you know that,</b><b>but you basically are</b><b>getting used to music.</b><b>So, if you listen to something,</b><b>even if you're at the</b><b>beginning, say, you're</b><b>absolutely hating it, like,</b><b>your ear eventually</b><b>will get used to it.</b><b>Do you think that's</b><b>the same for fonts?</b><b>I do.</b><b>Because, well, ligatures still</b><b>is not growing on me.</b><b>I've had to look</b><b>at them quite a lot.</b><b>But I feel, it feels</b><b>oppositional to me.</b><b>It feels personal now.</b><b>Could be.</b><b>You're never going to be won</b><b>over by a</b><b>sweet-looking ligature.</b><b>You know, it's not, you're not</b><b>going to think, goodness me, I</b><b>love those three lines</b><b>in front of each other.</b><b>Yeah, no, I absolutely don't.</b><b>Well, Daniel, it was, as</b><b>always, really nice to talk to</b><b>you about those things.</b><b>And I do want to use this time</b><b>to thank you personally for</b><b>everything you're</b><b>doing in the Nuxt ecosystem,</b><b>but also the broader impact</b><b>that has on other communities,</b><b>like Fontaine and Unifont.</b><b>Yes.</b><b>Thank you.</b><b>So, I really appreciate your</b><b>effort, and I think that's very</b><b>impressive what</b><b>you're doing for the,</b><b>not just for Nuxt, which is</b><b>already impressive, but for the</b><b>broader ecosystem.</b><b>So, thank you, and thank you</b><b>for joining me for</b><b>this cup of coffee.</b><b>It's a pleasure.</b><b>Thank you so much, and thanks</b><b>to you listening.</b><b>See you next time.</b>