Stay ahead in web development: latest news, tools, and insights #31
Tags: webdev, weeklyfoo, javascript, node
Published: 2024-05-06 05:05:28


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

- <a href="https://klinger.io/posts/eu-acc?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8va2xpbmdlci5pby9wb3N0cy9ldS1hY2MiLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjMxLCJzZWN0aW9uIjoicmVhZEl0Iiwic291cmNlIjoid2ViIn19">Dear Europe, please wake up – eu/acc</a>: This is so true.<small> / </small><small>*startups*, *eu*</small><small> / </small><small>13 min read</small>


<Hr />

## 📰 Good to know

- <a href="https://bun.sh/blog/bun-report-is-buns-new-crash-reporter?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vYnVuLnNoL2Jsb2cvYnVuLXJlcG9ydC1pcy1idW5zLW5ldy1jcmFzaC1yZXBvcnRlciIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MzEsInNlY3Rpb24iOiJnb29kVG9Lbm93Iiwic291cmNlIjoid2ViIn19">bun.report is Bun's new crash reporter</a>: Nice idea and nicely explained!<small> / </small><small>*bun*</small><small> / </small><small>10 min read</small>
- <a href="https://www.bleepingcomputer.com/news/security/github-comments-abused-to-push-malware-via-microsoft-repo-urls/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vd3d3LmJsZWVwaW5nY29tcHV0ZXIuY29tL25ld3Mvc2VjdXJpdHkvZ2l0aHViLWNvbW1lbnRzLWFidXNlZC10by1wdXNoLW1hbHdhcmUtdmlhLW1pY3Jvc29mdC1yZXBvLXVybHMvIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjozMSwic2VjdGlvbiI6Imdvb2RUb0tub3ciLCJzb3VyY2UiOiJ3ZWIifX0%3D">GitHub comments abused to push malware via Microsoft repo URLs</a>: User abusing systems, it's such a shame.<small> / </small><small>*github*</small><small> / </small><small>10 min read</small>
- <a href="https://www.terminal.shop/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vd3d3LnRlcm1pbmFsLnNob3AvIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjozMSwic2VjdGlvbiI6Imdvb2RUb0tub3ciLCJzb3VyY2UiOiJ3ZWIifX0%3D">terminal.shop</a>: What a nice idea!<small> / </small><small>*shops*</small><small> / </small><small>1 min read</small>
- <a href="https://blog.stackblitz.com/posts/what-is-vite-introduction/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vYmxvZy5zdGFja2JsaXR6LmNvbS9wb3N0cy93aGF0LWlzLXZpdGUtaW50cm9kdWN0aW9uLyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MzEsInNlY3Rpb24iOiJnb29kVG9Lbm93Iiwic291cmNlIjoid2ViIn19">What is Vite (and why is it so popular)?</a>: Want to get an intro to vite? Read this article.<small> / </small><small>*vite*</small><small> / </small><small>11 min read</small>
- <a href="https://github.blog/2024-04-29-github-copilot-workspace/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmJsb2cvMjAyNC0wNC0yOS1naXRodWItY29waWxvdC13b3Jrc3BhY2UvIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjozMSwic2VjdGlvbiI6Imdvb2RUb0tub3ciLCJzb3VyY2UiOiJ3ZWIifX0%3D">GitHub Copilot Workspace</a>: Welcome to the Copilot-native developer environment<small> / </small><small>*github*, *ai*, *copilot*</small><small> / </small><small>9 min read</small>
- <a href="https://ntietz.com/blog/the-only-two-log-levels-you-need-are-info-and-error/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vbnRpZXR6LmNvbS9ibG9nL3RoZS1vbmx5LXR3by1sb2ctbGV2ZWxzLXlvdS1uZWVkLWFyZS1pbmZvLWFuZC1lcnJvci8iLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjMxLCJzZWN0aW9uIjoiZ29vZFRvS25vdyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">The only two log levels you need are INFO and ERROR</a>: Why use fatal, warn or debug?<small> / </small><small>*logging*</small><small> / </small><small>9 min read</small>
- <a href="https://www.jamesqquick.com/blog/using-node-watch-instead-of-nodemon/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vd3d3LmphbWVzcXF1aWNrLmNvbS9ibG9nL3VzaW5nLW5vZGUtd2F0Y2gtaW5zdGVhZC1vZi1ub2RlbW9uLyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MzEsInNlY3Rpb24iOiJnb29kVG9Lbm93Iiwic291cmNlIjoid2ViIn19">Using Node Watch Instead of Nodemon</a>: You can use --watch flag in node now.<small> / </small><small>*node*, *nodemon*</small><small> / </small><small>2 min read</small>
- <a href="https://javascript.plainenglish.io/ditch-dotenv-node-js-now-natively-supports-env-file-loading-8b9b2d49b2d2?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vamF2YXNjcmlwdC5wbGFpbmVuZ2xpc2guaW8vZGl0Y2gtZG90ZW52LW5vZGUtanMtbm93LW5hdGl2ZWx5LXN1cHBvcnRzLWVudi1maWxlLWxvYWRpbmctOGI5YjJkNDliMmQyIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjozMSwic2VjdGlvbiI6Imdvb2RUb0tub3ciLCJzb3VyY2UiOiJ3ZWIifX0%3D">Ditch dotenv - Node.js Now Natively Supports .env File Loading</a>: Explore the new built-in features in Node.js that make managing environment variables simpler and more integrated.<small> / </small><small>*node*, *dotenv*</small><small> / </small><small>4 min read</small>
- <a href="https://lev.engineer/blog/web-scraping-like-a-pro-unlocking-the-power-of-impersonation?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vbGV2LmVuZ2luZWVyL2Jsb2cvd2ViLXNjcmFwaW5nLWxpa2UtYS1wcm8tdW5sb2NraW5nLXRoZS1wb3dlci1vZi1pbXBlcnNvbmF0aW9uIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjozMSwic2VjdGlvbiI6Imdvb2RUb0tub3ciLCJzb3VyY2UiOiJ3ZWIifX0%3D">Web Scraping like a pro</a>: Unlocking the power of impersonation<small> / </small><small>*scraping*</small><small> / </small><small>25 min read</small>
- <a href="https://cruncher.ch/blog/printing-music-with-css-grid/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vY3J1bmNoZXIuY2gvYmxvZy9wcmludGluZy1tdXNpYy13aXRoLWNzcy1ncmlkLyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MzEsInNlY3Rpb24iOiJnb29kVG9Lbm93Iiwic291cmNlIjoid2ViIn19">Printing music with CSS Grid</a>: This is pure art.<small> / </small><small>*music*, *css*</small><small> / </small><small>15 min read</small>
- <a href="https://joshstrange.com/2024/04/26/nightly-postgres-backups-via-github-actions/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vam9zaHN0cmFuZ2UuY29tLzIwMjQvMDQvMjYvbmlnaHRseS1wb3N0Z3Jlcy1iYWNrdXBzLXZpYS1naXRodWItYWN0aW9ucy8iLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjMxLCJzZWN0aW9uIjoiZ29vZFRvS25vdyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">Nightly Postgres Backups via GitHub Actions</a>: Learn how to backup your data to AWS<small> / </small><small>*postgres*, *aws*, *github*</small><small> / </small><small>6 min read</small>
- <a href="https://fy.blackhats.net.au/blog/2024-04-26-passkeys-a-shattered-dream/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZnkuYmxhY2toYXRzLm5ldC5hdS9ibG9nLzIwMjQtMDQtMjYtcGFzc2tleXMtYS1zaGF0dGVyZWQtZHJlYW0vIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjozMSwic2VjdGlvbiI6Imdvb2RUb0tub3ciLCJzb3VyY2UiOiJ3ZWIifX0%3D">Passkeys - A Shattered Dream</a>: Sad that it seems that Passkeys become something that is basically used for a more lock-in effect from corps.<small> / </small><small>*passkeys*</small><small> / </small><small>11 min read</small>
- <a href="https://konfigthis.com/blog/htmx/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8va29uZmlndGhpcy5jb20vYmxvZy9odG14LyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MzEsInNlY3Rpb24iOiJnb29kVG9Lbm93Iiwic291cmNlIjoid2ViIn19">I Reviewed 1,000s of Opinions on HTMX</a>: HTMX is a trending JavaScript library that enables the construction of modern user interfaces using hypermedia as the engine of application state.<small> / </small><small>*htmx*</small><small> / </small><small>13 min read</small>
- <a href="https://betterstack.com/community/guides/scaling-nodejs/performance-apis/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vYmV0dGVyc3RhY2suY29tL2NvbW11bml0eS9ndWlkZXMvc2NhbGluZy1ub2RlanMvcGVyZm9ybWFuY2UtYXBpcy8iLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjMxLCJzZWN0aW9uIjoiZ29vZFRvS25vdyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">An Introduction to the Node.js Performance API</a>: Want to measure things in nodejs? Get an introduction to the performance API with this post.<small> / </small><small>*nodejs*</small><small> / </small><small>19 min read</small>


