PageSourceSearch

https://blakewatson.com/links/

html blakewatson.com collected 2026-10-03 23:25:37 UTC 30,360 bytes, 537 lines download raw bytes

1<!doctype html>
2<html data-theme="light" lang="en">
3  <head>
4    <meta charset="utf-8" />
5    <meta name="viewport" content="initial-scale=1, width=device-width" />
6    <meta name="fediverse:creator" content="@[email protected]" />
7    
8    
9      <meta property="twitter:title" content="Links - blakewatson.com" />
10      <meta property="twitter:image" content="https://blakewatson.com/assets/images/og-image.png" />
11      <meta property="og:title" content="Links - blakewatson.com" />
12      <meta property="og:image" content="https://blakewatson.com/assets/images/og-image.png" />
13      <meta property="og:site_name" content="blakewatson.com" />
14
15      
16        <meta property="description" content="Cool stuff I find on the web." />
17        <meta property="twitter:description" content="Cool stuff I find on the web." />
18        <meta property="og:description" content="Cool stuff I find on the web." />
19      
20    
21
22    <title>
23      blakewatson.com
24      
25        - Links
26      
27    </title>
28
29    
29<script>
30      (function () {
31        const theme = localStorage.getItem('theme');
32
33        const prefersLight = matchMedia('(prefers-color-scheme: light)');
34
35        prefersLight.addEventListener('change', () => setTheme());
36
37        const setTheme = () => {
38          const theme = prefersLight.matches ? 'light' : 'dark';
39
40          document.documentElement.setAttribute('data-theme', theme);
41
42          localStorage.setItem('theme', theme);
43        };
44
45        if (theme) {
46          document.documentElement.setAttribute('data-theme', theme);
47        } else {
48          setTheme();
49        }
50      })();
51    </script>
51
52    
53    <link rel="alternate" type="application/atom+xml" title="Journal Feed" href="https://blakewatson.com/feed.xml">
54    <link rel="alternate" type="application/atom+xml" title="Links Feed" href="https://blakewatson.com/links/feed.xml">
55    <link rel="alternate" type="application/atom+xml" title="Microblog Feed" href="https://blakewatson.com/microblog/feed.xml">
56
57    <link rel="stylesheet" href="/assets/css/style.css" />
58
59    
60
61    
62
63    
63<script defer src="/assets/js/like-button.js"></script>
63
64    
64<script defer src="/assets/js/app.js"></script>
64
65
66    
67
68    <!-- favicon -->
69    <link
70      rel="apple-touch-icon"
71      sizes="180x180"
72      href="/assets/images/apple-touch-icon.png"
73    />
74    <link
75      rel="icon"
76      type="image/png"
77      sizes="32x32"
78      href="/assets/images/favicon-32x32.png"
79    />
80    <link
81      rel="icon"
82      type="image/png"
83      sizes="16x16"
84      href="/assets/images/favicon-16x16.png"
85    />
86    <link
87      rel="icon"
88      href="/assets/images/favicon.svg"
89      type="image/svg+xml"
90      sizes="any"
91    />
92    <link rel="manifest" href="/site.webmanifest" />
93
94    <!-- Fathom - beautiful, simple website analytics -->
95    
95<script
96      src="https://cdn.usefathom.com/script.js"
97      data-site="WAMLYDHO"
98      defer
99    ></script>
99
100  </head>
101
102  <body class="links">
103    <div class="the-grid">
104      <a href="#main" class="skip-link">Skip to content</a>
105      <header class="site-header">
106  <p class="site-title">
107    <a href="/">
108      <img src="/assets/images/logo-enclosed.svg" alt="blakewatson.com"/>
109    </a>
110  </p>
111
112  <nav class="site-nav">
113    <a href="https://now.blakewatson.com">Now</a>
114    <a href="/about">About</a>
115    <a href="/journal">Journal</a>
116    <a href="/links">Links</a>
117    <a href="/microblog">Microblog</a>
118    <a href="/projects">Projects</a>
119    <a href="/assistive-tech-gear">Gear</a>
120    <a href="/work">Work</a>
121    <a href="/search">Search</a>
122
123    <label class="theme-toggle">
124      <input type="checkbox">
125      <span class="sr-only">Toggle theme</span>
126      <svg width="32px" height="32px" viewBox="0 0 32 32" version="1.1"
127    xmlns="http://www.w3.org/2000/svg"
128    xmlns:xlink="http://www.w3.org/1999/xlink">
129    <g id="theme-toggle" stroke="none" stroke-width="1" fill="currentColor" fill-rule="evenodd">
130        <path d="M28,16 C28,9.375 22.625,4 16,4 L16,28 C22.625,28 28,22.625 28,16 Z M0,16 C0,7.163444 7.163444,0 16,0 C24.836556,0 32,7.163444 32,16 C32,24.836556 24.836556,32 16,32 C7.163444,32 0,24.836556 0,16 Z" id="Shape" fill-rule="nonzero"></path>
131    </g>
132</svg>
133    </label>
134  </nav>
135
136</header>
137
138      
139        
140
141  <main id="main" class="main-content">
142    <h1 class="collection-title mb-lg">Links</h1>
143
144    <div class="post-list-links">
145      
146        <article class="link-post post-mini">
147  <h1 class="post-title"><a href="https://bell.bz/youll-miss-publishers-when-theyre-gone/" class="hover-link-only">Andy Bell: You’ll miss publishers when they’re gone</a></h1>
148  
149    <p class="tiny-meta mt-xs mb-none">
150      <a href="/links/2026-09-18-youll-miss-publishers-when-theyre-gone/" class="hover-link-only">
151        <time datetime="2026-09-18T12:08:44.000Z">September 18, 2026</time>
152      </a>
153    </p>
154  
155  
156  <div class="post-content prose"><p>My opinions on AI shift around almost daily, but a few fears of mine persist. No, it isn’t necessarily the existential one—the idea that I’ll soon be out of a job, replaced by an AI or by someone who will sling more prompts for less pay.</p>
157<p>One of my primary concerns is <a href="https://en.wikipedia.org/wiki/Deskilling">deskilling</a>. If I become so dependent on AI that my software development skills atrophy then I’m moving myself closer to being replaced. After all, if I’m not any better at web dev than a junior prompt slinger, what’s the incentive to hire/retain me?</p>
158<p>(<strong>Note:</strong> my employer has not indicated that they were set on replacing people; I’m speaking of the industry as a whole).</p>
159<p>It’s extremely slow going, but one thing I’m trying to do is actively beef up my skills. For example, I’m slowly working through Josh Comeau’s <a href="https://css-for-js.dev/">CSS for JavaScript Developers</a> and I hope to soon start on his <a href="https://whimsy.joshwcomeau.com/">Whimsical Animations</a> course.</p>
160<p>
160We’re going to have to support people publishing high-quality learning content if we want to keep seeing it.</p>
161</div>
162</article>
163      
164        <article class="link-post post-mini">
165  <h1 class="post-title"><a href="https://blog.jim-nielsen.com/2026/ode-to-links/" class="hover-link-only">Jim Nielsen: An Ode to Links</a></h1>
166  
167    <p class="tiny-meta mt-xs mb-none">
168      <a href="/links/2026-09-13-an-ode-to-links/" class="hover-link-only">
169        <time datetime="2026-09-13T12:04:23.000Z">September 13, 2026</time>
170      </a>
171    </p>
172  
173  
174  <div class="post-content prose"><p>I really couldn’t resist linking to a post about links.</p>
175<blockquote>
176<p>We make links. Links make the web. The web makes Us.</p>
177</blockquote>
178<p>&lt;3</p>
179<p>And, shameless plug, if you like links, especially lists of links, check out my new-tab-page browser extension, <a href="https://afinestart.me/">A Fine Start</a>.</p>
180</div>
181</article>
182      
183        <article class="link-post post-mini">
184  <h1 class="post-title"><a href="https://animejs.com/" class="hover-link-only">AnimeJS: all-in-one animation engine</a></h1>
185  
186    <p class="tiny-meta mt-xs mb-none">
187      <a href="/links/2026-09-11-animejs-all-in-one-animation-engine/" class="hover-link-only">
188        <time datetime="2026-09-11T11:45:06.000Z">September 11, 2026</time>
189      </a>
190    </p>
191  
192  
193  <div class="post-content prose"><p>I have been using this library for years, and it’s only gotten better over time. For whatever reason, I’ve always foun
193d it easier to grok than <a href="https://gsap.com/">GSAP</a>. I’ve used it for DOM animations, but where I’ve had the most fun with it lately is using it with <a href="https://pixijs.com/">PixiJS</a> to animate <a href="https://www.watsonbrosgames.com/solitaire/">2D games</a>.</p>
194<p>The AnimeJS homepage is absolutely stunning.</p>
195</div>
196</article>
197      
198        <article class="link-post post-mini">
199  <h1 class="post-title"><a href="https://www.neatnik.net/hardcore-indieweb" class="hover-link-only">Hardcore IndieWeb: Run your own website 100% independently for only $0.01/day</a></h1>
200  
201    <p class="tiny-meta mt-xs mb-none">
202      <a href="/links/2026-08-23-hardcore-indieweb-run-your-own-website/" class="hover-link-only">
203        <time datetime="2026-08-23T09:31:48.000Z">August 23, 2026</time>
204      </a>
205    </p>
206  
207  
208  <div class="post-content prose"><p>Adam Newbold of <a href="https://omg.lol">omg.lol</a>, blogging at Neatnik:</p>
209<blockquote>
210<p>The key aspects of Hardcore IndieWeb are control over your content and portability of your website:</p>
211<ul>
212<li>If your content doesn’t primarily exist on your own hard drive, you don’t fully control your content.</li>
213<li>If you don’t have a copy of your published HTML and web assets on your own hard drive, it’s not truly portable.</li>
214</ul>
215</blockquote>
216<p>If this position sounds a bit <em>hardcore</em>, it is, but that’s the kind of person this guide was made for. It’s worth mentioning that the <em>principles</em> are hardcore, not the skills needed—in many ways, the instructions Adam lays out here are even easier than other methods of creating a website.</p>
217<blockquote>
218<p>The process looks like this:</p>
219<ul>
220<li>Author your web content on your hard drive.</li>
221<li>Preview it in your web browser.</li>
222<li>When you’re happy with what you have, upload it to your web host. Repeat as often as you’d like.</li>
223</ul>
224<p>That’s it. It really is that simple.</p>
225</blockquote>
226<p>The rest of this guide walks you through this process in more detail. It celebrates being close to the actual code of your website as opposed to layering on dozens of abstractions.</p>
227<p>It’s a very similar ethos to <a href="https://htmlforpeople.com/">HTML for People</a> (and indeed, he links out to it several times), but with a focus on ensuring control of your data at every point in the process.</p>
228<p>My own website follows most of these principles, except I am using a <a href="https://www.11ty.dev/">static site generator</a>, at the time of this writing, and a somewhat complex templating system. But most of my website is previewable locally, lives in a repository, and gets deployed to my server at <a href="https://www.nearlyfreespeech.net/">NearlyFreeSpeech.NET</a>. I say “most of my website” because, at this point, my website has become its own organism with various sub-pages and things that aren’t tracked in the main project. The website as it lives on my server is the only <em>complete</em> representation of the website, but I do weekly backups just in case.</p>
229<p>I also immediately thought of <a href="https://www.mattwatson.org/">my brother’s website</a>. His website is a simple blog that he made with vanilla, handwritten PHP, including the RSS feed!</p>
230<p>I enjoyed this guide, and even though I think it’s totally fine to use a blog service if that’s what works for you, it’s always good to remember that layers of services and tooling aren’t actually needed to make a website. A website is just a collection of files. When I learned this fact over 20 years ago, it was eye-opening for me, and it’s what immediately drew me in to making websites.</p>
231</div>
232</article>
233      
234        <article class="link-post post-mini">
235  <h1 class="post-title"><a href="https://juncture.lettermatic.com/" class="hover-link-only">Juncture: an industrial font superfamily from Lettermatic</a></h1>
236  
237    <p class="tiny-meta mt-xs mb-none">
238      <a href="/links/2026-08-21-juncture-an-industrial-font-superfamily-from-lettermatic/" class="hover-link-only">
239        <time datetime="2026-08-21T17:57:15.000Z">August 21, 2026</time>
240      </a>
241    </p>
242  
243  
244  <div class="post-content prose"><p><img src="/uploads/2026/juncture.png" alt=" blocky industrial font that says 'Industrial Manufacturing'. The word 'Manufacturing' is rendered in a chrome style."></p>
245<p>This quirky uppercased font appeared on my radar by way of the SimpleBits® <a href="https://simplebits.com/club/">Secret Club™</a> Slack chat.</p>
246<p>Really love the vintage feel of this font, but the real super power it has is its extreme flexibility. It comes in four distinct styles with multiple weights and widths. There are so many ways you can mix and mash this font up to get a specific desired effect.</p>
247<p>But the reason I’m sharing it is because of the whimsical, interactive micro site. Just incredible.</p>
248</div>
249</article>
250      
251        <article class="link-post post-mini">
252  <h1 class="post-title"><a href="https://michellebarker.co.uk/writing/little-websites-everywhere/" class="hover-link-only">Little websites everywhere</a></h1>
253  
254    <p class="tiny-meta mt-xs mb-none">
255      <a href="/links/2026-08-18-little-websites-everywhere/" class="hover-link-only">
256        <time datetime="2026-08-18T23:27:26.000Z">August 18, 2026</time>
257      </a>
258    </p>
259  
260  
261  <div class="post-content prose"><p>Michelle Barker’s post is relatable to a personal homepage enthusiast like myself.</p>
262<blockquote>
263<p>Building a website feels old-fashioned these days. How many more websites do I have left in me before the old fire flickers and dies? Is snuffed out. Before making websites is no longer a viable way to earn a living? The web will change drastically within my lifetime, maybe someday soon, indeed it already has. Maybe it really will fizzle out, a graveyard haunted only by bots and crawlers. But I have a hunch that there will be a long tail. Amid the dying embers, a resilient cohort of indie web bloggers, artists and creators will keep going, keep on talking to each other through their blogs, without tracking, pop-ups or invasive ads. Making fun websites, helpful websites, pointless websites (the best kind) that serve no purpose other than to manifest someone’s spark of creativity.</p>
264</blockquote>
265<p>It’s hard for me to imagine the fire ever snuffing out. My sites have never been hugely popular and I’ve never had a large audience except for blips and spikes here and there. But that’s not why I have a website. I make <a href="https://blakewatson.com/">blakewatson.com</a> for myself. I do it so I can copy a link and send it to a friend. I do it as a record of my thoughts and passions. I cherish the small amount of visitors I do have and the occasional email I receive about something I wrote. The long tail is real. There are real humans out there who just want to enjoy each other’s websites.</p>
266</div>
267</article>
268      
269        <article class="link-post post-mini">
270  <h1 class="post-title"><a href="https://chriscoyier.net/2013/10/18/mediocre-ideas-showing-up-and-persistence/" class="hover-link-only">Mediocre ideas, showing up, and persistence</a></h1>
271  
272    <p class="tiny-meta mt-xs mb-none">
273      <a href="/links/2026-08-18-mediocre-ideas-showing-up-and-persistence/" class="hover-link-only">
274        <time datetime="2026-08-18T12:29:47.000Z">August 18, 2026</time>
275      </a>
276    </p>
277  
278  
279  <div class="post-content prose"><p>This is an oldie but a goodie from Chris Coyier, back in 2013.</p>
280<blockquote>
281<p>Keep doing it until you’ve done everything you set out to do and everyone and their mom knows it. I didn’t stop blogging when barely anyone read it for years. I didn’t stop when people told me I was dumb or wrong. I didn’t stop when redesigns were met with vitriol. I didn’t stop when faced with mountainous challenges like inexplicable server failure, legal trouble, and theft of the site itself.</p>
282</blockquote>
283<p>There really is something powerful in setting out to do something, doing it, and continuing to do it over a long period.</p>
284</div>
285</article>
286      
287        <article class="link-post post-mini">
288  <h1 class="post-title"><a href="https://www.jettfoundation.org/overjoyed-gaming-app" class="hover-link-only">Overjoyed: an accessible virtual gaming controller</a></h1>
289  
290    <p class="tiny-meta mt-xs mb-none">
291      <a href="/links/2026-08-17-overjoyed/" class="hover-link-only">
292        <time datetime="2026-08-17T10:00:22.000Z">August 17, 2026</time>
293      </a>
294    </p>
295  
296  
297  <div class="post-content prose"><p>This Windows app provides a mouse-based virtual controller that can interface with a Nintendo Switch by way of a physical control from 8BitDo. So you need the <a href="https://www.8bitdo.com/micro/">8BitDo Micro Bluetooth Gamepad</a>. Then you install Overjoyed. Once you do the setup process, you can hover your mouse over the virtual D-pad to trigger the same directions on the Switch. There are a ton of additional features like allowing mouse click to trigger secondary actions and all sorts of other useful settings.</p>
298<p>I’m on a Mac, but I was able to install Overjoyed in a Windows VM using <a href="https://mac.getutm.app/">UTM</a> and it worked great.</p>
299</div>
300</article>
301      
302        <article class="link-post post-mini">
303  <h1 class="post-title"><a href="https://franktisellano.github.io/datatype/" class="hover-link-only">Datatype: a font for displaying inline charts</a></h1>
304  
305    <p class="tiny-meta mt-xs mb-none">
306      <a href="/links/2026-07-19-datatype-font/" class="hover-link-only">
307        <time datetime="2026-07-19T10:39:27.000Z">July 19, 2026</time>
308      </a>
309    </p>
310  
311  
312  <div class="post-content prose"><p>Datatype is an interesting use (abuse?) of font features that allows you to display inline charts and graphs. It’s free and open source. I had the chance to use it at work on <a href="https://blakewatson.com/wor
312k/cosmic/">COSMIC</a> and it’s a nice visual aid when displaying numbers.</p>
313</div>
314</article>
315      
316        <article class="link-post post-mini">
317  <h1 class="post-title"><a href="https://warmburnout.com/" class="hover-link-only">Warm Burnout: a color scheme with warm colors and good contrast</a></h1>
318  
319    <p class="tiny-meta mt-xs mb-none">
320      <a href="/links/2026-04-29-warm-burnout-a-color-scheme-with-warm-colors-and-good-contrast/" class="hover-link-only">
321        <time datetime="2026-04-29T16:42:25.000Z">April 29, 2026</time>
322      </a>
323    </p>
324  
325  
326  <div class="post-content prose"><p>Sometime within the last couple of years or so, I became totally burnt out (heh) on cool colors. I’ve started using color schemes and themes (in different apps that support them) that employ warm, earthy colors instead.</p>
327<p>I recently found this one and one of the things I like about its <a href="https://marketplace.visualstudio.com/items?itemName=felip3fdl.warm-burnout">theme for VS Code</a> is that not only does the dark variant look good, but the light variant does as well, ensuring that all text meets WCAG AAA contrast standards.</p>
328<p>It’s rare to find a good light theme with solid contrast. Even more so to find a good one paired with a good dark one as well. I haven’t been tempted to override any of the colors yet, which is saying something.</p>
329</div>
330</article>
331      
332        <article class="link-post post-mini">
333  <h1 class="post-title"><a href="https://www.youtube.com/watch?v=vkm-ZFlivyI" class="hover-link-only">Meet Tuna: a brand new, modern, modal launcher for macOS</a></h1>
334  
335    <p class="tiny-meta mt-xs mb-none">
336      <a href="/links/2026-04-03-meet-tuna-a-brand-new-modern-modal-launcher-for-macos/" class="hover-link-only">
337        <time datetime="2026-04-03T18:17:24.000Z">April 3, 2026</time>
338      </a>
339    </p>
340  
341  
342  <div class="post-content prose"><div class="block-embed block-embed-service-youtube"><iframe type="text/html" src="//www.youtube.com/embed/vkm-ZFlivyI" frameborder="0" width="640" height="390" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></div>
343<p>The excitement—and, frankly, sheer <em>giddiness</em>—with which this developer introduces his new app is the most wholesome thing I’ve seen this week.</p>
344<p>From the minute when I started watching it, I was thinking that the last thing I needed was an app launcher, having had a Powerpack license for <a href="https://www.alfredapp.com/">Alfred</a> for… <em>checks notes</em>… nearly 14 years!</p>
345<p>But the more I watched, the more I was intrigued. Before I could even get done with the video, I had the app and the Pro license.</p>
346<p>Yes, I am aware I have a problem.</p>
347<p>(Yes, I know <a href="https://www.raycast.com/">Raycast</a> can do everything. If you like it, cool.)</p>
348</div>
349</article>
350      
351        <article class="link-post post-mini">
352  <h1 class="post-title"><a href="https://www.youtube.com/watch?v=3XyCT6q35GI" class="hover-link-only">Jazz Emu: Here It Comes</a></h1>
353  
354    <p class="tiny-meta mt-xs mb-none">
355      <a href="/links/2026-03-30-jazz-emu-here-it-comes/" class="hover-link-only">
356        <time datetime="2026-03-30T21:01:33.000Z">March 30, 2026</time>
357      </a>
358    </p>
359  
360  
361  <div class="post-content prose"><p>Watch this if you need a pick-me-up and want to see a bunch of people fail their charisma saving throws.</p>
362<div class="block-embed block-embed-service-youtube"><iframe type="text/html" src="//www.youtube.com/embed/3XyCT6q35GI" frameborder="0" width="640" height="390" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></div>
363</div>
364</article>
365      
366        <article class="link-post post-mini">
367  <h1 class="post-title"><a href="https://stephango.com/flexoki" class="hover-link-only">Flexoki — an inky color scheme for prose and code</a></h1>
368  
369    <p class="tiny-meta mt-xs mb-none">
370      <a href="/links/2026-03-05-flexoki-an-inky-color-scheme-for-prose-and-code/" class="hover-link-only">
371        <time datetime="2026-03-05T12:34:21.000Z">March 5, 2026</time>
372      </a>
373    </p>
374  
375  
376  <div class="post-content prose"><p>Nice color scheme from the CEO of Obsidian. I’ve been using this color scheme in various apps. There are a few versions in Obsidian, particularly in the <a href="https://github.com/kepano/obsidian-minimal">Minimal</a> theme and the <a href="https://github.com/aaaaalexis/obsidian-baseline">Baseline</a> theme.</p>
377<p>I’ve also used the Flexoki variants of the <a href="https://marketplace.visualstudio.com/items?itemName=RaillyHugo.one-hunter">One Hunter Theme</a> for VS Code.</p>
378<p>My new tab page browser extension, <a href="https://afinestart.me">A Fine Start</a>, also includes light and dark Flexoki themes.</p>
379</div>
380</article>
381      
382        <article class="link-post post-mini">
383  <h1 class="post-title"><a href="https://www.youtube.com/watch?v=nhbYveaV0pk" class="hover-link-only">[Video] Do It With Style: Rethinking CSS</a></h1>
384  
385    <p class="tiny-meta mt-xs mb-none">
386      <a href="/links/2026-02-10-video-do-it-with-style-rethinking-css/" class="hover-link-only">
387        <time datetime="2026-02-10T12:39:47.000Z">February 10, 2026</time>
388      </a>
389    </p>
390  
391  
392  <div class="post-content prose"><p>One of my goals this year is getting better at CSS. I joke that my CSS skills peaked in 2015. But CSS has gained a ton of new, really cool things and browser support has been moving quickly compared the days of old.</p>
393<p>This talk by Dylan Beattie from NDC London 2026 is a great introduction to what CSS is capable of these days.</p>
394<p>I’m also slowly working through a course called <a href="https://css-for-js.dev/">CSS for JavaScript Developers</a> by Josh Comeau, which is fantastically done.</p>
395</div>
396</article>
397      
398        <article class="link-post post-mini">
399  <h1 class="post-title"><a href="https://wiki.csswg.org/ideas/mistakes" class="hover-link-only">Incomplete List of Mistakes in the Design of CSS</a></h1>
400  
401    <p class="tiny-meta mt-xs mb-none">
402      <a href="/links/2026-02-10-incomplete-list-of-mistakes-in-the-design-of-css/" class="hover-link-only">
403        <time datetime="2026-02-09T22:32:37.000Z">February 9, 2026</time>
404      </a>
405    </p>
406  
407  
408  <div class="post-content prose"><p>The CSS Working Group publishes a page with all of the things that they’d like to fix in CSS but can’t because the “mistakes” are already in the wild and changing them would break the web—an unforgivable sin. Here are a few of my favorites:</p>
409<ul>
410<li>z-index should be called z-order or depth and should Just Work on all elements (like it does on flex items).</li>
411<li>The alignment properties in Flexbox should have been writing-mode relative, not flex-flow relative, and thus could have reasonably understandable names like align-inline-* and align-block-*.</li>
412<li>It shouldn’t be !important — that reads to engineers as “not important”. We should have picked another way to write this.</li>
413<li>Not quite a mistake, because it was a reasonable default for the 90s, but it would be more helpful since then if <code>background-repeat</code> defaulted to <code>no-repeat</code>.</li>
414<li>Box-sizing should be border-box by default.</li>
415</ul>
416<p>And finally, the funniest one:</p>
417<ul>
418<li>Table layout should be sane.</li>
419</ul>
420</div>
421</article>
422      
423        <article class="link-post post-mini">
424  <h1 class="post-title"><a href="https://www.thepunch.studio" class="hover-link-only">The Punch—A curated directory of the web&#39;s finest Indie Type Foundries</a></h1>
425  
426    <p class="tiny-meta mt-xs mb-none">
427      <a href="/links/2026-02-07-the-punch-a-curated-directory-of-the-webs-finest-indie-type-foundries/" class="hover-link-only">
428        <time datetime="2026-02-07T15:30:08.000Z">February 7, 2026</time>
429      </a>
430    </p>
431  
432  
433  <div class="post-content prose"><p>I had a Fonts.com subscription for a number of years, followed by a Monotype one. I also had a cloud.typography sub for webfonts. All of those services were from Monotype, the largest type company in the world.</p>
434<p>Lately I’ve been acquiring fonts from indie foundries and quit giving Monotype money. <em>Feels good man.</em></p>
435<p>Even if you’re not in the market for a professional font, just browsing the incredible artwork and type specimens from these foundries makes The Punch worth a look.</p>
436</div>
437</article>
438      
439        <article class="link-post post-mini">
440  <h1 class="post-title"><a href="https://bunny.net/fonts/" class="hover-link-only">Bunny Fonts: Privacy-friendly replacement for Google Fonts</a></h1>
441  
442    <p class="tiny-meta mt-xs mb-none">
443      <a href="/links/2026-01-28-privacy-friendly-replacement-for-google-fonts/" class="hover-link-only">
444        <time datetime="2026-01-28T09:55:31.000Z">January 28, 2026</time>
445      </a>
446    </p>
447  
448  
449  <div class="post-content prose"><p>The popular CDN, <a href="https://bunny.net">bunny.net</a>, has a drop-in replacement for Google Fonts that is privacy friendly and GDPR compliant.</p>
450<p>I just came across this so I haven’t had time to use it yet, but I will definitely be trying it the next time I start to reach for Google Fonts.</p>
451<p>As a typographical aside, you can get some nice fonts with a generous web license from both <a href="https://mbtype.com/">MBType</a> and <a href="https://simplebits.shop/collections/fonts">SimpleBits</a>.</p>
452</div>
453</article>
454      
455        <article class="link-post post-mini">
456  <h1 class="post-title"><a href="https://daverupert.com/2025/05/notion-to-obsidian/" class="hover-link-only">Dave Rupert: Moving from Notion to Obsidian</a></h1>
457  
458    <p class="tiny-meta mt-xs mb-none">
459      <a href="/links/2026-01-26-dave-rupert-moving-from-notion-to-obsidian/" class="hover-link-only">
460        <time datetime="2026-01-26T18:43:44.000Z">January 26, 2026</time>
461      </a>
462    </p>
463  
464  
465  <div class="post-content prose"><p>It’s always interesting reading about other people’s note taking setups. This one from Dave is interesting because he explains the thought process that went into 
465it. And he dumps a huge list of Obsidian plugins that he is using.</p>
466</div>
467</article>
468      
469        <article class="link-post post-mini">
470  <h1 class="post-title"><a href="https://grid-paper.daverupert.com" class="hover-link-only">Grid Paper</a></h1>
471  
472    <p class="tiny-meta mt-xs mb-none">
473      <a href="/links/2026-01-24-grid-paper/" class="hover-link-only">
474        <time datetime="2026-01-24T22:00:43.000Z">January 24, 2026</time>
475      </a>
476    </p>
477  
478  
479  <div class="post-content prose"><p>Sometimes you need graph paper, whether it’s for a digital background or to print out and draw on. Rather than scouring the internet and settling for something subpar, this neat little home-cooked app from <a href="https://daverupert.com">Dave Rupert</a> lets you generate a variety of different types of graph paper.</p>
480</div>
481</article>
482      
483        <article class="link-post post-mini">
484  <h1 class="post-title"><a href="https://handy.computer/" class="hover-link-only">Handy is a simple and free speech-to-text app</a></h1>
485  
486    <p class="tiny-meta mt-xs mb-none">
487      <a href="/links/2026-01-23-handy/" class="hover-link-only">
488        <time datetime="2026-01-23T12:00:46.000Z">January 23, 2026</time>
489      </a>
490    </p>
491  
492  
493  <div class="post-content prose"><p><a href="https://superwhisper.com/">Superwhisper</a> has been my speech-to-text daily driver for over a year now. But I’m constantly seeing other neat ones. This one in particular is cool because it is open source and free to download.</p>
494</div>
495</article>
496      
497    </div>
498
499    <nav class="pagination-nav">
500      
501      
502      
503
504<ul class="pagination">
505  
506
507  
508
509  
510    <li class="pagination--item">
511      <a class="pagination--link" href="/links/2">Next&nbsp;&rarr;</a>
512    </li>
513  
514</ul>
515    </nav>
516  </main>
517
518      
519    </div>
520
521    <div class="site-footer text-muted">
522  <p class="copyright mb-none">Blake Watson&rsquo;s personal website</p>
523  <p class="small-text mb-xs">The views expressed here are mine and no one else’s.</p>
524
525  <p class="footer-links small-text my-none">
526    <a rel="me" href="https://social.lol/@bw">Mastodon</a>
527    <a href="/feed.xml">Journal RSS</a>
528    <a href="/links/feed.xml">Links RSS</a>
529    <a href="/microblog/feed.xml">Microblog RSS</a>
530    <a href="/blank">Blank page</a>
531  </p>
532</div>
533
534    
534<script src="/assets/js/instant-page-5.2.0.js" type="module"></script>
534
535  
535<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"6ad72c7d557a4e41844710d3a472773f","r":1,"spa":2}' crossorigin="anonymous"></script>
535
536</body>
537</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.