Syntax - Tasty Web Development Treats
Syntax - Tasty Web Development Treats

Use The Platform!

In this episode of Syntax, Wes and Scott talk about the benefits of sticking to the web platform that is available to you through APIs you may not know about. Prismic - Sponsor Prismic is a Headless CMS that makes it easy to build website pages as a set of components. Break pages into sections of co

Featured Speakers

Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers Host

Topics Discussed

Episode Summary

Executive Summary: This episode argues for “using the platform”: leaning on built-in web APIs and standards instead of defaulting to frameworks or libraries. Wes and Scott tour practical browser and HTML/CSS primitives—URL/search params, history, Intl, FormData, DOM, storage, animations, sharing, Web Components, CSS variables, grid/flexbox, lazy loading, details/summary, progress, and dialog—while noting where frameworks simply wrap these capabilities.

Main Topics: Use the platform instead of extra abstraction: The hosts frame the episode around the idea that many common web tasks can be solved directly with browser and HTML/CSS APIs, often more simply than with a framework or dependency. URL search params and history API: They explain how query strings can store shareable app state and how pushState/replaceState enable client-side routing without hashes or heavy router abstractions. Built-in browser APIs for content and data handling: Intl, FormData, DOM manipulation, localStorage/IndexedDB, Web Animations, and the Share API are discussed as powerful native tools that often remove the need for libraries. Web Components and Shadow DOM: They debate custom elements and encapsulated styling as true platform primitives that can improve portability across frameworks, even if they are less ergonomic than some framework components. Modern CSS and HTML primitives: CSS variables, Grid, Flexbox, lazy loading, details/summary, progress, preload, and dialog are highlighted as native capabilities that have replaced older library patterns. Tooling, sponsorships, and practical workflow: The episode includes sponsor reads and personal anecdotes, but these also reinforce the show’s broader message: modern tooling should expose platform capabilities rather than obscure them.

Key Arguments: Many “framework features” are actually native web APIs underneath, so learning the platform reduces complexity and makes frameworks feel less mysterious. URL search params are an effective state-management mechanism because the state lives in the URL and is therefore shareable and bookmarkable. The History API made hash-based routing obsolete for most use cases by allowing URL changes without full page reloads. Intl can handle locale-aware formatting for currencies, lists, and numbers better than ad hoc string manipulation. FormData is the right native abstraction for turning forms into structured key-value data, but TypeScript support is still awkward because it lacks a useful generic type. The DOM API is extremely capable for creating, inserting, traversing, and modifying elements, making jQuery unnecessary for most modern work. LocalStorage is usually enough for simple browser persistence, while IndexedDB is more powerful but much more cumbersome. Web Animations, Web Share, and Web Components are useful platform tools, but often have rougher ergonomics than framework alternatives. CSS variables are reactive and ideal for theming and dark mode, while Grid and Flexbox largely eliminate the need for layout frameworks. Several HTML elements and attributes—lazy loading, details/summary, progress, and dialog—provide native UX patterns without needing JavaScript-heavy custom implementations.

Data Points: URL search params support: Well-supported in essentially every browser - Used as a native way to store shareable state in the URL History API origin: Part of HTML5 / available since early Chrome - Discussed as a long-standing primitive for client-side routing IE support for lazy loading: Everything except IE11 and earlier - Native loading="lazy" attribute for images/iframes Local storage data type: Strings only - Mentioned as a limitation that requires JSON.stringify/parse for objects IndexedDB capability: More complex key-value storage - Presented as more powerful than localStorage but harder to use Web Share API support: Iffy on desktop, strong on mobile - Used to explain why many apps provide custom share UIs on desktop Cable sleeve purchase: $13 for a 25-foot roll - Wes’s sick pick for organizing cables at his desk Kindling splitter price: $25 - Scott’s sick pick for splitting kindling at the cottage Sanity sponsor offer: Double the free usage tier - Promo for Sanity via sanity.io/syntax LogRocket sponsor offer: 14 days free - Promo for LogRocket via logrocket.com/syntax

Pivotal Quotes: "You might not need a framework for this episode." — Scott/Wes (intro framing): Sets up the episode’s core thesis: native platform APIs can replace many framework use cases. "The URL, it is the OG state management library out there because it literally just lives in the URL." — Wes: Explaining why query strings are a powerful way to store and share UI state. "CSS variables have really improved my CSS in a way that nothing else has." — Scott: Describing the impact of native CSS custom properties on theming and maintainable styles.

Implications: For developers, the episode encourages deeper browser literacy and less dependency on libraries for routine problems. For the industry, it signals a shift toward framework ergonomics built directly on web standards rather than abstraction over them.

🔓 Sign Up for Unlimited Episode Search

About Syntax - Tasty Web Development Treats

View all episodes from Syntax - Tasty Web Development Treats