<Hr />

## 🧰 Tools

- <a href="https://github.com/bluedragonz/bad-bot-blocker?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9ibHVlZHJhZ29uei9iYWQtYm90LWJsb2NrZXIiLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjMxLCJzZWN0aW9uIjoidG9vbHMiLCJzb3VyY2UiOiJ3ZWIifX0%3D">Bad Bot Blocker</a>: Block bad, possibly even malicious web crawlers (automated bots) using htaccess.<small> / </small><small>*htaccess*</small>
- <a href="https://teable.io/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vdGVhYmxlLmlvLyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MzEsInNlY3Rpb24iOiJ0b29scyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">teable</a>: The Next Gen Airtable Alternative - No-Code Postgres<small> / </small><small>*postgres*</small>
- <a href="https://github.com/Dokploy/dokploy?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9Eb2twbG95L2Rva3Bsb3kiLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjMxLCJzZWN0aW9uIjoidG9vbHMiLCJzb3VyY2UiOiJ3ZWIifX0%3D">Dokploy</a>: Open Source Alternative to Vercel, Netlify and Heroku.<small> / </small><small>*infra*</small>
- <a href="https://github.com/kaytu-io/kaytu?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9rYXl0dS1pby9rYXl0dSIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MzEsInNlY3Rpb24iOiJ0b29scyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">kaytu</a>: The Kaytu CLI helps you save on cloud costs by finding the perfect server sizes.<small> / </small><small>*infra*</small>
- <a href="https://threlte.xyz/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vdGhyZWx0ZS54eXovIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjozMSwic2VjdGlvbiI6InRvb2xzIiwic291cmNlIjoid2ViIn19">threlte</a>: Rapidly build interactive 3D apps for the web.<small> / </small><small>*3d*</small>
- <a href="https://stytch.com/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vc3R5dGNoLmNvbS8iLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjMxLCJzZWN0aW9uIjoidG9vbHMiLCJzb3VyY2UiOiJ3ZWIifX0%3D">Stytch</a>: All-in-one authentication, authorization, and fraud prevention infrastructure with powerful APIs and SDKs<small> / </small><small>*auth*</small>
- <a href="https://github.com/LuanRT/YouTube.js?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9MdWFuUlQvWW91VHViZS5qcyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MzEsInNlY3Rpb24iOiJ0b29scyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">YouTube.js</a>: A wrapper around YouTube's internal API — reverse engineering InnerTube<small> / </small><small>*youtube*</small>
- <a href="https://github.com/P4sca1/cron-schedule?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9QNHNjYTEvY3Jvbi1zY2hlZHVsZSIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MzEsInNlY3Rpb24iOiJ0b29scyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">cron-schedule</a>: A zero-dependency cron parser and scheduler for Node.js, Deno and the browser.<small> / </small><small>*crons*</small>
- <a href="https://github.com/dmtrKovalenko/odiff?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9kbXRyS292YWxlbmtvL29kaWZmIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjozMSwic2VjdGlvbiI6InRvb2xzIiwic291cmNlIjoid2ViIn19">Odiff</a>: The fastest pixel-by-pixel image visual difference tool in the world.<small> / </small><small>*images*</small>
- <a href="https://github.com/DevExpress/testcafe?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9EZXZFeHByZXNzL3Rlc3RjYWZlIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjozMSwic2VjdGlvbiI6InRvb2xzIiwic291cmNlIjoid2ViIn19">TestCafe</a>: A Node.js tool to automate end-to-end web testing.<small> / </small><small>*testing*</small>
- <a href="https://getpino.io/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2V0cGluby5pby8iLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjMxLCJzZWN0aW9uIjoidG9vbHMiLCJzb3VyY2UiOiJ3ZWIifX0%3D">Pino</a>: super fast, all natural json logger<small> / </small><small>*logger*</small>
- <a href="https://github.com/cezaraugusto/extension.js?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9jZXphcmF1Z3VzdG8vZXh0ZW5zaW9uLmpzIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjozMSwic2VjdGlvbiI6InRvb2xzIiwic291cmNlIjoid2ViIn19">Extension.js</a>: Plug-and-play, zero-config, cross-browser extension development tool.<small> / </small><small>*extensions*, *browsers*</small>
- <a href="https://www.peerdb.io/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vd3d3LnBlZXJkYi5pby8iLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjMxLCJzZWN0aW9uIjoidG9vbHMiLCJzb3VyY2UiOiJ3ZWIifX0%3D">PeerDB</a>: Fast, simple, and cost effective Postgres replication<small> / </small><small>*postgres*</small>
- <a href="https://github.com/lewhunt/divz?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9sZXdodW50L2RpdnoiLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjMxLCJzZWN0aW9uIjoidG9vbHMiLCJzb3VyY2UiOiJ3ZWIifX0%3D">Divz</a>: A React component that lets you scroll, swipe & zoom through HTML elements on the 3D z-axis.<small> / </small><small>*react*, *3d*</small>
- <a href="https://colors-visualizer.vercel.app/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vY29sb3JzLXZpc3VhbGl6ZXIudmVyY2VsLmFwcC8iLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjMxLCJzZWN0aW9uIjoidG9vbHMiLCJzb3VyY2UiOiJ3ZWIifX0%3D">Colors Visualizer</a>: Visualize Your Colors On Real Designs for Better Experience<small> / </small><small>*colors*</small>
- <a href="https://github.com/samchon/openapi?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9zYW1jaG9uL29wZW5hcGkiLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjMxLCJzZWN0aW9uIjoidG9vbHMiLCJzb3VyY2UiOiJ3ZWIifX0%3D">@samchon/openapi</a>: Type safe OpenAPI definitions<small> / </small><small>*openapi*</small>
- <a href="https://yaireo.github.io/tagify/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8veWFpcmVvLmdpdGh1Yi5pby90YWdpZnkvIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjozMSwic2VjdGlvbiI6InRvb2xzIiwic291cmNlIjoid2ViIn19">Tagify</a>: lightweight, efficient Tags input component in Vanilla JS / React / Angular / Vue<small> / </small><small>*tags*</small>
- <a href="https://github.com/missive/emoji-mart?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9taXNzaXZlL2Vtb2ppLW1hcnQiLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjMxLCJzZWN0aW9uIjoidG9vbHMiLCJzb3VyY2UiOiJ3ZWIifX0%3D">Emoji Mart</a>: One component to pick them all<small> / </small><small>*emojis*</small>
- <a href="https://prosopo.io/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vcHJvc29wby5pby8iLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjMxLCJzZWN0aW9uIjoidG9vbHMiLCJzb3VyY2UiOiJ3ZWIifX0%3D">Prosopo</a>: Procaptcha offers robust bot protection without compromising user privacy. Lightweight, open source GDPR compliant bot protection.<small> / </small><small>*captcha*</small>
- <a href="https://usehooks.com/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vdXNlaG9va3MuY29tLyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MzEsInNlY3Rpb24iOiJ0b29scyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">useHooks</a>: A collection of modern, server-safe React hooks – from the ui.dev team<small> / </small><small>*react*, *hooks*</small>
- <a href="https://www.eraser.io/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vd3d3LmVyYXNlci5pby8iLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjMxLCJzZWN0aW9uIjoidG9vbHMiLCJzb3VyY2UiOiJ3ZWIifX0%3D">eraser</a>: All-in-one markdown editor, collaborative canvas, and diagram-as-code builder<small> / </small><small>*diagrams*</small>


