- Challenging Established Norms: Making Component Fetching the Exception
- Be the browser’s mentor, not its micromanager
- The ideal viewport doesn’t exist
- My thoughts on open-source
- Social RSS
- The fediverse and the indieweb
- Blogging as DRY
- Everything You Can Test In Your Laravel Application
- Dear Open Source: let’s do a better job of asking for money
- Don't make me think, or why I switched to Rails from JavaScript SPAs
- Generating income from open source
- Client-side JavaScript and React criticism: What comes next?
- Fast and maintainable patterns for fetching from a database
- A Theory of Web Relativity
- Streaming: is it worth it?
- Prioritise content over components
- Overcoming Popular Issues With React Projects
- 💿 remix simplifies things
- Progressively enhance for a more resilient web
- Get in Zoomer, We're Saving React
- What if your Index Page was Smart?
- Building websites for Safari Reader Mode and other reading apps
- How to Section Your HTML
- Block Links: The Search for a Perfect Solution
- Debug your server-side Remix code using VSCode
- RSS
- Device-Agnostic
- Using rel=preload for responsive images
- How to avoid layout shifts caused by web fonts
- “Guys, we’re doing pagination wrong…”
- Why Remix doesn’t infer types from loaders for useLoaderData
- Survivorship Bias in Web Performance
- The "best" way to manage icons in React.js
- Live validation is problematic
- Stop building client-side forms
- Why Decentralization Isn't as Important as You Think
- When You Stop Counting
- Why I Quit Google to Work for Myself
- Don’t Build A General Purpose API To Power Your Own Front End
- Why You Should Never Use MongoDB
- A Case For Use Cases
- People read on the web
- Why we use progressive enhancement to build GOV.UK
- Building a resilient frontend using progressive enhancement
- I Want To Confirm a Prompt That We Stay Alert
- Browsers and Representation
- Google vs. the web
- Back to the Bad Old Days of the Web
- The Mythical Document Web
- Breaking the web forward
- Back to the Future with RSS
- Client-Side Architecture Basics
- Organizing App Logic with the Clean Architecture
- Implementing DTOs, Mappers & the Repository Pattern
- Screaming Architecture
- Better Software Design with Application Layer Use Cases
- Anemic Domain Model
- Value Objects - DDD w/ TypeScript
- iOS 15, Humane
- Don't overabstract your components
- Meta Theme Color and Trickery
- Imagining native skip links
- Rails design patterns - The big picture
- Before You memo()
- Implement a Skip Link for Navigation-Heavy Sites
- Meaningful Motion with Action-Driven Animation
- An Interactive Guide to CSS Transitions
- Preload: What Is It Good For?
- The unreasonable effectiveness of simple HTML
- Open Peeps
- System Design 101
- A primer on investing for designers and developers
- In Critical Defense of Frontend Develop
- Be Wary of Nesting Roles
- Accessible SVGs
- dotCSS 2019 - Sarah Dayan - In Defense of Utility-First CSS
- Alt-texts: The Ultimate Guide
- Polymorphic React Components in TypeScript
- CSS and Scalability
- The UI & UX Tips Collection: Volume One.
- Practical React Query
- Don't design for mobile
- Stop Using “Drop-down”
- Decoupling, Architecture and Teams
- The Lava Layer Anti-Pattern
- UI as an afterthought
- In 2020, what is "frontend" 🤨
- How React Query gives you almost everything you thought you needed GraphQL for
- Wormhole state management
- Todo el software está roto
- What is the Value of Browser Diversity?
- Margins and Composability in CSS
- Nailing Your First (Info-Product) Launch
- Defining Component APIs in React
- The Modern Front-End Design System Stack
- Building the New facebook.com with React, GraphQL and Relay
- Architecting UIs for Change
- When frontend means full stack
- Building a Button Part 2: Hover Interactions
- Building a Button Part 1: Press Events