Stay ahead in web development: latest news, tools, and insights #35
Tags: webdev, weeklyfoo, javascript, node
Published: 2024-06-03 04:56:14


weeklyfoo #35 is here: your weekly digest of all webdev news you need to know! This time you'll find 54 valuable links in 7 categories! Enjoy!
## 🚀 Read it!

- <a href="https://newsletter.posthog.com/p/hiring-and-managing-cracked-engineers?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vbmV3c2xldHRlci5wb3N0aG9nLmNvbS9wL2hpcmluZy1hbmQtbWFuYWdpbmctY3JhY2tlZC1lbmdpbmVlcnMiLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjM1LCJzZWN0aW9uIjoicmVhZEl0Iiwic291cmNlIjoid2ViIn19">Hiring (and managing) cracked engineers</a>: Cracked - Term used for people who are insanely good at something<small> / </small><small>*career*, *productivity*</small><small> / </small><small>8 min read</small>
- <a href="https://maheshba.bitbucket.io/blog/2024/05/08/2024-ThreeLaws.html?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vbWFoZXNoYmEuYml0YnVja2V0LmlvL2Jsb2cvMjAyNC8wNS8wOC8yMDI0LVRocmVlTGF3cy5odG1sIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjozNSwic2VjdGlvbiI6InJlYWRJdCIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">Three Laws of Software Complexity (or: why software engineers are always grumpy)</a>: Nah, we're not always grumpy ;)<small> / </small><small>*engineering*</small><small> / </small><small>4 min read</small>


<Hr />

## 📰 Good to know