<Hr />

## 🎨 Design

- <a href="https://railsdesigner.com/hidden-gems-tailwind/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vcmFpbHNkZXNpZ25lci5jb20vaGlkZGVuLWdlbXMtdGFpbHdpbmQvIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjozMSwic2VjdGlvbiI6ImRlc2lnbiIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">Hidden Gems of Tailwind CSS</a>: I'm just using the basics, reading through this let me feel like tackerman!<small> / </small><small>*tailwind*</small><small> / </small><small>6 min read</small>
- <a href="https://www.creativebloq.com/features/best-number-fonts?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vd3d3LmNyZWF0aXZlYmxvcS5jb20vZmVhdHVyZXMvYmVzdC1udW1iZXItZm9udHMiLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjMxLCJzZWN0aW9uIjoiZGVzaWduIiwic291cmNlIjoid2ViIn19">The best number fonts</a>: The best fonts for adding creative number characters to your design projects.<small> / </small><small>*fonts*</small><small> / </small><small>12 min read</small>


<Hr />

## 🐱‍💻 Hacker News

- <a href="https://news.ycombinator.com/item?id=40231790?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vbmV3cy55Y29tYmluYXRvci5jb20vaXRlbT9pZD00MDIzMTc5MCIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MzEsInNlY3Rpb24iOiJobiIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">How do people create those sleek looking demos for startups?</a>: Discussion about what to use to produce nice demos.<small> / </small><small>*demo*</small><small> / </small><small>40 min read</small>


