weeklyfoo #29
Tags: webdev, node, javascript
Published: 2024-04-22 05:56:11


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

- <a href="https://tonsky.me/blog/centering/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vdG9uc2t5Lm1lL2Jsb2cvY2VudGVyaW5nLyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MjksInNlY3Rpb24iOiJyZWFkSXQiLCJzb3VyY2UiOiJ3ZWIifX0%3D">Hardest Problem in Computer Science: Centering Things</a>: Never ending story.<small> / </small><small>*css*</small><small> / </small><small>9 min read</small>


<Hr />

## 📰 Good to know

- <a href="https://twitter.com/OpenAIDevs/status/1779922566091522492?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vdHdpdHRlci5jb20vT3BlbkFJRGV2cy9zdGF0dXMvMTc3OTkyMjU2NjA5MTUyMjQ5MiIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MjksInNlY3Rpb24iOiJnb29kVG9Lbm93Iiwic291cmNlIjoid2ViIn19">OpenAI Batch API</a>: save costs and get higher rate limits on async tasks (such as summarization, translation, and image classification)<small> / </small><small>*openai*</small><small> / </small><small>1 min read</small>
- <a href="https://supabase.com/ga?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vc3VwYWJhc2UuY29tL2dhIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjoyOSwic2VjdGlvbiI6Imdvb2RUb0tub3ciLCJzb3VyY2UiOiJ3ZWIifX0%3D">We are moving to General Availability</a>: Supabase is becoming GA!<small> / </small><small>*supabase*</small><small> / </small><small>8 min read</small>
- <a href="https://blog.jim-nielsen.com/2024/faster-bandwidth-and-websites/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vYmxvZy5qaW0tbmllbHNlbi5jb20vMjAyNC9mYXN0ZXItYmFuZHdpZHRoLWFuZC13ZWJzaXRlcy8iLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjI5LCJzZWN0aW9uIjoiZ29vZFRvS25vdyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">Faster Connectivity !== Faster Websites</a>: So true, bloated websites all over the internet.<small> / </small><small>*performance*</small><small> / </small><small>6 min read</small>
- <a href="https://www.osohq.com/post/distributed-authorization?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vd3d3Lm9zb2hxLmNvbS9wb3N0L2Rpc3RyaWJ1dGVkLWF1dGhvcml6YXRpb24iLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjI5LCJzZWN0aW9uIjoiZ29vZFRvS25vdyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">Authorization is still a nightmare for engineers: Launching Distributed Authorization</a>: Intersting approach<small> / </small><small>*auth*</small><small> / </small><small>14 min read</small>
- <a href="https://pudding.cool/2024/03/teenagers/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vcHVkZGluZy5jb29sLzIwMjQvMDMvdGVlbmFnZXJzLyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MjksInNlY3Rpb24iOiJnb29kVG9Lbm93Iiwic291cmNlIjoid2ViIn19">This is a teenager</a>: Beautiful website<small> / </small><small>*teenager*</small><small> / </small><small>10 min read</small>
- <a href="https://ios404.com/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vaW9zNDA0LmNvbS8iLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjI5LCJzZWN0aW9uIjoiZ29vZFRvS25vdyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">iOS404</a>: All the missing features in iOS<small> / </small><small>*ios*</small><small> / </small><small>0 min read</small>
- <a href="https://matklad.github.io/2024/03/22/basic-things.html?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vbWF0a2xhZC5naXRodWIuaW8vMjAyNC8wMy8yMi9iYXNpYy10aGluZ3MuaHRtbCIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MjksInNlY3Rpb24iOiJnb29kVG9Lbm93Iiwic291cmNlIjoid2ViIn19">Basic Things</a>: Great advice for small to large projects.<small> / </small><small>*productivity*</small><small> / </small><small>19 min read</small>
- <a href="https://biomejs.dev/blog/biome-v1-7/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vYmlvbWVqcy5kZXYvYmxvZy9iaW9tZS12MS03LyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MjksInNlY3Rpb24iOiJnb29kVG9Lbm93Iiwic291cmNlIjoid2ViIn19">Biome v1.7</a>: Next minor release, with a single command migration from ESLint<small> / </small><small>*linting*</small><small> / </small><small>7 min read</small>
- <a href="https://bost.ocks.org/mike/algorithms/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vYm9zdC5vY2tzLm9yZy9taWtlL2FsZ29yaXRobXMvIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjoyOSwic2VjdGlvbiI6Imdvb2RUb0tub3ciLCJzb3VyY2UiOiJ3ZWIifX0%3D">Visualizing Algorithms</a>: Old but gold!<small> / </small><small>*algorithms*</small><small> / </small><small>34 min read</small>
- <a href="https://js-naked-day.org/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vanMtbmFrZWQtZGF5Lm9yZy8iLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjI5LCJzZWN0aW9uIjoiZ29vZFRvS25vdyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">JS Naked Day</a>: April 24 it is! The web should work without JavaScript.<small> / </small><small>*javascript*</small><small> / </small><small>3 min read</small>
- <a href="https://www.simplermachines.com/why-you-need-a-wtf-notebook/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vd3d3LnNpbXBsZXJtYWNoaW5lcy5jb20vd2h5LXlvdS1uZWVkLWEtd3RmLW5vdGVib29rLyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MjksInNlY3Rpb24iOiJnb29kVG9Lbm93Iiwic291cmNlIjoid2ViIn19">Why you need a WTF Notebook</a>: I like that idea.<small> / </small><small>*productivity*</small><small> / </small><small>10 min read</small>
- <a href="https://www.smashingmagazine.com/2015/05/why-the-svg-filter-is-awesome/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vd3d3LnNtYXNoaW5nbWFnYXppbmUuY29tLzIwMTUvMDUvd2h5LXRoZS1zdmctZmlsdGVyLWlzLWF3ZXNvbWUvIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjoyOSwic2VjdGlvbiI6Imdvb2RUb0tub3ciLCJzb3VyY2UiOiJ3ZWIifX0%3D">The Art Of SVG Filters And Why It Is Awesome</a>: Didn't know that you can apply such nice filters in svg.<small> / </small><small>*svg*</small><small> / </small><small>24 min read</small>
- <a href="https://jacobian.org/2024/apr/1/mentorship-coaching-sponsorship/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vamFjb2JpYW4ub3JnLzIwMjQvYXByLzEvbWVudG9yc2hpcC1jb2FjaGluZy1zcG9uc29yc2hpcC8iLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjI5LCJzZWN0aW9uIjoiZ29vZFRvS25vdyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">Mentorship, coaching, sponsorship: three different — and equally important — tools for developing talent</a>: Three different characteristics<small> / </small><small>*career*</small><small> / </small><small>7 min read</small>
- <a href="https://www.camggould.com/posts/Jest-With-RTL-Is-Slow/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vd3d3LmNhbWdnb3VsZC5jb20vcG9zdHMvSmVzdC1XaXRoLVJUTC1Jcy1TbG93LyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MjksInNlY3Rpb24iOiJnb29kVG9Lbm93Iiwic291cmNlIjoid2ViIn19">Improving our Jest execution time by 300%</a>: Disabling type checking was the trick.<small> / </small><small>*jest*, *tests*</small><small> / </small><small>7 min read</small>