- <a href="https://www.benkuhn.net/progessays/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vd3d3LmJlbmt1aG4ubmV0L3Byb2dlc3NheXMvIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjozNSwic2VjdGlvbiI6Imdvb2RUb0tub3ciLCJzb3VyY2UiOiJ3ZWIifX0%3D">Essays on programming I think about a lot</a>: Great list of articles for software development.<small> / </small><small>*productivity*</small><small> / </small><small>18 min read</small>
- <a href="https://stern.bearblog.dev/raw-hours/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vc3Rlcm4uYmVhcmJsb2cuZGV2L3Jhdy1ob3Vycy8iLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjM1LCJzZWN0aW9uIjoiZ29vZFRvS25vdyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">Raw hours</a>: Pretty quick read, but so much truth in it.<small> / </small><small>*productivity*</small><small> / </small><small>2 min read</small>
- <a href="https://www.pcloadletter.dev/blog/clever-code/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vd3d3LnBjbG9hZGxldHRlci5kZXYvYmxvZy9jbGV2ZXItY29kZS8iLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjM1LCJzZWN0aW9uIjoiZ29vZFRvS25vdyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">Write code that you can understand when you get paged at 2am</a>: A hymn to writing understandable code.<small> / </small><small>*coding*</small><small> / </small><small>6 min read</small>
- <a href="https://robindev.substack.com/p/cloudflare-took-down-our-website?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vcm9iaW5kZXYuc3Vic3RhY2suY29tL3AvY2xvdWRmbGFyZS10b29rLWRvd24tb3VyLXdlYnNpdGUiLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjM1LCJzZWN0aW9uIjoiZ29vZFRvS25vdyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">Cloudflare took down our website after trying to force us to pay 120k$ within 24h</a>: Crazy story.<small> / </small><small>*cloudflare*</small><small> / </small><small>12 min read</small>
- <a href="https://www.approachwithalacrity.com/what-are-you-getting-paid-in/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vd3d3LmFwcHJvYWNod2l0aGFsYWNyaXR5LmNvbS93aGF0LWFyZS15b3UtZ2V0dGluZy1wYWlkLWluLyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MzUsInNlY3Rpb24iOiJnb29kVG9Lbm93Iiwic291cmNlIjoid2ViIn19">What are you getting paid in?</a>: Interesting view on salary and other things you are paid in.<small> / </small><small>*career*</small><small> / </small><small>7 min read</small>
- <a href="https://chasem.co/2024/05/css-animations?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vY2hhc2VtLmNvLzIwMjQvMDUvY3NzLWFuaW1hdGlvbnMiLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjM1LCJzZWN0aW9uIjoiZ29vZFRvS25vdyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">New Magic For Animations in CSS</a>: Some simplifications for animations<small> / </small><small>*css*</small><small> / </small><small>5 min read</small>
- <a href="https://blog.ploetzli.ch/2024/should-i-use-jwt-for-authentication/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vYmxvZy5wbG9ldHpsaS5jaC8yMDI0L3Nob3VsZC1pLXVzZS1qd3QtZm9yLWF1dGhlbnRpY2F0aW9uLyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MzUsInNlY3Rpb24iOiJnb29kVG9Lbm93Iiwic291cmNlIjoid2ViIn19">Should I Use jwts For Authentication Tokens?</a>: Short answer: No - but there's also a long answer ;)<small> / </small><small>*auth*</small><small> / </small><small>16 min read</small>
- <a href="https://www.ntietz.com/blog/lets-say-instead-of-auth/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vd3d3Lm50aWV0ei5jb20vYmxvZy9sZXRzLXNheS1pbnN0ZWFkLW9mLWF1dGgvIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjozNSwic2VjdGlvbiI6Imdvb2RUb0tub3ciLCJzb3VyY2UiOiJ3ZWIifX0%3D">Instead of 'auth', we should say 'permissions' and 'login'</a>: Good idea!<small> / </small><small>*auth*</small><small> / </small><small>4 min read</small>
- <a href="https://theengineeringmanager.substack.com/p/the-disappointment-frontier?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vdGhlZW5naW5lZXJpbmdtYW5hZ2VyLnN1YnN0YWNrLmNvbS9wL3RoZS1kaXNhcHBvaW50bWVudC1mcm9udGllciIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MzUsInNlY3Rpb24iOiJnb29kVG9Lbm93Iiwic291cmNlIjoid2ViIn19">The Disappointment Frontier</a>: Keeping your team far from reality can cause a big fat mess.<small> / </small><small>*performance*, *management*</small><small> / </small><small>12 min read</small>
- <a href="https://react.dev/blog/2024/05/22/react-conf-2024-recap?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vcmVhY3QuZGV2L2Jsb2cvMjAyNC8wNS8yMi9yZWFjdC1jb25mLTIwMjQtcmVjYXAiLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjM1LCJzZWN0aW9uIjoiZ29vZFRvS25vdyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">React Conf 2024 Recap</a>: All you need to know from React Conf<small> / </small><small>*react*</small><small> / </small><small>7 min read</small>
- <a href="https://slashpages.net/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vc2xhc2hwYWdlcy5uZXQvIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjozNSwic2VjdGlvbiI6Imdvb2RUb0tub3ciLCJzb3VyY2UiOiJ3ZWIifX0%3D">Slash Pages</a>: A guide to common pages you can add to your website<small> / </small><small>*pages*</small><small> / </small><small>4 min read</small>
- <a href="https://email.ml/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZW1haWwubWwvIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjozNSwic2VjdGlvbiI6Imdvb2RUb0tub3ciLCJzb3VyY2UiOiJ3ZWIifX0%3D">Email.ML</a>: Minimalist temporary Email<small> / </small><small>*email*</small><small> / </small><small>1 min read</small>
- <a href="https://hiandrewquinn.github.io/til-site/posts/doing-is-normally-distributed-learning-is-log-normal/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vaGlhbmRyZXdxdWlubi5naXRodWIuaW8vdGlsLXNpdGUvcG9zdHMvZG9pbmctaXMtbm9ybWFsbHktZGlzdHJpYnV0ZWQtbGVhcm5pbmctaXMtbG9nLW5vcm1hbC8iLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjM1LCJzZWN0aW9uIjoiZ29vZFRvS25vdyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">Doing is normally distributed, learning is log-normal</a>: My conspiracy theory on why software estimation is such garbage<small> / </small><small>*productivity*</small><small> / </small><small>5 min read</small>
- <a href="https://rachelbythebay.com/w/2024/05/27/feed/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vcmFjaGVsYnl0aGViYXkuY29tL3cvMjAyNC8wNS8yNy9mZWVkLyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MzUsInNlY3Rpb24iOiJnb29kVG9Lbm93Iiwic291cmNlIjoid2ViIn19">So many feed readers, so many bizarre behaviors</a>: Implications after introducing 429s for too many requests.<small> / </small><small>*api*, *rss*</small><small> / </small><small>7 min read</small>
- <a href="https://developer.chrome.com/blog/anchor-positioning-api?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZGV2ZWxvcGVyLmNocm9tZS5jb20vYmxvZy9hbmNob3ItcG9zaXRpb25pbmctYXBpIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjozNSwic2VjdGlvbiI6Imdvb2RUb0tub3ciLCJzb3VyY2UiOiJ3ZWIifX0%3D">Introducing the CSS anchor positioning API</a>: That could solve a lot of issues.<small> / </small><small>*css*</small><small> / </small><small>15 min read</small>
- <a href="https://www.dolthub.com/blog/2024-05-28-160-bits/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vd3d3LmRvbHRodWIuY29tL2Jsb2cvMjAyNC0wNS0yOC0xNjAtYml0cy8iLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjM1LCJzZWN0aW9uIjoiZ29vZFRvS25vdyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">How Large is a 160 Bit Number?</a>: What an enjoyable read!<small> / </small><small>*numbers*</small><small> / </small><small>12 min read</small>
- <a href="https://www.amitmerchant.com/little-devtools-snippet-to-check-broken-links-on-a-webpage/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vd3d3LmFtaXRtZXJjaGFudC5jb20vbGl0dGxlLWRldnRvb2xzLXNuaXBwZXQtdG8tY2hlY2stYnJva2VuLWxpbmtzLW9uLWEtd2VicGFnZS8iLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjM1LCJzZWN0aW9uIjoiZ29vZFRvS25vdyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">A little DevTools snippet to check broken links on a webpage</a>: Handy snippet to check all links on a web page.<small> / </small><small>*snippet*, *href*</small><small> / </small><small>4 min read</small>
- <a href="https://read.engineerscodex.com/p/4-software-design-principles-i-learned?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vcmVhZC5lbmdpbmVlcnNjb2RleC5jb20vcC80LXNvZnR3YXJlLWRlc2lnbi1wcmluY2lwbGVzLWktbGVhcm5lZCIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MzUsInNlY3Rpb24iOiJnb29kVG9Lbm93Iiwic291cmNlIjoid2ViIn19">4 Software Design Principles I Learned the Hard Way</a>: If there’s two sources of truth, one is probably wrong. And yes, please repeat yourself.<small> / </small><small>*engineering*</small><small> / </small><small>8 min read</small>
- <a href="https://mtlynch.io/i-sold-tinypilot/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vbXRseW5jaC5pby9pLXNvbGQtdGlueXBpbG90LyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MzUsInNlY3Rpb24iOiJnb29kVG9Lbm93Iiwic291cmNlIjoid2ViIn19">I Sold TinyPilot, My First Successful Business</a>: About an ex-Googler that started his own business and sold it.<small> / </small><small>*startups*</small><small> / </small><small>18 min read</small>
- <a href="https://blog.1password.com/new-extension-build-system/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vYmxvZy4xcGFzc3dvcmQuY29tL25ldy1leHRlbnNpb24tYnVpbGQtc3lzdGVtLyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MzUsInNlY3Rpb24iOiJnb29kVG9Lbm93Iiwic291cmNlIjoid2ViIn19">How we used esbuild to reduce our browser extension build times by 90%</a>: Including type checks!<small> / </small><small>*ci*</small><small> / </small><small>22 min read</small>
- <a href="https://astro.build/blog/astro-490/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vYXN0cm8uYnVpbGQvYmxvZy9hc3Ryby00OTAvIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjozNSwic2VjdGlvbiI6Imdvb2RUb0tub3ciLCJzb3VyY2UiOiJ3ZWIifX0%3D">Astro 4.9</a>: Next minor release of Astro<small> / </small><small>*astro*</small><small> / </small><small>6 min read</small>
- <a href="https://github.com/theninthsky/client-side-rendering?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS90aGVuaW50aHNreS9jbGllbnQtc2lkZS1yZW5kZXJpbmciLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjM1LCJzZWN0aW9uIjoiZ29vZFRvS25vdyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">Client-side rendering</a>: A case study of CSR.<small> / </small><small>*csr*</small><small> / </small><small>42 min read</small>
- <a href="https://bessey.dev/blog/2024/05/24/why-im-over-graphql/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vYmVzc2V5LmRldi9ibG9nLzIwMjQvMDUvMjQvd2h5LWltLW92ZXItZ3JhcGhxbC8iLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjM1LCJzZWN0aW9uIjoiZ29vZFRvS25vdyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">Why, after 6 years, I’m over GraphQL</a>: Prior GraphQL advocate does not recommend GraphQL anymore.<small> / </small><small>*graphql*</small><small> / </small><small>13 min read</small>
- <a href="https://boz.com/articles/inbox-ten?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vYm96LmNvbS9hcnRpY2xlcy9pbmJveC10ZW4iLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjM1LCJzZWN0aW9uIjoiZ29vZFRvS25vdyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">Inbox ten</a>: Useful adjustment to Inbox Zero<small> / </small><small>*productivity*</small><small> / </small><small>8 min read</small>


