767

May 10th, 2024 × #local-first#music#typescript

Local First and TypeScript’s Missing Library with Johannes Schickling

Johannes Schickling discusses Overtone, a local first music app built on Spotify/Apple Music, and Effect, a library for more structured and reusable TypeScript code.

or

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.

Show Notes

  • 00:00 Welcome to Syntax!
  • 01:10 Brought to you by Sentry.io.
  • 01:28 What is Overtone?
  • 03:45 Can you explain the experience you're trying to achieve?
  • 06:43 What makes the best music app? Is it local first?
  • 08:03 Is it best to create a local first app from the ground up?
  • 10:31 What are the considerations when making a local first app?
  • 13:04 What database are you using?
  • Riffle.
  • 16:12 How do you handle authentication?
  • 19:15 Pick the tech based on the problem.
  • 20:40 WASM for Non-JS or heavy lifting tasks.
  • 24:39 How did you get SQLite running in the browser?
  • 27:58 What about WA-SQLite, how does it compare to Riffle?
  • TLDraw Make-real.
  • 29:24 The backstory of Effect for TypeScript.
  • 34:04 What actually is Effect?
  • 39:32 Consolidating tools.
  • 42:30 What's a cool aspect of Effect that is often overlooked?
  • 45:47 Building a web server with this.
  • EffectTS RPC.
  • 48:16 Will this ever get "Bluebirded"?
  • 50:29 What about promises?
  • Zio World
  • 52:19 Sick Picks + Shameless Plugs.

Sick Picks

Shameless Plugs

Hit us up on Socials!

Syntax: X Instagram Tiktok LinkedIn Threads

Wes: X Instagram Tiktok LinkedIn Threads

Scott:X Instagram Tiktok LinkedIn Threads

Randy: X Instagram YouTube Threads

Share

Play / pause the audio
Minimize / expand the player
Mute / unmute the audio
Seek backward 30 seconds
Seek forward 30 seconds
Increase playback rate
Decrease playback rate
Show / hide this window