<Hr />

## 🤪 Fun

- <a href="https://copy.sh/v86/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vY29weS5zaC92ODYvIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjozMSwic2VjdGlvbiI6ImZ1biIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">Virtual x86</a>: v86 emulates an x86-compatible CPU and hardware.<small> / </small><small>*x86*</small><small> / </small><small>3 min read</small>


<Hr />

## 🤣 Meme

- <a href="https://twitter.com/thekitze/status/1786350021367279967?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vdHdpdHRlci5jb20vdGhla2l0emUvc3RhdHVzLzE3ODYzNTAwMjEzNjcyNzk5NjciLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjMxLCJzZWN0aW9uIjoibWVtZSIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">I touched a dockerfile today</a>: xD<small> / </small><small>*docker*</small><small> / </small><small>1 min read</small>


<Hr />

## 📚 Tutorials

- <a href="https://twitter.com/jh3yy/status/1786196510155174087?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vdHdpdHRlci5jb20vamgzeXkvc3RhdHVzLzE3ODYxOTY1MTAxNTUxNzQwODciLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjMxLCJzZWN0aW9uIjoidHV0Iiwic291cmNlIjoid2ViIn19">Midjourney-inspired gallery scroller with CSS scroll animation</a>: No JS needed!<small> / </small><small>*css*</small><small> / </small><small>1 min read</small>