<Hr />

## 🧰 Tools

- <a href="https://github.com/glebbash/LO?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9nbGViYmFzaC9MTyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MzUsInNlY3Rpb24iOiJ0b29scyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">LO</a>: small programming language targeting WASM that aims to be as simple as possible<small> / </small><small>*wasm*</small>
- <a href="https://www.visiwig.com/patterns/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vd3d3LnZpc2l3aWcuY29tL3BhdHRlcm5zLyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MzUsInNlY3Rpb24iOiJ0b29scyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">Vector Pattern Generator</a>: Create vector patterns.<small> / </small><small>*vector*, *patterns*</small>
- <a href="https://github.com/ynqa/sig?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS95bnFhL3NpZyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MzUsInNlY3Rpb24iOiJ0b29scyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">sig</a>: Interactive grep (for streaming)<small> / </small><small>*cli*</small>
- <a href="https://github.com/chakra-ui/ark?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9jaGFrcmEtdWkvYXJrIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjozNSwic2VjdGlvbiI6InRvb2xzIiwic291cmNlIjoid2ViIn19">Ark</a>: A headless library for building reusable, scalable design systems that works for a wide range of JS frameworks.<small> / </small><small>*react*, *web-components*</small>
- <a href="https://github.com/dream-num/univer?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9kcmVhbS1udW0vdW5pdmVyIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjozNSwic2VjdGlvbiI6InRvb2xzIiwic291cmNlIjoid2ViIn19">Univer</a>: Univer is an open-source alternative to Google Sheets, Slides, and Docs<small> / </small><small>*office*</small>
- <a href="https://superdesigner.co/tools/patterns?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vc3VwZXJkZXNpZ25lci5jby90b29scy9wYXR0ZXJucyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MzUsInNlY3Rpb24iOiJ0b29scyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">Pattern generator</a>: Another pattern generator<small> / </small><small>*shapes*, *patterns*</small>
- <a href="https://features.vote/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZmVhdHVyZXMudm90ZS8iLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjM1LCJzZWN0aW9uIjoidG9vbHMiLCJzb3VyY2UiOiJ3ZWIifX0%3D">Features.Vote</a>: Drive your product's growth with clarity by letting users post and vote on the features they want.<small> / </small><small>*features*</small>
- <a href="https://github.com/joye61/pic-smaller?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9qb3llNjEvcGljLXNtYWxsZXIiLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjM1LCJzZWN0aW9uIjoidG9vbHMiLCJzb3VyY2UiOiJ3ZWIifX0%3D">pic-smaller</a>: Pic Smaller – Compress JPEG, PNG, WEBP, AVIF, SVG and GIF images intelligently<small> / </small><small>*images*, *compression*</small>
- <a href="https://typehints.org/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vdHlwZWhpbnRzLm9yZy8iLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjM1LCJzZWN0aW9uIjoidG9vbHMiLCJzb3VyY2UiOiJ3ZWIifX0%3D">TypeHints</a>: These are answers to all the questions I had as a beginner in TypeScript.<small> / </small><small>*typescript*, *learning*</small>
- <a href="https://github.com/dolthub/dolt?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9kb2x0aHViL2RvbHQiLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjM1LCJzZWN0aW9uIjoidG9vbHMiLCJzb3VyY2UiOiJ3ZWIifX0%3D">dolt</a>: Git for Data<small> / </small><small>*data*, *database*</small>
- <a href="https://github.com/ragapp/ragapp?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9yYWdhcHAvcmFnYXBwIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjozNSwic2VjdGlvbiI6InRvb2xzIiwic291cmNlIjoid2ViIn19">RAGapp</a>: The easiest way to use Agentic RAG in any enterprise<small> / </small><small>*ai*, *rag*</small>
- <a href="https://github.com/fontsource/fontsource?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9mb250c291cmNlL2ZvbnRzb3VyY2UiLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjM1LCJzZWN0aW9uIjoidG9vbHMiLCJzb3VyY2UiOiJ3ZWIifX0%3D">Fontsource</a>: Self-host Open Source fonts in neatly bundled NPM packages.<small> / </small><small>*fonts*</small>
- <a href="https://github.com/grucloud/bau?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9ncnVjbG91ZC9iYXUiLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjM1LCJzZWN0aW9uIjoidG9vbHMiLCJzb3VyY2UiOiJ3ZWIifX0%3D">bau.js</a>: Reactive library and components for building web user interface<small> / </small><small>*ui*</small>
- <a href="https://encore.dev/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZW5jb3JlLmRldi8iLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjM1LCJzZWN0aW9uIjoidG9vbHMiLCJzb3VyY2UiOiJ3ZWIifX0%3D">encore</a>: Encore is the Development Platform for startups building event-driven and distributed systems.<small> / </small><small>*infra*</small>
- <a href="https://earthly.dev/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZWFydGhseS5kZXYvIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjozNSwic2VjdGlvbiI6InRvb2xzIiwic291cmNlIjoid2ViIn19">earthly</a>: Fast, consistent builds with an instantly familiar syntax – like Dockerfile and Makefile had a baby.<small> / </small><small>*ci*</small>
- <a href="https://github.com/dlvhdr/gh-dash?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9kbHZoZHIvZ2gtZGFzaCIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MzUsInNlY3Rpb24iOiJ0b29scyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">gh-dash</a>: A beautiful CLI dashboard for GitHub<small> / </small><small>*github*, *cli*</small>
- <a href="https://css-pattern.com/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vY3NzLXBhdHRlcm4uY29tLyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MzUsInNlY3Rpb24iOiJ0b29scyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">CSS Pattern</a>: Explore 144 CSS-only patterns made with CSS gradients and optimized with CSS variables.<small> / </small><small>*css*, *gradients*</small>
- <a href="https://airtable.com/appGc7YdwCFVYwTK8/shrY4CRFRaIhLjiBe/tbldCHol3ABwHG9ex?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vYWlydGFibGUuY29tL2FwcEdjN1lkd0NGVll3VEs4L3Noclk0Q1JGUmFJaExqaUJlL3RibGRDSG9sM0FCd0hHOWV4IiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjozNSwic2VjdGlvbiI6InRvb2xzIiwic291cmNlIjoid2ViIn19">Art Style Gallery</a>: AI prompts<small> / </small><small>*ai*, *prompts*</small>
- <a href="https://aem1k.com/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vYWVtMWsuY29tLyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MzUsInNlY3Rpb24iOiJ0b29scyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">JS Hacks & Creativity</a>: This is awesome!<small> / </small><small>*javascript*</small>
- <a href="https://github.com/rossmoody/svg-gobbler?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9yb3NzbW9vZHkvc3ZnLWdvYmJsZXIiLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjM1LCJzZWN0aW9uIjoidG9vbHMiLCJzb3VyY2UiOiJ3ZWIifX0%3D">SVG Gobbler</a>: Open source browser extension for finding, editing, exporting, optimizing, and managing SVG content.<small> / </small><small>*svg*, *extension*</small>
- <a href="https://github.com/wojtekmaj/react-pdf?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS93b2p0ZWttYWovcmVhY3QtcGRmIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjozNSwic2VjdGlvbiI6InRvb2xzIiwic291cmNlIjoid2ViIn19">React PDF</a>: Display PDFs in your React app as easily as if they were images.<small> / </small><small>*react*, *pdf*</small>
- <a href="https://delve.a9.io/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZGVsdmUuYTkuaW8vIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjozNSwic2VjdGlvbiI6InRvb2xzIiwic291cmNlIjoid2ViIn19">delve</a>: AI to chat<small> / </small><small>*ai*</small>