<Hr />

## 🧰 Tools

- <a href="https://modernfontstacks.com/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vbW9kZXJuZm9udHN0YWNrcy5jb20vIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjoyOSwic2VjdGlvbiI6InRvb2xzIiwic291cmNlIjoid2ViIn19">Modern Font Stacks</a>: System font stack CSS organized by typeface classification for every modern OS<small> / </small><small>*fonts*</small>
- <a href="https://www.zerosheets.com/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vd3d3Lnplcm9zaGVldHMuY29tLyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MjksInNlY3Rpb24iOiJ0b29scyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">Zero Sheets</a>: Google Sheets as APIs<small> / </small><small>*spreadsheets*, *api*</small>
- <a href="https://markdowndown.vercel.app/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vbWFya2Rvd25kb3duLnZlcmNlbC5hcHAvIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjoyOSwic2VjdGlvbiI6InRvb2xzIiwic291cmNlIjoid2ViIn19">MarkdownDown</a>: Convert any webpage to a clean markdown w/ images downloaded.<small> / </small><small>*markdown*, *md*</small>
- <a href="https://github.com/nalgeon/redka?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9uYWxnZW9uL3JlZGthIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjoyOSwic2VjdGlvbiI6InRvb2xzIiwic291cmNlIjoid2ViIn19">redka</a>: Redis re-implemented with SQLite<small> / </small><small>*redis*, *sqlite*</small>
- <a href="https://github.com/miurla/morphic?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9taXVybGEvbW9ycGhpYyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MjksInNlY3Rpb24iOiJ0b29scyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">morphic</a>: An AI-powered answer engine with a generative UI<small> / </small><small>*ai*, *openai*</small>
- <a href="https://chromewebstore.google.com/detail/screen-ruler-measure-the/jfbbgijjljfbolelfkopkhbfjajjampm?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vY2hyb21ld2Vic3RvcmUuZ29vZ2xlLmNvbS9kZXRhaWwvc2NyZWVuLXJ1bGVyLW1lYXN1cmUtdGhlL2pmYmJnaWpqbGpmYm9sZWxma29wa2hiZmphamphbXBtIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjoyOSwic2VjdGlvbiI6InRvb2xzIiwic291cmNlIjoid2ViIn19">Screen Ruler - Measure the web</a>: Measure sizes, distances, margins and paddings of any element on any web page.<small> / </small><small>*chrome*</small>
- <a href="https://github.com/jina-ai/reader?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9qaW5hLWFpL3JlYWRlciIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MjksInNlY3Rpb24iOiJ0b29scyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">Reader</a>: Convert any URL to an LLM-friendly input with a simple prefix https://r.jina.ai/<small> / </small><small>*ai*</small>
- <a href="https://github.com/smakosh/roll-your-own-auth?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9zbWFrb3NoL3JvbGwteW91ci1vd24tYXV0aCIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MjksInNlY3Rpb24iOiJ0b29scyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">Roll your own auth</a>: Copy & paste code to roll your own auth easily and for free<small> / </small><small>*auth*</small>
- <a href="https://github.com/ranisalt/node-argon2?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9yYW5pc2FsdC9ub2RlLWFyZ29uMiIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MjksInNlY3Rpb24iOiJ0b29scyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">node-argon2</a>: Node.js bindings for Argon2 hashing algorithm<small> / </small><small>*hashing*</small>
- <a href="https://effect.website/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZWZmZWN0LndlYnNpdGUvIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjoyOSwic2VjdGlvbiI6InRvb2xzIiwic291cmNlIjoid2ViIn19">Effect</a>: A set of libraries to write better TypeScript<small> / </small><small>*typescript*</small>
- <a href="https://mikro-orm.io/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vbWlrcm8tb3JtLmlvLyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MjksInNlY3Rpb24iOiJ0b29scyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">MikroORM</a>: TypeScript ORM for Node.js based on Data Mapper, Unit of Work and Identity Map patterns.<small> / </small><small>*orm*, *typescript*</small>
- <a href="https://react-querybuilder.js.org/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vcmVhY3QtcXVlcnlidWlsZGVyLmpzLm9yZy8iLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjI5LCJzZWN0aW9uIjoidG9vbHMiLCJzb3VyY2UiOiJ3ZWIifX0%3D">React Query Builder</a>: The Query Builder Component for React<small> / </small><small>*react*</small>
- <a href="https://github.com/Mihaiii/semantic-autocomplete?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9NaWhhaWlpL3NlbWFudGljLWF1dG9jb21wbGV0ZSIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MjksInNlY3Rpb24iOiJ0b29scyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">semantic-autocomplete</a>: A blazing-fast semantic search React component. Match by meaning, not just by letters. Search as you type without waiting (no debounce needed). Rank by cosine similarity.<small> / </small><small>*autocomplete*</small>
- <a href="https://github.com/gcoro/react-qrcode-logo?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9nY29yby9yZWFjdC1xcmNvZGUtbG9nbyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MjksInNlY3Rpb24iOiJ0b29scyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">react-qrcode-logo</a>: React + Typescript component to generate a QR Code with custom colors and logo<small> / </small><small>*qr*</small>
- <a href="https://anchor-tool.com/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vYW5jaG9yLXRvb2wuY29tLyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MjksInNlY3Rpb24iOiJ0b29scyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">Anchor Position Tool</a>: Get your anchor positioning css.<small> / </small><small>*css*</small>
- <a href="https://github.com/IORoot/SVGencode?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9JT1Jvb3QvU1ZHZW5jb2RlIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjoyOSwic2VjdGlvbiI6InRvb2xzIiwic291cmNlIjoid2ViIn19">SVGEncode</a>: A simple tool to convert an SVG into different formats, ready for use in CSS and HTML.<small> / </small><small>*svg*</small>
- <a href="https://portr.dev/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vcG9ydHIuZGV2LyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MjksInNlY3Rpb24iOiJ0b29scyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">portr</a>: Expose local http, tcp or websocket connections to the public internet<small> / </small><small>*tunnel*</small>
- <a href="https://fx.wtf/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZngud3RmLyIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MjksInNlY3Rpb24iOiJ0b29scyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">fx</a>: Terminal JSON viewer & processor<small> / </small><small>*cli*, *json*</small>
- <a href="https://hyperformula.handsontable.com/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vaHlwZXJmb3JtdWxhLmhhbmRzb250YWJsZS5jb20vIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjoyOSwic2VjdGlvbiI6InRvb2xzIiwic291cmNlIjoid2ViIn19">HyperFormula</a>: A headless spreadsheet, a parser and evaluator of Excel formulas<small> / </small><small>*spreadsheets*</small>
- <a href="https://quilljs.com/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vcXVpbGxqcy5jb20vIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjoyOSwic2VjdGlvbiI6InRvb2xzIiwic291cmNlIjoid2ViIn19">Quill</a>: Quill is a modern WYSIWYG editor built for compatibility and extensibility.<small> / </small><small>*editors*</small>
- <a href="https://hatchet.run/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vaGF0Y2hldC5ydW4vIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjoyOSwic2VjdGlvbiI6InRvb2xzIiwic291cmNlIjoid2ViIn19">hatchet</a>: Hatchet is a distributed, fault-tolerant task queue which replaces traditional message brokers and pub/sub systems - built to solve problems like concurrency, fairness, and durability.<small> / </small><small>*queue*</small>
- <a href="https://github.com/andrewcourtice/ripl?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9hbmRyZXdjb3VydGljZS9yaXBsIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjoyOSwic2VjdGlvbiI6InRvb2xzIiwic291cmNlIjoid2ViIn19">ripl</a>: Ripl provides a unified API for 2D graphics rendering in the browser with a focus towards high performance and interactive data visualization.<small> / </small><small>*svg*, *canvas*</small>
- <a href="https://deblank.com/colors?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZGVibGFuay5jb20vY29sb3JzIiwicHJvamVjdCI6IndlZWtseWZvbyIsImluZGV4IjoyOSwic2VjdGlvbiI6InRvb2xzIiwic291cmNlIjoid2ViIn19">Colors</a>: Inspirational color palettes tailored to your vision<small> / </small><small>*ai*, *colors*</small>
- <a href="https://github.com/gitroomhq/gitroom?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9naXRyb29taHEvZ2l0cm9vbSIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MjksInNlY3Rpb24iOiJ0b29scyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">Gitroom</a>: Schedule social media and articles. Exchange or buy posts from other members. Monitor your GitHub trending, and so much more.<small> / </small><small>*growth*</small>


