Syntax - Tasty Web Development Treats podcast

Syntax - Tasty Web Development Treats

Full Stack Developers Wes Bos and Scott Tolinski dive deep into web development topics, explaining how they work and talking about their own experiences. They cover from JavaScript frameworks like React, to the latest advancements in CSS to simplifying web tooling.

Full Stack Developers Wes Bos and Scott Tolinski dive deep into web development topics, explaining how they work and talking about their own experiences. They cover from JavaScript frameworks like React, to the latest advancements in CSS to simplifying web tooling.

 

#773

771: Promises: Error Handling, Aborts, and Helper Methods - Part 2

We’re diving into part 2 of our 3-part series on Promises, focusing on error handling, aborts, and essential helper methods. We’ll explore how to manage errors effectively and improve performance with abort signals. Let’s get into it! <a id= "Show_Notes_2"></a>Show Notes --- [00:00] (#t=00:00) Welcome to Syntax! --- [00:41] (#t=00:41) Brought to you by [Sentry.io] (https://sentry.io/syntax) . --- [02:00] (#t=02:00) Cancelling promises. --- [05:16] (#t=05:16) Why would you reach for an abort signal? --- [06:26] (#t=06:26) Promise helpers. ------ [07:04] (#t=07:04) Promise.all() vs Promise.allSettled(). ------ [09:12] (#t=09:12) promiseInstance.finally() ------ [09:26] (#t=09:26) Promise.any() and Promise.race() --- [12:08] (#t=12:08) Error handling strategies. ------ [Tuple await-to-js] (https://www.npmjs.com/package/await-to-js) . ------ [Youtube - 5 Async + Await Error Handling Strategies] (https://www.youtube.com/watch?v=wsoQ-fgaoyQ) . --- [17:30] (#t=17:30) Promise.race() example. --- [18:54] (#t=18:54) Static Promise.reject() and .resolve() methods. <a id="Hit_us_up_on_Socials_18"></a>Hit us up on Socials! Syntax: [X] (https://twitter.com/syntaxfm) <a href= "https://www.instagram.com/syntax_fm/">Instagram</a> <a href= "https://www.tiktok.com/@syntaxfm">Tiktok</a> <a href= "https://www.linkedin.com/company/96077407/admin/feed/posts/">LinkedIn</a> [Threads] (https://www.threads.net/@syntax_fm) Wes: [X] (https://twitter.com/wesbos) <a href= "https://www.instagram.com/wesbos/">Instagram</a> <a href= "https://www.tiktok.com/@wesbos">Tiktok</a> <a href= "https://www.linkedin.com/in/wesbos/">LinkedIn</a> <a href= "https://www.threads.net/@wesbos">Threads</a> Scott: [X] (https://twitter.com/stolinski) <a href= "https://www.instagram.com/stolinski/">Instagram</a> <a href= "https://www.tiktok.com/@stolinski">Tiktok</a> <a href= "https://www.linkedin.com/in/stolinski/">LinkedIn</a> <a href= "https://www.threads.net/@stolinski">Threads</a> Randy: [X] (https://twitter.com/randyrektor) <a href= "https://www.instagram.com/randyrektor/">Instagram</a> <a href= "https://www.youtube.com/@randyrektor">YouTube</a> <a href= "https://www.threads.net/@randyrektor">Threads</a> ... Read more

16 hrs Ago

21 MINS

21:06

16 hrs Ago


#772

770: Design Systems With Brad Frost (Rereleased)

In this revisited supper club episode, Wes and Scott talk with Brad Frost about how to implement design systems in small and large scale projects, best practices around naming things, keeping everything in sync across different codebases, and how design systems help projects. <a id= "Show_Notes_2"></a>Show Notes --- [00:00] (#t=00:00) Welcome to Syntax! --- [00:49] (#t=00:49) Brought to you by [Sentry.io] (https://sentry.io/syntax) . --- [01:14] (#t=01:14) Introducing Brad Frost. --- [Brad Frost.com] (https://bradfrost.com/) . --- [Atomic Design by Brad Frost] (https://atomicdesign.bradfrost.com/) . --- [Brad (@brad_frost) on Twitter] (https://twitter.com/brad_frost) . --- [Brad on LinkedIn] (https://www.linkedin.com/in/bradfrost/) . --- [Brad on Mastodon] (https://mastodon.social/@brad_frost) . --- [Brad on YouTube] (https://www.youtube.com/@brad_frost) . --- [Brad on GitHub] (https://github.com/bradfrost) . --- [Brad Frost on CodePen] (https://codepen.io/bradfrost/) . --- [Big Medium | Design for What’s Next] (https://bigmedium.com/) . --- [06:26] (#t=06:26) What is a design system? --- [11:48] (#t=11:48) How do you keep design and code in sync? --- [Material Design] (https://m3.material.io/) . --- [Shopify Polaris] (https://polaris.shopify.com/) . --- [Carbon Design System] (https://carbondesignsystem.com/) . --- <a href= "https://bradfrost.com/blog/post/the-design-system-ecosystem/">The Design System Ecosystem | Brad Frost</a>. --- [15:52] (#t=15:52) How do you use Shopify, WordPress, React, etc. through a design system? --- [19:19] (#t=19:19) How is CSS handled? --- [25:19] (#t=25:19) What’s the benefit of going all in on web components? --- [28:49] (#t=28:49) Do small startups need to worry about design systems? --- [32:36] (#t=32:36) How do design tokens work? --- [37:38] (#t=37:38) How do you deal with pushback on design systems? --- [41:05] (#t=41:05) How do you go outside the guidelines? --- [44:52] (#t=44:52) What system do you use for naming things? --- [49:06] (#t=49:06) How do you best document your language choices? --- [50:41] (#t=50:41) Supper Club questions. --- <a href= "https://www.amazon.com/Thinking-Systems-Donella-H-Meadows/dp/1603580557"> Thinking in Systems</a>. --- [Miriam Eric Suzanne] (https://www.miriamsuzanne.com/) . --- [Zeldman on Web and Interaction Design] (https://www.zeldman.com/) . --- [57:12] (#t=57:12) Sick Picks + Shameless Plugs. <a id="Sick_Picks_37"></a>Sick Picks --- Brad: <a href= "https://en.wikipedia.org/wiki/Rubblebucket">Rubblebucket</a>. <a id="Shameless_Plugs_42"></a>Shameless Plugs --- Brad: <a href= "https://bradfrost.com/blog/post/frostapalooza/">Frostapalooza! | Brad Frost</a>, [FROSTAPALOOZA - A Concert Party Happening On August 17th 2024] (https://40.bradfrost.com/) . <a id="Hit_us_up_on_Socials_46"></a>Hit us up on Socials! Syntax: [X] (https://twitter.com/syntaxfm) <a href= "https://www.instagram.com/syntax_fm/">Instagram</a> <a href= "https://www.tiktok.com/@syntaxfm">Tiktok</a> <a href= "https://www.linkedin.com/company/96077407/admin/feed/posts/">LinkedIn</a> [Threads] (https://www.threads.net/@syntax_fm) Wes: [X] (https://twitter.com/wesbos) <a href= "https://www.instagram.com/wesbos/">Instagram</a> <a href= "https://www.tiktok.com/@wesbos">Tiktok</a> <a href= "https://www.linkedin.com/in/wesbos/">LinkedIn</a> <a href= "https://www.threads.net/@wesbos">Threads</a> Scott: [X] (https://twitter.com/stolinski) <a href= "https://www.instagram.com/stolinski/">Instagram</a> <a href= "https://www.tiktok.com/@stolinski">Tiktok</a> <a href= "https://www.linkedin.com/in/stolinski/">LinkedIn</a> <a href= "https://www.threads.net/@stolinski">Threads</a> Randy: [X] (https://twitter.com/randyrektor) <a href= "https://www.instagram.com/randyrektor/">Instagram</a> <a href= "https://www.youtube.com/@randyrektor">YouTube</a> <a href= "https://www.threads.net/@randyrektor">Threads</a> ... Read more

17 May 2024

59 MINS

59:07

17 May 2024


#771

769: React Miami Live Show

Welcome to a special live edition of Syntax, recorded at React Miami! Join Scott and Wes as they dish out games galore, from Spot the Syntax Error to JS or NAYS, all while engaging with the audience in this lively session of coding camaraderie. Plus, who’s the better programmer? Stay tuned to find out! <a id= "Show_Notes_2"></a>Show Notes --- [00:00] (#t=00:00) Welcome to Syntax! --- [00:54] (#t=00:54) Meet the <a href= "https://syntax.fm/about">Syntax team</a>. --- [01:22] (#t=01:22) The plan for today. --- [02:38] (#t=02:38) .map() .filter() .reduce() --- [06:39] (#t=06:39) Syntax Error. --- [15:37] (#t=15:37) JS or NAYS. --- [21:08] (#t=21:08) Audience Stump’d. --- [24:51] (#t=24:51) Q + EH. <a id="Hit_us_up_on_Socials_13"></a>Hit us up on Socials! Syntax: [X] (https://twitter.com/syntaxfm) <a href= "https://www.instagram.com/syntax_fm/">Instagram</a> <a href= "https://www.tiktok.com/@syntaxfm">Tiktok</a> <a href= "https://www.linkedin.com/company/96077407/admin/feed/posts/">LinkedIn</a> [Threads] (https://www.threads.net/@syntax_fm) Wes: [X] (https://twitter.com/wesbos) <a href= "https://www.instagram.com/wesbos/">Instagram</a> <a href= "https://www.tiktok.com/@wesbos">Tiktok</a> <a href= "https://www.linkedin.com/in/wesbos/">LinkedIn</a> <a href= "https://www.threads.net/@wesbos">Threads</a> Scott: [X] (https://twitter.com/stolinski) <a href= "https://www.instagram.com/stolinski/">Instagram</a> <a href= "https://www.tiktok.com/@stolinski">Tiktok</a> <a href= "https://www.linkedin.com/in/stolinski/">LinkedIn</a> <a href= "https://www.threads.net/@stolinski">Threads</a> Randy: [X] (https://twitter.com/randyrektor) <a href= "https://www.instagram.com/randyrektor/">Instagram</a> <a href= "https://www.youtube.com/@randyrektor">YouTube</a> <a href= "https://www.threads.net/@randyrektor">Threads</a> ... Read more

15 May 2024

34 MINS

34:19

15 May 2024


#770

768: React 19 is here!

Scott and Wes serve up all the deets on the latest React 19 update, exploring new features like actions, web components, use()API, and document metadata. Stay tuned as they discuss the ins and outs of upgrading to React 19 and what it means for your projects. <a id= "Show_Notes_2"></a>Show Notes --- [00:00] (#t=00:00) Welcome to Syntax! --- [01:30] (#t=01:30) Brought to you by [Sentry.io] (https://sentry.io/syntax) . --- [02:03] (#t=02:03) What’s in the update? --- [React 19 Beta Release Notes] (https://react.dev/blog/2024/04/25/react-19) . ------ [03:03] (#t=03:03) Actions + server actions. --------- [Syntax Episode 766] (https://syntax.fm/766) . --------- [04:54] (#t=04:54) Using server actions for a checkout. ------ [06:11] (#t=06:11) Web components. --------- [Custom Elements Everywhere] (https://custom-elements-everywhere.com/) . ------ [09:44] (#t=09:44) use() API. --------- [10:31] (#t=10:31) With promises. --------- [14:25] (#t=14:25) With context. --------- [17:32] (#t=17:32) How does <a href= "https://zustand-demo.pmnd.rs/">Zustand</a> work? ------------ [Stately.ai] (https://stately.ai/) . ------------ [X @DavidKPiano] (https://twitter.com/DavidKPiano) . ------ [18:26] (#t=18:26) No more ForwardRef. ------ [20:05] (#t=20:05) Ref cleanup. ------ [20:43] (#t=20:43) Document metadata. --- [24:14] (#t=24:14) Upgrading to React 19. <a id="Hit_us_up_on_Socials_24"></a>Hit us up on Socials! Syntax: [X] (https://twitter.com/syntaxfm) <a href= "https://www.instagram.com/syntax_fm/">Instagram</a> <a href= "https://www.tiktok.com/@syntaxfm">Tiktok</a> <a href= "https://www.linkedin.com/company/96077407/admin/feed/posts/">LinkedIn</a> [Threads] (https://www.threads.net/@syntax_fm) Wes: [X] (https://twitter.com/wesbos) <a href= "https://www.instagram.com/wesbos/">Instagram</a> <a href= "https://www.tiktok.com/@wesbos">Tiktok</a> <a href= "https://www.linkedin.com/in/wesbos/">LinkedIn</a> <a href= "https://www.threads.net/@wesbos">Threads</a> Scott: [X] (https://twitter.com/stolinski) <a href= "https://www.instagram.com/stolinski/">Instagram</a> <a href= "https://www.tiktok.com/@stolinski">Tiktok</a> <a href= "https://www.linkedin.com/in/stolinski/">LinkedIn</a> <a href= "https://www.threads.net/@stolinski">Threads</a> Randy: [X] (https://twitter.com/randyrektor) <a href= "https://www.instagram.com/randyrektor/">Instagram</a> <a href= "https://www.youtube.com/@randyrektor">YouTube</a> <a href= "https://www.threads.net/@randyrektor">Threads</a> ... Read more

13 May 2024

26 MINS

26:36

13 May 2024


#769

767: Local First and TypeScript’s Missing Library with Johannes Schickling

In this episode, Scott and Wes dive into the world of local-first apps with Johannes Schickling, the mastermind behind Prisma. From databases, WASM for non-JS, to authentication challenges, they explore the ins and outs of crafting apps that prioritize local functionality. <a id= "Show_Notes_2"></a>Show Notes --- [00:00] (#t=00:00) Welcome to Syntax! --- [01:10] (#t=01:10) Brought to you by [Sentry.io] (https://sentry.io/syntax) . --- [01:28] (#t=01:28) What is <a href= "https://overtone.pro/">Overtone</a>? --- [03:45] (#t=03:45) Can you explain the experience you’re trying to achieve? --- [06:43] (#t=06:43) What makes the best music app? Is it local first? --- [08:03] (#t=08:03) Is it best to create a local first app from the ground up? --- [10:31] (#t=10:31) What are the considerations when making a local first app? --- [13:04] (#t=13:04) What database are you using? --- [Riffle] (https://riffle.systems/) . --- [16:12] (#t=16:12) How do you handle authentication? --- [19:15] (#t=19:15) Pick the tech based on the problem. --- [20:40] (#t=20:40) WASM for Non-JS or heavy lifting tasks. --- [24:39] (#t=24:39) How did you get SQLite running in the browser? --- [27:58] (#t=27:58) What about WA-SQLite, how does it compare to <a href= "https://riffle.systems/">Riffle</a>? --- [TLDraw Make-real] (https://github.com/tldraw/make-real) . --- [29:24] (#t=29:24) The backstory of [Effect] (https://effect.website/) for TypeScript. --- [34:04] (#t=34:04) What actually is Effect? --- [39:32] (#t=39:32) Consolidating tools. --- [42:30] (#t=42:30) What’s a cool aspect of Effect that is often overlooked? --- [45:47] (#t=45:47) Building a web server with this. --- [EffectTS RPC] (https://github.com/Effect-TS/rpc) . --- [48:16] (#t=48:16) Will this ever get <a href= "https://www.npmjs.com/package/bluebird">“Bluebirded”</a>? --- [50:29] (#t=50:29) What about promises? --- [Zio World] (https://www.zioworld.com/) --- [52:19] (#t=52:19) Sick Picks + Shameless Plugs. <a id="Sick_Picks_30"></a>Sick Picks --- Johannes: [Open Telemetry] (https://opentelemetry.io/) , [Sentry Open Telemetry] (https://sentry.io/for/opentelemetry/) . <a id="Shameless_Plugs_34"></a>Shameless Plugs --- Johannes: <a href= "https://www.localfirst.fm/">localfirst.fm</a>. <a id="Hit_us_up_on_Socials_38"></a>Hit us up on Socials! Syntax: [X] (https://twitter.com/syntaxfm) <a href= "https://www.instagram.com/syntax_fm/">Instagram</a> <a href= "https://www.tiktok.com/@syntaxfm">Tiktok</a> <a href= "https://www.linkedin.com/company/96077407/admin/feed/posts/">LinkedIn</a> [Threads] (https://www.threads.net/@syntax_fm) Wes: [X] (https://twitter.com/wesbos) <a href= "https://www.instagram.com/wesbos/">Instagram</a> <a href= "https://www.tiktok.com/@wesbos">Tiktok</a> <a href= "https://www.linkedin.com/in/wesbos/">LinkedIn</a> <a href= "https://www.threads.net/@wesbos">Threads</a> Scott: [X] (https://twitter.com/stolinski) <a href= "https://www.instagram.com/stolinski/">Instagram</a> <a href= "https://www.tiktok.com/@stolinski">Tiktok</a> <a href= "https://www.linkedin.com/in/stolinski/">LinkedIn</a> <a href= "https://www.threads.net/@stolinski">Threads</a> Randy: [X] (https://twitter.com/randyrektor) <a href= "https://www.instagram.com/randyrektor/">Instagram</a> <a href= "https://www.youtube.com/@randyrektor">YouTube</a> <a href= "https://www.threads.net/@randyrektor">Threads</a> ... Read more

10 May 2024

56 MINS

56:23

10 May 2024


#768

766: React Server Components: Form Actions + Server Actions

Scott and Wes are here to guide you through the world of React Server Components, shedding light on the intricacies of Form Actions and Server Actions. Get ready to level up your React skills as they discuss the ins and outs of these powerful features and share their expert advice on optimizing your applications. <a id= "Show_Notes_2"></a>Show Notes --- [00:00] (#t=00:00) Welcome to Syntax! --- [Show 718 React Server Components] (https://syntax.fm/show/718/react-server-components) . --- [02:04] (#t=02:04) Brought to you by [Sentry.io] (https://sentry.io/syntax) . --- [03:04] (#t=03:04) What are form actions? --- [GitHub Add React.useActionState PR] (https://github.com/facebook/react/pull/28491) --- [04:05] (#t=04:05) Almost entirely React. --- [04:31] (#t=04:31) What is the ‘server’ in Vanilla React? --- [06:10] (#t=06:10) Would React ever ship their own server? --- [07:29] (#t=07:29) What are actions? --- [08:34] (#t=08:34) Two huge benefits to actions. ------ [08:45] (#t=08:45) Avoid custom useEffects or third party libraries. ------ [09:17] (#t=09:17) Calling server code from the client without any APIS. --- [11:31] (#t=11:31) Some examples of actions. --- [12:54] (#t=12:54) Can these actions be done in a client component? --- [13:40] (#t=13:40) Where to use actions. ------ [13:49] (#t=13:49) On a form submit. ------ [15:30] (#t=15:30) In an event handler. ------ [15:57] (#t=15:57) In a useEffect(). --- [17:13] (#t=17:13) How to actually use an action. --- [React Hooks] (https://react.dev/reference/react-dom/hooks) ------ [17:30] (#t=17:30) <a href= "https://react.dev/reference/react/useActionState">useActionState() hook</a>. --------- [18:49] (#t=18:49) The state of the action. --------- [19:35] (#t=19:35) The bound action. --------- [19:46] (#t=19:46) The pending state. ------ [23:16] (#t=23:16) <a href= "https://react.dev/reference/react-dom/hooks/useFormStatus">useFormStatus() hook</a>. --- [24:38] (#t=24:38) Action inputs. --- [26:13] (#t=26:13) Server vs client. --- [28:30] (#t=28:30) This is not PHP. --- [30:31] (#t=30:31) What is optimistic UI? ------ [33:26] (#t=33:26) <a href= "https://react.dev/reference/react/useOptimistic">useOptimistic() hook</a>. --- [37:02] (#t=37:02) Some final thoughts. --- [40:18] (#t=40:18) Sick Picks + Shameless Plugs. <a id="Sick_Picks_37"></a>Sick Picks --- Good Follows: <a href= "https://twitter.com/alexdotjs/status/1774496016294719911">Alex Katt</a>. --- Scott: [Tiny Portable Ultra-Mini Air Pump] (https://amzn.to/3Q4T3gS) . --- Wes: [AVerMedia 4k Capture Card] (https://amzn.to/3TXv847) . <a id="Hit_us_up_on_Socials_44"></a>Hit us up on Socials! Syntax: [X] (https://twitter.com/syntaxfm) <a href= "https://www.instagram.com/syntax_fm/">Instagram</a> <a href= "https://www.tiktok.com/@syntaxfm">Tiktok</a> <a href= "https://www.linkedin.com/company/96077407/admin/feed/posts/">LinkedIn</a> [Threads] (https://www.threads.net/@syntax_fm) Wes: [X] (https://twitter.com/wesbos) <a href= "https://www.instagram.com/wesbos/">Instagram</a> <a href= "https://www.tiktok.com/@wesbos">Tiktok</a> <a href= "https://www.linkedin.com/in/wesbos/">LinkedIn</a> <a href= "https://www.threads.net/@wesbos">Threads</a> Scott: [X] (https://twitter.com/stolinski) <a href= "https://www.instagram.com/stolinski/">Instagram</a> <a href= "https://www.tiktok.com/@stolinski">Tiktok</a> <a href= "https://www.linkedin.com/in/stolinski/">LinkedIn</a> <a href= "https://www.threads.net/@stolinski">Threads</a> Randy: [X] (https://twitter.com/randyrektor) <a href= "https://www.instagram.com/randyrektor/">Instagram</a> <a href= "https://www.youtube.com/@randyrektor">YouTube</a> <a href= "https://www.threads.net/@randyrektor">Threads</a> ... Read more

08 May 2024

46 MINS

46:32

08 May 2024


#767

765: JS Promises Fundamentals - Part 1

In this 3-course series, Scott and Wes serve up some JavaScript Promises treats. In part 1, they unravel the concept of promises and delve into common examples of their usage, from creating and waiting on promises, to database queries and user permissions. <a id= "Show_Notes_2"></a>Show Notes --- [00:00] (#t=00:00) Welcome to Syntax! --- [01:27] (#t=01:27) Brought to you by [Sentry.io] (https://www.sentry.io/syntax) . --- [02:32] (#t=02:32) What is a promise? --- <a href= "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise"> Promise mdn web docs</a>. --- [03:27] (#t=03:27) Common examples of promises. ------ [03:45] (#t=03:45) A fetch call to an API returns a promise. ------ [05:54] (#t=05:54) A database query or Insert command ------ [07:18] (#t=07:18) A request for user permissions. ------ [07:37] (#t=07:37) A wait function. --- [08:08] (#t=08:08) Resolve or rejecting promises. --- [09:33] (#t=09:33) Creating promises. ------ [09:46] (#t=09:46) New promise. ------ [11:09] (#t=11:09) <a href= "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/withResolvers"> Promise.withResolvers()</a>. ------ [11:37] (#t=11:37) An <a href= "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function"> async function</a>. --- [14:34] (#t=14:34) Waiting on a promise. ------ [15:09] (#t=15:09) .then(). ------ [16:50] (#t=16:50) Await. ------ [17:44] (#t=17:44) Why use one wait method over the other? <a id="Hit_us_up_on_Socials_23"></a>Hit us up on Socials! Syntax: [X] (https://twitter.com/syntaxfm) <a href= "https://www.instagram.com/syntax_fm/">Instagram</a> <a href= "https://www.tiktok.com/@syntaxfm">Tiktok</a> <a href= "https://www.linkedin.com/company/96077407/admin/feed/posts/">LinkedIn</a> [Threads] (https://www.threads.net/@syntax_fm) Wes: [X] (https://twitter.com/wesbos) <a href= "https://www.instagram.com/wesbos/">Instagram</a> <a href= "https://www.tiktok.com/@wesbos">Tiktok</a> <a href= "https://www.linkedin.com/in/wesbos/">LinkedIn</a> <a href= "https://www.threads.net/@wesbos">Threads</a> Scott: [X] (https://twitter.com/stolinski) <a href= "https://www.instagram.com/stolinski/">Instagram</a> <a href= "https://www.tiktok.com/@stolinski">Tiktok</a> <a href= "https://www.linkedin.com/in/stolinski/">LinkedIn</a> <a href= "https://www.threads.net/@stolinski">Threads</a> Randy: [X] (https://twitter.com/randyrektor) <a href= "https://www.instagram.com/randyrektor/">Instagram</a> <a href= "https://www.youtube.com/@randyrektor">YouTube</a> <a href= "https://www.threads.net/@randyrektor">Threads</a> ... Read more

06 May 2024

22 MINS

22:01

06 May 2024


#766

764: Biome JS with Emanuele Stoppa

Join Scott and Wes as they delve into the fascinating realm of Biome.JS alongside Emanuele Stoppa, the mastermind behind it all. Why is it written in Rust? Why are other tools so slow? Could Biome be the ultimate successor to ESLint or Prettier? Grab a seat at the table and find out! <a id= "Show_Notes_2"></a>Show Notes --- [00:00] (#t=00:00) Welcome to Syntax! --- [00:10] (#t=00:10) Brought to you by [Sentry.io] (https://www.sentry.io/syntax) . --- [01:49] (#t=01:49) Who is Emanuele Stoppa and what is Biome? --- [03:18] (#t=03:18) What happened to Rome? --- [05:49] (#t=05:49) Who’s paying for Biome to be developed? --- [07:28] (#t=07:28) How many people are working on Biome? --- [09:24] (#t=09:24) Why do we even need Biome? --- [11:38] (#t=11:38) Why are other tools so slow? --- [12:55] (#t=12:55) Cost of compute. --- [14:01] (#t=14:01) The cache management. --- [14:30] (#t=14:30) Why was the decision made to move to Rust? --- [16:35] (#t=16:35) The bigger the company, the pricier the compute. --- [19:49] (#t=19:49) How to get started with Biome. --- [23:08] (#t=23:08) Will Biome offer more features than Prettier? --- [24:12] (#t=24:12) <a href= "https://biomejs.dev/internals/language-support/">Language support</a>. --- [26:02] (#t=26:02) A language parser for every language? --- [27:45] (#t=27:45) Will plugins need to be written in Rust? --- [GritQL GitHub] (https://github.com/getgrit/gritql) . --- [31:25] (#t=31:25) <a href= "https://kaleidawave.github.io/posts/introducing-ezno/">Ezno, TypeScript Compiler</a>. --- [33:13] (#t=33:13) Will we ever see a new TypeScript type-checker? --- [35:38] (#t=35:38) What are your thoughts on the types proposal? --- <a href= "https://github.com/tc39/proposal-type-annotations">Proposal Type Annotations</a>. --- [38:03] (#t=38:03) What does your average day look like? --- [41:10] (#t=41:10) What is your role at Astro? --- [41:46] (#t=41:46) What other languages do you know? --- [43:22] (#t=43:22) <a href= "https://biomejs.dev/reference/configuration/#vcsclientkind">Biome VCS</a>. --- [45:14] (#t=45:14) <a href= "https://github.com/marketplace/actions/setup-biome">GitHub action setup</a>. --- [47:04] (#t=47:04) Supper Club Questions. --- [47:09] (#t=47:09) What text editor, theme and font are you using? --- [48:26] (#t=48:26) What do you do to stay up to date? --- [48:54] (#t=48:54) Sick Picks & Shameless Plugs. <a id="Sick_Picks_36"></a>Sick Picks --- Emanuele: Ripley <a href= "https://www.imdb.com/title/tt11016042/">IMDB</a>, <a href= "https://www.netflix.com/ca/title/81678765">Netflix</a>. <a id="Shameless_Plugs_40"></a>Shameless Plugs --- Emanuele: [Astro] (https://astro.build/) , <a href= "https://biomejs.dev/">BiomeJS</a>. <a id="Hit_us_up_on_Socials_44"></a>Hit us up on Socials! Syntax: [X] (https://twitter.com/syntaxfm) <a href= "https://www.instagram.com/syntax_fm/">Instagram</a> <a href= "https://www.tiktok.com/@syntaxfm">Tiktok</a> <a href= "https://www.linkedin.com/company/96077407/admin/feed/posts/">LinkedIn</a> [Threads] (https://www.threads.net/@syntax_fm) Wes: [X] (https://twitter.com/wesbos) <a href= "https://www.instagram.com/wesbos/">Instagram</a> <a href= "https://www.tiktok.com/@wesbos">Tiktok</a> <a href= "https://www.linkedin.com/in/wesbos/">LinkedIn</a> <a href= "https://www.threads.net/@wesbos">Threads</a> Scott: [X] (https://twitter.com/stolinski) <a href= "https://www.instagram.com/stolinski/">Instagram</a> <a href= "https://www.tiktok.com/@stolinski">Tiktok</a> <a href= "https://www.linkedin.com/in/stolinski/">LinkedIn</a> <a href= "https://www.threads.net/@stolinski">Threads</a> Randy: [X] (https://twitter.com/randyrektor) <a href= "https://www.instagram.com/randyrektor/">Instagram</a> <a href= "https://www.youtube.com/@randyrektor">YouTube</a> <a href= "https://www.threads.net/@randyrektor">Threads</a> ... Read more

03 May 2024

51 MINS

51:43

03 May 2024


#765

763: Web Scraping + Reverse Engineering APIs

Web scraping 101! Dive into the world of web scraping with Scott and Wes as they explore everything from tooling setup and navigating protected routes to effective data management. In this Tasty Treat episode, you’ll gain invaluable insights and techniques to scrape (almost) any website with ease. <a id= "Show_Notes_2"></a>Show Notes --- [00:00] (#t=00:00) Welcome to Syntax! --- [03:13] (#t=03:13) Brought to you by [Sentry.io] (https://sentry.io/syntax) . --- [05:00] (#t=05:00) What is scraping? --- [Socialblade] (https://socialblade.com/) . --- [08:01] (#t=08:01) Examples of past scrapers. --- [Canadian Tire] (https://www.canadiantire.ca/en.html) . --- [10:06] (#t=10:06) Cloud app downloader. --- [16:13] (#t=16:13) Other use cases. --- [16:58] (#t=16:58) Scraping 101. --- [17:28] (#t=17:28) Client Side. --- [19:08] (#t=19:08) Private API. --- [Proxyman] (https://proxyman.io/iphone-device) . --- [22:40] (#t=22:40) Server rendered. --- [23:27] (#t=23:27) Initial state. --- [24:57] (#t=24:57) What format is the data in? --- [Google Puppeteer Extension] (https://developer.chrome.com/docs/puppeteer) . --- [27:08] (#t=27:08) Working with the DOM. --- [27:12] (#t=27:12) <a href= "https://www.npmjs.com/package/linkedom">Linkedom npm package</a>. --- [29:02] (#t=29:02) <a href= "https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelectorAll"> querySelector</a> everything. --- [31:28] (#t=31:28) How to find the elements without classes. --- [34:08] (#t=34:08) Use <a href= "https://www.w3schools.com/xml/xpath_syntax.asp">XPath</a> selectors for select by word. --- [34:53] (#t=34:53) Make them as flexible as you can. Classes change! --- [35:10] (#t=35:10) AI is good at this! --- [36:26] (#t=36:26) File downloading. --- [38:20] (#t=38:20) Working with protected routes. --- [Proxyman] (https://proxyman.io/) . --- [40:41] (#t=40:41) Programatically retrieve authentication keys because they are short-lived. --- [Fetch Cookie] (https://www.npmjs.com/package/fetch-cookie) . --- [43:20] (#t=43:20) Deal-breakers. --- [Mechanical Turk] (https://en.wikipedia.org/wiki/Mechanical_Turk) . --- [44:58] (#t=44:58) What happened with Amazon? --- <a href= "https://www.wsj.com/articles/uniqlos-parent-company-bets-big-on-tiny-rfid-chips-600b124f"> Uniqlo Self-Checkout</a> --- [46:42] (#t=46:42) Wes’ portable refrigerator utopia. --- [47:25] (#t=47:25) Sick Picks & Shameless Plugs. <a id="Sick_Picks_39"></a>Sick Picks --- Scott: <a href= "https://folivora.ai/keyboardcleantool">KeyboardCleanTool</a>. --- Wes: <a href= "https://github.com/koekeishiya/yabai/wiki">Yabai</a>. <a id="Shameless_Plugs_44"></a>Shameless Plugs --- Scott: [Syntax on YouTube] (https://www.youtube.com/@syntaxfm) <a id="Hit_us_up_on_Socials_48"></a>Hit us up on Socials! Syntax: [X] (https://twitter.com/syntaxfm) <a href= "https://www.instagram.com/syntax_fm/">Instagram</a> <a href= "https://www.tiktok.com/@syntaxfm">Tiktok</a> <a href= "https://www.linkedin.com/company/96077407/admin/feed/posts/">LinkedIn</a> [Threads] (https://www.threads.net/@syntax_fm) Wes: [X] (https://twitter.com/wesbos) <a href= "https://www.instagram.com/wesbos/">Instagram</a> <a href= "https://www.tiktok.com/@wesbos">Tiktok</a> <a href= "https://www.linkedin.com/in/wesbos/">LinkedIn</a> <a href= "https://www.threads.net/@wesbos">Threads</a> Scott: [X] (https://twitter.com/stolinski) <a href= "https://www.instagram.com/stolinski/">Instagram</a> <a href= "https://www.tiktok.com/@stolinski">Tiktok</a> <a href= "https://www.linkedin.com/in/stolinski/">LinkedIn</a> <a href= "https://www.threads.net/@stolinski">Threads</a> Randy: [X] (https://twitter.com/randyrektor) <a href= "https://www.instagram.com/randyrektor/">Instagram</a> <a href= "https://www.youtube.com/@randyrektor">YouTube</a> <a href= "https://www.threads.net/@randyrektor">Threads</a> ... Read more

01 May 2024

52 MINS

52:33

01 May 2024


#764

762: What to Steal. Finding Inspiration in Web Development

Scott and Wes discuss the delicate balance of what’s acceptable to borrow or be inspired by in web development and what crosses into territory that’s off-limits. Tune in as they share personal experiences, discuss where to find ethical inspiration, and offer tips on how to effectively capture and utilize it. <a id= "Show_Notes_2"></a>Show Notes --- [00:00] (#t=00:00) Welcome to Syntax! --- [01:57] (#t=01:57) Brought to you by [Sentry.io] (https://www.sentry.io/syntax) . --- [02:26] (#t=02:26) What is okay to steal? ------ [02:57] (#t=02:57) Color palettes. ------ [03:14] (#t=03:14) Font stacks. ------ [06:26] (#t=06:26) Type scales. --------- <a href= "https://www.tiktok.com/@wesbos/video/7198565156853386502">Warp’s CSS Gradient Border</a>. --------- <a href= "https://x.com/syntaxfm/status/1775907339792490785">Sentry’s Date Picker</a>. ------ [08:52] (#t=08:52) General layout patterns. ------ [10:39] (#t=10:39) General vibes. --- [11:20] (#t=11:20) What is NOT okay to steal? ------ [11:26] (#t=11:26) Whole site designs. ------ [13:32] (#t=13:32) Taking too many things from ‘what to steal’ list. ------ [16:30] (#t=16:30) Text copy. --------- [Wes’ Parity Purchasing Power] (https://wesbos.com/parity-purchasing-power) . --- [18:48] (#t=18:48) What we’ve had stolen + how it feels. --- [21:45] (#t=21:45) Where to find inspiration. ------ [21:56] (#t=21:56) Code inspiration. --------- [CSS Scan Buttons] (https://getcssscan.com/css-buttons-examples) . --------- <a href= "https://getcssscan.com/css-box-shadow-examples?ref=beautifulbuttons-bottom"> CSS Scan Box Shadows</a>. --------- [Codrops] (https://tympanus.net/codrops/) . --------- [CodePen] (https://codepen.io/) ------ [25:18] (#t=25:18) Design inspiration. --------- [Bentro Grids] (https://bentogrids.com/) . --------- [Dribble] (https://dribbble.com/) . --------- [Site Inspire] (https://www.siteinspire.com/) . --------- [SaaS Landing Pages] (https://saaslandingpage.com/) . --------- [One Page Love] (https://onepagelove.com/) . --------- [Type Wolf] (https://www.typewolf.com/) . --------- [Mobbin] (https://mobbin.com/browse/ios/apps) . --------- [Syntax Newsletter] (https://syntax.fm/snackpack/) . --------- [Hoverstat.es] (https://www.hoverstat.es/) . --------- [Internet Gems] (https://ilovecreatives.com/internet-gems) . ------ [32:48] (#t=32:48) UX inspiration. --------- [Good UI] (https://goodui.org/) . --------- [The Component Gallery] (https://component.gallery/) . --------- [Open UI] (https://open-ui.org/) . --------- [Nicely Done] (https://nicelydone.club/) . --- [35:25] (#t=35:25) How to capture inspiration. <a id="Hit_us_up_on_Socials_44"></a>Hit us up on Socials! Syntax: [X] (https://twitter.com/syntaxfm) <a href= "https://www.instagram.com/syntax_fm/">Instagram</a> <a href= "https://www.tiktok.com/@syntaxfm">Tiktok</a> <a href= "https://www.linkedin.com/company/96077407/admin/feed/posts/">LinkedIn</a> [Threads] (https://www.threads.net/@syntax_fm) Wes: [X] (https://twitter.com/wesbos) <a href= "https://www.instagram.com/wesbos/">Instagram</a> <a href= "https://www.tiktok.com/@wesbos">Tiktok</a> <a href= "https://www.linkedin.com/in/wesbos/">LinkedIn</a> <a href= "https://www.threads.net/@wesbos">Threads</a> Scott: [X] (https://twitter.com/stolinski) <a href= "https://www.instagram.com/stolinski/">Instagram</a> <a href= "https://www.tiktok.com/@stolinski">Tiktok</a> <a href= "https://www.linkedin.com/in/stolinski/">LinkedIn</a> <a href= "https://www.threads.net/@stolinski">Threads</a> Randy: [X] (https://twitter.com/randyrektor) <a href= "https://www.instagram.com/randyrektor/">Instagram</a> <a href= "https://www.youtube.com/@randyrektor">YouTube</a> <a href= "https://www.threads.net/@randyrektor">Threads</a> ... Read more

29 Apr 2024

38 MINS

38:16

29 Apr 2024


#763

761: Cloudflare Analytics Engine, Workers + more with Ben Vinegar

Scott and Wes dive into Cloudflare’s Analytics Engine and Workers with special guest Ben Vinegar, Syntax’s General Manager. Tune in as they explore Clickhouse, data tracking, infrastructure costs, and transitioning from software products to managing a podcast. <a id= "Show_Notes_2"></a>Show Notes --- [00:00] (#t=00:00) Welcome to Syntax! --- [01:17] (#t=01:17) Who is Ben Vinegar? --- [Episode 434 with Ben] (https://syntax.fm/434) . --- [02:21] (#t=02:21) Brought to you by [Sentry.io] (https://www.sentry.io/syntax) . --- [04:00] (#t=04:00) Cloudflare analytics engine. --- [Counterscale.dev] (https://counterscale.dev/) . --- [Episode 634 with Armin] (https://syntax.fm/634) . --- [09:08] (#t=09:08) What is <a href= "https://clickhouse.com/">clickhouse</a>? --- [11:01] (#t=11:01) Can Clickhouse be used for things outside of analytics tracking? --- [13:46] (#t=13:46) What kind of events are you able to track? --- [15:00] (#t=15:00) How do you assign values to track? --- <a href= "https://github.com/benvinegar/counterscale/blob/main/app/analytics/schema.ts"> Counterscale Schema</a>. --- [18:40] (#t=18:40) Data type limitations. --- [19:55] (#t=19:55) The troubles with sampling data. --- [23:57] (#t=23:57) Sample intervals. --- [24:24] (#t=24:24) Pricing for these services. --- [25:34] (#t=25:34) How it actually runs. --- [27:31] (#t=27:31) Infrastructure costs and pricing models. --- [30:19] (#t=30:19) Running production apps in Cloudflare. --- [31:49] (#t=31:49) Cloudflare and HonoJS. --- [32:47] (#t=32:47) One year with Sentry and Ben’s role with Syntax. --- [Episode 600 with David] (https://syntax.fm/600) . --- [39:33] (#t=39:33) How does it feel going from a software project to a media project? --- [Syntax Team] (https://syntax.fm/about) . --- [43:00] (#t=43:00) How do you sell Syntax to Sentry? --- [48:37] (#t=48:37) Sick Picks & Shameless Plugs <a id="Sick_Picks_31"></a>Sick Picks --- Ben: [Randy’s YouTube] (https://www.youtube.com/@randyrektor) , [Boom] (https://www.getboom.app/) . <a id="Shameless_Plugs_35"></a>Shameless Plugs --- Ben: [Counterscale.dev] (https://counterscale.dev/) <a id="Hit_us_up_on_Socials_39"></a>Hit us up on Socials! Syntax: [X] (https://twitter.com/syntaxfm) <a href= "https://www.instagram.com/syntax_fm/">Instagram</a> <a href= "https://www.tiktok.com/@syntaxfm">Tiktok</a> <a href= "https://www.linkedin.com/company/96077407/admin/feed/posts/">LinkedIn</a> [Threads] (https://www.threads.net/@syntax_fm) Wes: [X] (https://twitter.com/wesbos) <a href= "https://www.instagram.com/wesbos/">Instagram</a> <a href= "https://www.tiktok.com/@wesbos">Tiktok</a> <a href= "https://www.linkedin.com/in/wesbos/">LinkedIn</a> <a href= "https://www.threads.net/@wesbos">Threads</a> Scott: [X] (https://twitter.com/stolinski) <a href= "https://www.instagram.com/stolinski/">Instagram</a> <a href= "https://www.tiktok.com/@stolinski">Tiktok</a> <a href= "https://www.linkedin.com/in/stolinski/">LinkedIn</a> <a href= "https://www.threads.net/@stolinski">Threads</a> Randy: [X] (https://twitter.com/randyrektor) <a href= "https://www.instagram.com/randyrektor/">Instagram</a> <a href= "https://www.youtube.com/@randyrektor">YouTube</a> <a href= "https://www.threads.net/@randyrektor">Threads</a> ... Read more

26 Apr 2024

52 MINS

52:02

26 Apr 2024


#762

760: Pro VSCode Setups

Join Scott and Wes as they dish out the juiciest VSCode secrets for coding like a boss (or a Tolinski)! From speedy navigation to must-have extensions and the sickest themes, get ready to level up your coding game. <a id= "Show_Notes_2"></a>Show Notes --- [00:00] (#t=00:00) Welcome to Syntax! --- [00:47] (#t=00:47) Brought to you by [Sentry.io] (https://www.sentry.io/syntax) . --- [01:44] (#t=01:44) A recording bug. --- [03:18] (#t=03:18) VSCode versions. --- [05:59] (#t=05:59) Tabs or no tabs. --- [10:32] (#t=10:32) Navigation tips. --- [11:35] (#t=11:35) Mouse and trackpad input. --- [13:43] (#t=13:43) Move, select and expand by --- [19:07] (#t=19:07) Interface tips. --- [19:17] (#t=19:17) Sidebars. --- [24:23] (#t=24:23) Sticky headers. --- [26:21] (#t=26:21) Activity bar. --- [30:30] (#t=30:30) Show or hide? --- [31:35] (#t=31:35) Profiles. --- [32:43] (#t=32:43) Keyboard Shortcuts. --- [32:49] (#t=32:49) Renaming. --- [34:32] (#t=34:32) Extensions. ------ [34:45] (#t=34:45) <a href= "https://marketplace.visualstudio.com/items?itemName=jkjustjoshing.vscode-text-pastry"> Text pastry</a>. ------ [36:43] (#t=36:43) <a href= "https://marketplace.visualstudio.com/items?itemName=aaron-bond.better-comments"> Better comments</a>. ------ [39:03] (#t=39:03) <a href= "https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-rename-tag"> Auto rename tag</a>. ------ [40:02] (#t=40:02) <a href= "https://marketplace.visualstudio.com/items?itemName=wmaurer.change-case"> Change case</a>. ------ [40:25] (#t=40:25) <a href= "https://marketplace.visualstudio.com/items?itemName=earshinov.permute-lines"> Permute lines</a>. ------ [41:26] (#t=41:26) <a href= "https://marketplace.visualstudio.com/items?itemName=sleistner.vscode-fileutils"> File utils</a>. ------ [43:20] (#t=43:20) <a href= "https://marketplace.visualstudio.com/items?itemName=richie5um2.vscode-sort-json"> Sort JSON objects</a>. ------ [43:50] (#t=43:50) <a href= "https://marketplace.visualstudio.com/items?itemName=qwtel.sqlite-viewer"> SQLite viewer</a>. ------ [44:29] (#t=44:29) <a href= "https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker"> Spell checker</a>. ------ [45:42] (#t=45:42) <a href= "https://marketplace.visualstudio.com/items?itemName=drcika.apc-extension"> APC</a>. --- [49:19] (#t=49:19) Themes. --- <a href= "https://marketplace.visualstudio.com/items?itemName=SyntaxFM.syntaxfm"> Syntax Theme</a> --- [53:05] (#t=53:05) Final tricks. --- <a href= "https://marketplace.visualstudio.com/items?itemName=WooodHead.vscode-wrap-console-log-simple"> Log Wrapper</a> --- [57:44] (#t=57:44) What about the AI stuff? --- [01:00:10] (#t=01:00:10) Sick Picks & Shameless Plugs. <a id="Sick_Picks_38"></a>Sick Picks --- Scott: [Flicker Free Ultra Definition Phillips Bulbs] (https://amzn.to/3TL1SNY) . --- Wes: <a href= "https://www.amazon.ca/IRIS-USA-Inc-CNL-5-Storage/dp/B07DFBSTFR">Clear Shoe Box Organizers</a>. <a id="Shameless_Plugs_43"></a>Shameless Plugs --- Scott: [Syntax Newsletter] (https://syntax.fm/snackpack) . <a id="Hit_us_up_on_Socials_47"></a>Hit us up on Socials! Syntax: [X] (https://twitter.com/syntaxfm) <a href= "https://www.instagram.com/syntax_fm/">Instagram</a> <a href= "https://www.tiktok.com/@syntaxfm">Tiktok</a> <a href= "https://www.linkedin.com/company/96077407/admin/feed/posts/">LinkedIn</a> [Threads] (https://www.threads.net/@syntax_fm) Wes: [X] (https://twitter.com/wesbos) <a href= "https://www.instagram.com/wesbos/">Instagram</a> <a href= "https://www.tiktok.com/@wesbos">Tiktok</a> <a href= "https://www.linkedin.com/in/wesbos/">LinkedIn</a> <a href= "https://www.threads.net/@wesbos">Threads</a> Scott: [X] (https://twitter.com/stolinski) <a href= "https://www.instagram.com/stolinski/">Instagram</a> <a href= "https://www.tiktok.com/@stolinski">Tiktok</a> <a href= "https://www.linkedin.com/in/stolinski/">LinkedIn</a> <a href= "https://www.threads.net/@stolinski">Threads</a> Randy: [X] (https://twitter.com/randyrektor) <a href= "https://www.instagram.com/randyrektor/">Instagram</a> <a href= "https://www.youtube.com/@randyrektor">YouTube</a> <a href= "https://www.threads.net/@randyrektor">Threads</a> ... Read more

24 Apr 2024

1 HR 05 MINS

1:05:36

24 Apr 2024


#761

759: How to Easily Explore Coding Ideas

Scott and Wes serve up top tools and tricks for rapid idea execution, from JavaScript services like Valtown and Observable to database solutions including LowDB and Google Sheets integration. Get ready to streamline your development ideation process with these tasty insights! <a id= "Show_Notes_2"></a>Show Notes --- [00:00] (#t=00:00) Welcome to Syntax! --- [02:16] (#t=02:16) Brought to you by [Sentry.io] (https://www.sentry.io/syntax) . --- [03:14] (#t=03:14) JavaScript Services. ------ [03:43] (#t=03:43) <a href= "https://www.val.town/">Valtown</a>. ------ [05:44] (#t=05:44) <a href= "https://observablehq.com/">Observable</a>. ------ [06:35] (#t=06:35) <a href= "https://jbook.qiushiyan.dev/">Notebooks</a>. ------ [08:23] (#t=08:23) <a href= "https://docs.deno.com/runtime/manual/tools/jupyter">Deno Juypter Notebooks</a>. ------ [09:51] (#t=09:51) <a href= "https://svelte.dev/repl/hello-world?version=4.2.15">Svelte Repl</a>. ------ [10:32] (#t=10:32) Playgrounds: TypeScript, Tailwind, etc… --- [11:05] (#t=11:05) CSS Services. ------ [11:10] (#t=11:10) <a href= "https://codepen.io/">CodePen</a>. --- [13:14] (#t=13:14) Full stack services. --- [13:47] (#t=13:47) Your own stack. Hot Tips & Cool Treats. ------ [Wes’s Hot Tips] (https://github.com/wesbos/hot-tips/) . ------ [Scott’s Cool Treats] (https://github.com/stolinski/cool-treats) . ------ [21:01] (#t=21:01) <a href= "https://bun.sh/docs/api/file-system-router">Bun file routing</a>. ------ [24:25] (#t=24:25) Tooling and tips. --- [26:30] (#t=26:30) Database. ------ [26:51] (#t=26:51) Write to a file. ------ [27:40] (#t=27:40) <a href= "https://github.com/typicode/lowdb">LowDB</a>. ------ [29:00] (#t=29:00) <a href= "https://orm.drizzle.team/docs/get-started-sqlite">SQLite + Drizzle</a>. ------ [29:40] (#t=29:40) Google Sheets. ------ [30:06] (#t=30:06) <a href= "https://sheetdb.io/">Sheet DB</a>. <a id="Hit_us_up_on_Socials_28"></a>Hit us up on Socials! Syntax: [X] (https://twitter.com/syntaxfm) <a href= "https://www.instagram.com/syntax_fm/">Instagram</a> <a href= "https://www.tiktok.com/@syntaxfm">Tiktok</a> <a href= "https://www.linkedin.com/company/96077407/admin/feed/posts/">LinkedIn</a> [Threads] (https://www.threads.net/@syntax_fm) Wes: [X] (https://twitter.com/wesbos) <a href= "https://www.instagram.com/wesbos/">Instagram</a> <a href= "https://www.tiktok.com/@wesbos">Tiktok</a> <a href= "https://www.linkedin.com/in/wesbos/">LinkedIn</a> <a href= "https://www.threads.net/@wesbos">Threads</a> Scott: [X] (https://twitter.com/stolinski) <a href= "https://www.instagram.com/stolinski/">Instagram</a> <a href= "https://www.tiktok.com/@stolinski">Tiktok</a> <a href= "https://www.linkedin.com/in/stolinski/">LinkedIn</a> <a href= "https://www.threads.net/@stolinski">Threads</a> Randy: [X] (https://twitter.com/randyrektor) <a href= "https://www.instagram.com/randyrektor/">Instagram</a> <a href= "https://www.youtube.com/@randyrektor">YouTube</a> <a href= "https://www.threads.net/@randyrektor">Threads</a> ... Read more

22 Apr 2024

31 MINS

31:38

22 Apr 2024