<Hr />

## 🎨 Design

- <a href="https://www.smashingmagazine.com/2024/05/naming-best-practices/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vd3d3LnNtYXNoaW5nbWFnYXppbmUuY29tLzIwMjQvMDUvbmFtaW5nLWJlc3QtcHJhY3RpY2VzLyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MzUsInNlY3Rpb24iOiJkZXNpZ24iLCJzb3VyY2UiOiJ3ZWIifX0%3D">Best Practices For Naming Design Tokens, Components And Variables</a>: This post is dedicated to naming conventions, tips, and real-world examples that help you name things in a robust and flexible way.<small> / </small><small>*design-tokens*</small><small> / </small><small>10 min read</small>
- <a href="https://www.useronboard.com/how-canva-activates-users/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vd3d3LnVzZXJvbmJvYXJkLmNvbS9ob3ctY2FudmEtYWN0aXZhdGVzLXVzZXJzLyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MzUsInNlY3Rpb24iOiJkZXNpZ24iLCJzb3VyY2UiOiJ3ZWIifX0%3D">How Canva Activates Users</a>: See the user onboarding flow of Canvas<small> / </small><small>*onboarding*</small><small> / </small><small>2 min read</small>


<Hr />

## 🤪 Fun

- <a href="https://aem1k.com/qlock/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vYWVtMWsuY29tL3Fsb2NrLyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MzUsInNlY3Rpb24iOiJmdW4iLCJzb3VyY2UiOiJ3ZWIifX0%3D">qlock</a>: A JavaScript Quine Clock - loving it!<small> / </small><small>*quine*</small><small> / </small><small>1 min read</small>