<Hr />

## 🤪 Fun

- <a href="https://www.youtube.com/watch?v=aWfYxg-Ypm4?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9YVdmWXhnLVlwbTQiLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjI5LCJzZWN0aW9uIjoiZnVuIiwic291cmNlIjoid2ViIn19">Interview with Senior JS Developer 2024 [NEW]</a>: All the shiny js libs in under 7mins<small> / </small><small>*javascript*</small><small> / </small><small>1 min read</small>


<Hr />

## 📚 Tutorials

- <a href="https://www.joshcanhelp.com/oclif/?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vd3d3Lmpvc2hjYW5oZWxwLmNvbS9vY2xpZi8iLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjI5LCJzZWN0aW9uIjoidHV0Iiwic291cmNlIjoid2ViIn19">Building a CLI from scratch with TypeScript and oclif</a>: If you want to implement a ts cli, here you go.<small> / </small><small>*oclif*, *typescript*, *cli*</small><small> / </small><small>13 min read</small>
- <a href="https://vercel.com/blog/building-an-interactive-3d-event-badge-with-react-three-fiber?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vdmVyY2VsLmNvbS9ibG9nL2J1aWxkaW5nLWFuLWludGVyYWN0aXZlLTNkLWV2ZW50LWJhZGdlLXdpdGgtcmVhY3QtdGhyZWUtZmliZXIiLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjI5LCJzZWN0aW9uIjoidHV0Iiwic291cmNlIjoid2ViIn19">Building an interactive 3D event badge with React Three Fiber</a>: Dropping lanyard<small> / </small><small>*react*, *threejs*</small><small> / </small><small>16 min read</small>