<Hr />

## 📺 Videos

- <a href="https://www.youtube.com/watch?v=cWCMHHQvRwY?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9Y1dDTUhIUXZSd1kiLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjMxLCJzZWN0aW9uIjoidmlkcyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">How to become a freelance designer in 2024</a>: Some good insights<small> / </small><small>*freelance*</small>
- <a href="https://www.youtube.com/watch?v=zi0X30n5QQI?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9emkwWDMwbjVRUUkiLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjMxLCJzZWN0aW9uIjoidmlkcyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">System Design - Simple But Common Mistakes</a>: Learn to set up services, establish effective communication, and steer clear of pitfalls in distributed systems.<small> / </small><small>*bestpractices*</small>
- <a href="https://www.youtube.com/watch?v=QnfbdjeCvx4?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9UW5mYmRqZUN2eDQiLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjMxLCJzZWN0aW9uIjoidmlkcyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">Keep your nose out of it. Denying yourself access to production</a>: Just do it.<small> / </small><small>*operations*</small>
- <a href="https://www.epicweb.dev/talks/let-me-be?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-31&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vd3d3LmVwaWN3ZWIuZGV2L3RhbGtzL2xldC1tZS1iZSIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MzEsInNlY3Rpb24iOiJ2aWRzIiwic291cmNlIjoid2ViIn19">Let me be</a>: const vs let - very entertaining 15min talk!<small> / </small><small>*javascript*</small>


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

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