106: Sam Selikoff - Single Page Application Architecture
Episode
55 min
Read time
2 min
Topics
Productivity, Leadership, Design & UX
AI-Generated Summary
Key Takeaways
- ✓Client-side data normalization: Build an identity map that stores normalized data locally, rendering all UI from this cache rather than individual API responses. This prevents duplicate data and keeps UI synchronized across components automatically.
- ✓Optimistic UI patterns: Create records in the local data store immediately without waiting for server confirmation, displaying them at 50% opacity or similar states until persisted. Handle the 0.1% failure cases separately rather than making users wait every time.
- ✓Offline-first architecture: Queue network requests in local storage or IndexedDB when offline, allowing users to continue working. Sync queued operations when connectivity returns, treating the client cache as source of truth that eventually syncs with server.
- ✓Desktop app mental model: Think of SPAs as native applications using the browser as runtime, not websites. This shifts complexity from maintaining two codebases to building one rich client with a commoditized backend API layer handling only data persistence.
What It Covers
Sam Selikoff explains how to architect single-page applications by treating them as desktop apps that happen to run in browsers, focusing on client-side data management and keeping backend APIs minimal.
Key Questions Answered
- •Client-side data normalization: Build an identity map that stores normalized data locally, rendering all UI from this cache rather than individual API responses. This prevents duplicate data and keeps UI synchronized across components automatically.
- •Optimistic UI patterns: Create records in the local data store immediately without waiting for server confirmation, displaying them at 50% opacity or similar states until persisted. Handle the 0.1% failure cases separately rather than making users wait every time.
- •Offline-first architecture: Queue network requests in local storage or IndexedDB when offline, allowing users to continue working. Sync queued operations when connectivity returns, treating the client cache as source of truth that eventually syncs with server.
- •Desktop app mental model: Think of SPAs as native applications using the browser as runtime, not websites. This shifts complexity from maintaining two codebases to building one rich client with a commoditized backend API layer handling only data persistence.
Notable Moment
Selikoff describes using Mirage to build entire features and write tests against simulated server states without touching the network, defining what the backend needs to change before writing any API code, reducing backend work to 5% of development effort.
You just read a 3-minute summary of a 52-minute episode.
Get Full Stack Radio summarized like this every Monday — plus up to 2 more podcasts, free.
Pick Your Podcasts — FreeKeep Reading
More from Full Stack Radio
153: DHH – Omarchy and Designing Your Own OS on Arch Linux
Aug 21 · 76 min
Eye on AI
#320 Carter Huffman: Exploring The Architecture Behind Modulate's Next-Gen Voice AI
Feb 11
More from Full Stack Radio
152: Ben Orenstein - How to Stand Out When Applying for a Job at a Small Company
Jan 28 · 47 min
The Jordan Harbinger Show
1334: Justin Garcia | Why We Live, Cheat, Break, and Die for Love
May 28
Books, tools, and gear mentioned in this episode
SignalCast may earn commission on purchases via these links.
Tools
- MirageRecommended
“Selikoff describes using Mirage to build entire features and write tests against simulated server states without touching the network, defining what the backend needs to change before writing any API code.”
More from Full Stack Radio
We summarize every new episode. Want them in your inbox?
153: DHH – Omarchy and Designing Your Own OS on Arch Linux
152: Ben Orenstein - How to Stand Out When Applying for a Job at a Small Company
151: DHH – Building HEY with Hotwire
150: Secret Screencasting Tips & Behind the Scenes of Tailwind CSS 2.0
149: Choosing a Payment Processor, Radical Icons & W3C Hype
Similar Episodes
Related episodes from other podcasts
Eye on AI
Feb 11
#320 Carter Huffman: Exploring The Architecture Behind Modulate's Next-Gen Voice AI
The Jordan Harbinger Show
May 28
1334: Justin Garcia | Why We Live, Cheat, Break, and Die for Love
Software Engineering Daily
May 12
Vespa AI and Surpassing the Limits of Vector Search
Software Engineering Daily
May 5
SmartBear and Multi-Agent QA
Syntax
Mar 18
988: Cloudflare’s Next.js Slop Fork
Explore Related Topics
This podcast is featured in Best Cybersecurity Podcasts (2026) — ranked and reviewed with AI summaries.
You're clearly into Full Stack Radio.
Every Monday, we deliver AI summaries of the latest episodes from Full Stack Radio and 192+ other podcasts. Free for one show.
Start My Monday DigestNo credit card · Unsubscribe anytime