<Hr />

## 📚 Tutorials

- <a href="https://github.com/kiwicopple/serverless-postgres?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9raXdpY29wcGxlL3NlcnZlcmxlc3MtcG9zdGdyZXMiLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjM1LCJzZWN0aW9uIjoidHV0Iiwic291cmNlIjoid2ViIn19">serverless-postgres</a>: MVP for a Serverless Postgres using Oriole, Fly Machines, and Tigris for S3 Storage.<small> / </small><small>*postgres*, *serverless*</small><small> / </small><small>6 min read</small>


<Hr />

## 📺 Videos

- <a href="https://www.youtube.com/watch?v=yaMGtiPckAQ?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9eWFNR3RpUGNrQVEiLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjM1LCJzZWN0aW9uIjoidmlkcyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">Act On Press</a>: John Carmack's Hot Take On UI<small> / </small><small>*ui*</small>
- <a href="https://www.youtube.com/watch?v=WPCrGYjrJ1Y?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-35&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9V1BDckdZanJKMVkiLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjM1LCJzZWN0aW9uIjoidmlkcyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">The Most Dangerous Phrase</a>: This presentation was recorded at GOTO Copenhagen 2023.<small> / </small><small>*solid*, *scrum*</small>


Want to read more? Check out the full article [here](https://weeklyfoo.com/foos/foo-035/).

To sign up for the weekly newsletter, visit [weeklyfoo.com](https://weeklyfoo.com).