Modern Browser APIs Front-End Developers Should Actually Use
Courtney Yatteau · TechBash 2026
Modern browsers can handle many interface behaviors that front-end developers still reach for JavaScript to build themselves. This repo contains the demos from the talk, focused on letting the platform own more generic UI behavior while keeping JavaScript focused on application-specific work.
- P - Pause before reaching for JavaScript
- A - Ask what HTML and CSS can already do
- U - Use the browser platform
- S - Study support and progressive enhancement
- E - Employ JavaScript where it adds real value
The recurring question throughout the talk is:
Do I actually need JavaScript for this?
- Native
<dialog> - Invoker Commands with
commandandcommandfor - Popover API
- Native form validation
- View Transitions
- Progressive enhancement and browser-support decisions
- When JavaScript is still the right tool
The City Explorer demos use an ArcGIS map as an example of JavaScript doing specialized work that should stay, while the surrounding UI gets simpler.
Each demo is a standalone HTML file with its CSS and JavaScript inlined. There is no npm install or build step.
00-start.html— custom JavaScript modal01-dialog.html— native<dialog>02-commands.html— Invoker Commands03-popover.html— Popover API + category filtering04-transitions.html— abrupt selected-place state change05-complete.html— same state change with View Transitions
00-custom.html— custom JavaScript validation01-native.html— native HTML validation
The form demos can be opened directly in a browser.
The City Explorer demos use the ArcGIS Maps SDK for JavaScript and require an ArcGIS API key for the basemap. The public files intentionally contain this placeholder:
YOUR_FRESH_RESTRICTED_ARCGIS_API_KEY
Replace that value in your local copy with your own appropriately restricted API key before running the map demos.
For the smoothest local setup, serve the repo with a small local web server instead of opening the files with file://:
python -m http.server 8080Then open the demo you want from http://localhost:8080/.
Platform first. JavaScript on purpose.
Use JavaScript for what it adds, not for what the browser already gives you.
Courtney Yatteau
Developer Advocate, Esri
GitHub: @cyatteau