<Hr />

## 📺 Videos

- <a href="https://techtalksweekly.substack.com/p/ttw-extra-3-all-javascript-conference?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8vdGVjaHRhbGtzd2Vla2x5LnN1YnN0YWNrLmNvbS9wL3R0dy1leHRyYS0zLWFsbC1qYXZhc2NyaXB0LWNvbmZlcmVuY2UiLCJwcm9qZWN0Ijoid2Vla2x5Zm9vIiwiaW5kZXgiOjI5LCJzZWN0aW9uIjoidmlkcyIsInNvdXJjZSI6IndlYiJ9fQ%3D%3D">All Javascript conference talks from 2023 ordered by the number of views</a>: Featuring JSConf, JSWORLD, JSNation, React Summit, React Native EU, VueJS Amsterdam, TypeScript Congress and many more!<small> / </small><small>*javascript*</small>
- <a href="https://kolektiva.media/w/ra7bfqXCyqBFn7dSFhneFy?utm_source=weeklyfoo&utm_medium=web&utm_campaign=weeklyfoo-29&ref=weeklyfoo" target="_blank" rel="noopener" ping="https://api.weeklyfoo.com/api/foo/bar?foo=eyJldmVudCI6InVybC1jbGljayIsInByb3BzIjp7InVybCI6Imh0dHBzOi8va29sZWt0aXZhLm1lZGlhL3cvcmE3YmZxWEN5cUJGbjdkU0ZobmVGeSIsInByb2plY3QiOiJ3ZWVrbHlmb28iLCJpbmRleCI6MjksInNlY3Rpb24iOiJ2aWRzIiwic291cmNlIjoid2ViIn19">The Microsoft-Dilemma - Europe as a Software Colony</a>: Full Documentary<small> / </small><small>*microsoft*</small>