Frontend Dogma

News and Tools for Frontend Developers

Articles and videos and books, people and projects and processes, tools and tips and tricks from the world of frontend development. Also suitable for web and full-stack developers.

(Stay up-to-date on all topics by RSS feed, on Mastodon, and through other channels.)

  1. A Link on a Logo in the Header, What Should the Alt-Text Be? (by/via) · · , , , , ,
  2. How to Join Blue Beanie Day: Wear and Share (by) · · , ,
  3. If Not React, Then What? (by) · · , , , ,
  4. Why Pipes Sometimes Get “Stuck”: Buffering (by) · · ,
  5. A Quick Snapshot of the Microblogging Landscape (by) · · , , , , ,
  6. Observation: CSS Math Eval (by) · · , ,
  7. Decoupling OKRs: It’s Time to Let Go (by) · · , , ,
  8. How to Cut Water Usage in Cloud Data Centers (by/via) · · ,
  9. The Hype Around Signals (by/via) · · , ,
  10. Which IDEs Do Software Engineers Love, and Why? (by) · · , ,
  11. Designing (and Evolving) a New Web Performance Score (by) · · ,
  12. X’s Objection to the Onion Buying Infowars Is a Reminder You Do Not Own Your Social Media Accounts (by/via) · · ,
  13. Automated Decision Logs in AI-Assisted Coding (by) · · ,
  14. How I Feel About AI (by) · · , , , ,
  15. A Framework for Evaluating Browser Support (by) · · , , ,
  16. Agile Is Dead · · , , , , ,
  17. Deno vs. Oracle: Canceling the JavaScript Trademark (by/via) · · , ,
  18. What Causes “Bad Days” for Developers? (by) · · , ,
  19. Old Alt Text Advice (by) · · , , , , ,
  20. The PHP Foundation Turns Three (by/via) · · ,
  21. Doing the Numbers: Digital Accessibility and Shifting Left (via) · · , , ,
  22. What’s Next for WebGPU (by/via) · ·
  23. CSS Selectors: Unlocking Advanced Selectors for Modern Web Design (by) · · ,
  24. Tailwind CSS v4.0 Beta 1 (by/via) · ·
  25. Why We Need to Have a Change of HEART With UX Metrics (by/via) · · , ,
  26. Exploring Alternative Interactions in JavaScript (by/via) · · , , ,
  27. I Don’t Have Time to Learn React (by) · · , , ,
  28. Avoid Read-Only Controls (by) · · , ,
  29. An Outline Version of the New CSS Logo (by) · ·
  30. React.js Best Practices for Beginners: A Comprehensive Guide (via) · · , , , , , ,
  31. What We Learned Migrating From Webpack to Vite (via) · · , , ,
  32. Static Site Generation With Next.js: Using Next.js for React.js Applications (via) · · , ,
  33. My 3 Most-Wanted CSS Table Features (by) · · , , ,
  34. So You Decided to Do a Technical Migration (by/via) · · , ,
  35. How to Use Lighthouse Wisely in Your Front-End Projects (by/via) · · , , , , , , ,
  36. The CSS Reset Contradiction (by/via) · · ,
  37. WP Engine Updates Its Original Legal Complaint Against Automattic and Matt Mullenweg (by/via) · · , , ,
  38. Make Creative Borders With “background-clip: border-area” (by/via) · · , , , , ,
  39. Avoiding False Positives in Node.js Tests (via) · · ,
  40. How to Prerelease an npm Package (by/via) · · , , , ,
  41. Why WASM: Quickstart (by) · ·
  42. Migrating From VuePress to VitePress (by) · · , ,
  43. AI’s Transformative Impact on Web Design: Supercharging Productivity Across the Industry (by/via) · · , , ,
  44. Meet Angular v19 (by/via) · · ,
  45. Node.js Corepack: Version Control for Package Managers (by) · · , , ,
  46. State of JavaScript 2024 (by/via) · · ,
  47. Web Accessibility and the Second Trump Administration (via) · · ,
  48. Addressing Users’ Painpoints: Best Practices for Identifying and Solving UX Design Problems (by/via) · · , , , ,
  49. Why Responsive Design Is Failing Modern Users (via) · · , , ,
  50. No Fuss Light/Dark Modes (by/via) · · ,
  51. AWS Lambda Turns Ten—Looking Back and Looking Ahead (by/via) · · , , ,
  52. The Root Causes for the Dev–Design Mismatch (by/via) · · , ,
  53. CSS Gets a New Logo: And It Uses the Color “rebeccapurple” (by) · ·
  54. The Art of Clean Code: A Practical Guide to Writing Maintainable JavaScript · · , , ,
  55. Some Tips for Keyboard Support on Native Mobile Applications (by) · · , , , ,
  56. What Is User Experience (and What Is It Not)? (by/via) · · , ,
  57. When Is the Right Time to Share Our Excitement About New Web Features? (by) · · , ,
  58. Alt Text: Not Always Needed (by/via) · · , ,
  59. Self-Contained Executable Programs With Deno Compile (by+/via) · · , , ,
  60. Adding Interactive Charts in Astro · · , ,
  61. State of HTML 2024 [Results] (by/via) · · ,
  62. Reimagining Prototyping With AI (by/via) · · , , ,
  63. 1 + 2 Engineering Team Priorities (by) · · , , ,
  64. View Transitions API: Single Page Apps Without a Framework (by/via) · · , , ,
  65. Modern CSS for Sites: View Transitions, Scroll Effects, and More (by/via) · · , , , ,
  66. The European Accessibility Act—Get Ready (via) · · ,
  67. Learn Big O Notation Once and for All · · , ,
  68. Cookie Permissions: 5 Common User Types (by/via) · · , , , ,
  69. Accessibility Misinformation (by) · · , ,
  70. An Official Logo for CSS (by) · ·
  71. Why Developers Should Give Next.js App Router Another Chance (by/via) · · ,
  72. The “br” Element (by) · · ,
  73. Understanding Bitwise Shifts in JavaScript: “<<” and “>>” (by) · · ,
  74. What Accessibility Statements Are Really For (by) · · ,
  75. Overflow Clip (by) · ·
  76. How to Optimize Performance in Vue Apps (by/via) · · , , ,
  77. Color in CSS or How I Learned to Disrespect Tennis (by/via) · · , , ,
  78. Carving Your Space (by) · · ,
  79. A CSS Logo Hatches! (by) · · ,
  80. Angular Best Practices (by) · · , ,
  81. The Art in Everyday Life (by) · · ,
  82. Automattic Launches “WP Engine Tracker” to Monitor Sites Leaving WP Engine, Sparking Controversy (by/via) · · ,
  83. Why I Will Always Be Angry About Software Engineering (by) · · ,
  84. (Up-)Scoped Scroll Timelines (by/via) · · , ,
  85. Are AI Assistants Making Us Worse Programmers? (by) · · , , , ,
  86. CDN (via) · · , , , ,
  87. Implementing Astro Search Functionality · · , ,
  88. Don’t Forget to Localize Your Icons (by) · · , , ,
  89. Jamstack (by/via) · · , , , , ,
  90. Accessibility (by/via) · · , , , ,
  91. Ecommerce (via) · · , , , ,
  92. Security (by+/via) · · , , , ,
  93. Structured Data (by/via) · · , , , , ,
  94. Sustainability (by+/via) · · , , , ,
  95. Performance (by+/via) · · , , , ,
  96. CMS (by+/via) · · , , , ,
  97. Fonts (by/via) · · , , , ,
  98. Cookies (by/via) · · , , , ,
  99. Markup (by/via) · · , , , ,
  100. Essential tsconfig.json Options You Should Use (by) · · ,
  101. Should Destructive Buttons Be Hard to Find? (by) · · ,
  102. Two Different Kinds of “Focusable” UI Elements (by) · · , ,
  103. Biome.js, a Toolchain to Format and Lint Your Web Project (via) · · , , ,
  104. JavaScript Import Attributes (ES2025) (by) · · ,
  105. Why Does JavaScript’s “parseInt(0.0000005)” Print “5”? · ·
  106. Why I Moved From Google Analytics to Simple Analytics (by) · · , ,
  107. Test Smart: Which Automation Strategy to Choose for Peace of Mind? (via) · · , , ,
  108. The Different (and Modern) Ways to Toggle Content (via) · · , , ,
  109. Node.js Implements Stricter Policies for Semver-Major Pull Requests Ahead of Release Deadlines (by/via) · ·
  110. How a BBC Navigation Bar Component Broke Depending on Which External Monitor It Was On (by) · · , ,
  111. Mapping Over Promises in JavaScript (by/via) · · ,
  112. State of CSS and State of HTML 2024 (by) · · ,
  113. The Rebellion Will Be Federated (by) · · , ,
  114. Five Lessons for Five Years in Tech (by) · · ,
  115. Release Notes for Safari Technology Preview 207 (by/via) · · , , ,
  116. AI Features Must Solve Real User Problems (by/via) · · , ,
  117. Next.js to htmx—a Real World Example (via) · · , ,
  118. How to Identify Decorative Images and Boost Accessibility (via) · · , , , , ,
  119. Node.js Now Supports TypeScript Natively (by) · · , ,
  120. Bluesky’s AT Protocol: Pros and Cons for Developers (by/via) · · ,
  121. Why Alpine Is the New jQuery and Why That Is an Awesome Thing (by/via) · ·
  122. Should Web Designers Learn JavaScript or CSS? (by) · · , , ,
  123. How to Set Up Next.js 15 for Production in 2024 (by/via) · · ,
  124. The Deterioration of Google (by) · · ,
  125. More Options for Styling “<details>” (by/via) · · ,
  126. Exploring Internet Traffic Shifts and Cyber Attacks During the 2024 US Election (by+/via) · · ,
  127. My Anti-Overlay Client Letter (by) · · , , , ,
  128. Celebrating Innovation and Impact: JavaScriptLandia Community Awards (via) · · ,
  129. Web Audio API 1.1 (by+/via) · · , ,
  130. How Do HTML Event Handlers Work? (by) · · , ,
  131. A Guide to Designing Errors for Workflow Automation Platforms (via) · · , , ,
  132. What’s a Single-Page App? (by) · · , , , , , , ,
  133. Unlocking Accessibility: Content Designers Share Their Experience and Advice (via) · · , ,
  134. How Bun Supports V8 APIs Without Using V8 II (via) · · , , ,
  135. How to Test JavaScript for Accessibility Compliance (by/via) · · , , , , ,
  136. Introducing the vlt Package Manager and Serverless Registry (by+/via) · · , , , ,
  137. Beautiful Focus Outlines (by) · · , , ,
  138. JavaScript’s “&&=” Operator: Understanding Logical “AND” Assignment (by) · · ,
  139. Mastering Interaction to Next Paint (INP) (by/via) · · ,
  140. What’s the Deal With WebKit Font Smoothing? (by) · · , ,
  141. Vercel Makes Changes to Next.js to Simplify Self-Hosting (by/via) · · , ,
  142. JavaScript’s “??=” Operator: Default Values Made Simple (by) · · ,
  143. Fluid Everything Else (via) · · , ,
  144. Why Optimizing Your Lighthouse Score Is Not Enough for a Fast Website (by/via) · · , , , ,
  145. How to Optimize React Performance: Best Practices and Techniques (via) · · , , , , ,
  146. Platform vs. DevEx Teams: What’s the Difference? (by) · · , ,
  147. Designing for “How Might Things Go Wrong?” (by/via) · · , ,
  148. Disabled and Obscured (by) · · , , , ,
  149. How I Improved Video Streaming With FFmpeg and Node.js (by) · · , ,
  150. What Do Survey Demographics Tell Us? (by/via) · · , ,
  151. Sustainable Web Interest Group Is Formed (by/via) · · , ,
  152. Using Cache Control in Nuxt to Improve Performance (by) · · , ,
  153. The Psychology of Attention for UX Designers (by/via) · · ,
  154. How Gestalt Principles Influence UX Design (via) · · , ,
  155. Named Scroll and View Timelines (by/via) · · ,
  156. The Impact of Artificial Intelligence on UX Design (via) · · , , , , ,
  157. The “button” Element (by) · · , , ,
  158. A Friendly Introduction to Container Queries (by) · · , ,
  159. What Happened to the Agile Movement? (by) · · , , , ,
  160. Exploring the Browser Rendering Process (by) · · , , , ,
  161. Securing Your Express REST API With Passport.js (by/via) · · , , , , ,
  162. Building My Resume in HTML Using Eleventy (by) · · , ,
  163. How to Write Better TypeScript Code: Best Practices for Clean, Effective, and Scalable Code (by) · · ,
  164. The Only Accessibility Video You Will Ever Need (by) · · ,
  165. Your CSS Reset Should Be Layered (by) · · , ,
  166. Please Publish and Share More (by) · · ,
  167. The Open Source AI Definition 1.0 (by) · · ,
  168. JavaScript Do’s and Don’ts (by) · · ,
  169. AI in Chrome DevTools (by/via) · · , , , , ,
  170. You Are Not a CSS Dev if You Have Not Made a CSS Reset (by) · · , ,
  171. The “<details>” and “<summary>” Elements Are Getting an Upgrade (by) · ·
  172. The Real Question We Should Be Asking About Agile Transformation (by/via) · · , ,
  173. CSS Masonry Layout Syntax (by/via) · · , ,
  174. 25 Accessibility Tips to Celebrate 25 Years (by/via) · · , , ,
  175. “Functionality” Is Not Constrained by Content (by/via) · · , , ,
  176. The “body” Element (by) · · ,
  177. I Followed the Official AWS Amplify Guide and Was Charged $1,100 · ·
  178. A Comprehensive Introduction to CI/CD Pipelines (by) · · , , ,
  179. @ wasmer/sdk Adds Node.js and Bun Support (by/via) · · , ,
  180. Maintaining a Growth Mindset (by/via) · · , , ,
  181. The Importance of Giving Feedback Early: Don’t Let Resentment Fester (by) · · , ,
  182. Testing With a Screen Reader Is an Important Step (by) · · , , , ,
  183. Reducing Digital Accessibility Litigation Risk (by) · · , , ,
  184. How to Build Smaller Container Images: Docker Multi-Stage Builds (by) · · , ,
  185. Add Content to the Margins of Web Pages When Printed Using CSS (by/via) · · ,
  186. The “stretch” Keyword: A Better Alternative to “width: 100%” in CSS? (by) · ·
  187. Should Masonry Be Part of CSS Grid? (by) · · , , ,
  188. There Is No Such Thing as a Unit Test · ·
  189. The Image Compression Challenge (Donating Money for Excess-Free Projects) (by) · · , , ,
  190. 2024 DORA Report (by/via) · · , , , ,
  191. New to the Web Platform in October (by/via) · · , , , , , , , ,
  192. Tooltip Best Practices (by/via) · · , ,
  193. “We Were Wrong”: An Oral History of WIRED’s Original Website (by/via) · · , ,
  194. How to Roll Your Own Auth in JavaScript and TypeScript (by) · · , , ,
  195. PDF Accessibility on the Web: Tricks and Traps (by/via) · · , ,
  196. Welcoming More Girls to Computer Science in Middle School (by) · ·
  197. The Latest in Angular Change Detection—All You Need to Know (by/via) · ·
  198. What Is the JavaScript Pipeline Operator “|>” (by) · · ,
  199. My Modern CSS Reset (by) · · ,
  200. Clarifying the Relationship Between Popovers and Dialogs (by/via) · · , , , ,
  201. Come to the “light-dark()” Side (by/via) · · , , ,
  202. Scroll-Driven… Sections (by/via) · · , ,
  203. Octoverse: AI Leads Python to Top Language as the Number of Global Developers Surges (via) · · , , , , , , , , , , ,
  204. Introducing the Legendary Programmer Hall of Fame (by) · · , ,
  205. Celebrating 20 Years of Firefox (via) · · , , , ,
  206. Making Content-Aware Components Using CSS “:has()”, Grid, and Quantity Queries (by/via) · · , , ,
  207. Will We Care About Frameworks in the Future? (by) · · ,
  208. HTML Form Validation Is Heavily Underused (by) · · , , ,
  209. Deprecating Node.js REST APIs in 6 Frameworks (via) · · , , , , , ,
  210. Re: Social Media Hasn’t Killed the Personal Blog Just Yet (by) · · ,
  211. Revamping a Five-Year Old Node.js Project (by) · · , , , , ,
  212. Polypane 22 (via) · · , ,
  213. WebKit Features in Safari 18.1 (by/via) · · , , , ,
  214. A Deep Dive Into WebAssembly (by+/via) · · , , ,
  215. 20 JavaScript Tricks Every Developer Must Know · · ,
  216. JavaScript Truthy and Falsy: A Deep Dive (by) · · ,
  217. Test Smart: How to Apply Automation and Stay Sane? (via) · · , , ,
  218. Naming Things Is Still a Common and Enduring Challenge in Accessibility (by) · · ,
  219. WP Engine Files Injunction, Hearing Set for November 26, 2024 (by/via) · · , ,
  220. Do’s and Don’ts of Commenting Code (via) · · , , ,
  221. Inside the CSS Engine: CSSOM Explained (by) · · ,
  222. Designing for Anyone: The Power of Accessible Products (by) · · , ,
  223. Talkin’ Tables (by/via) · · , , ,
  224. CSS “only-child” Instead of Conditional Logic (by) · · , ,
  225. Apple Implements Six of OWA’s DMA Compliance Requests (via) · · , , , ,
  226. How We Shrunk Our JavaScript Monorepo Git Size by 94% (by) · · , ,
  227. Accessibility for the Deaf / Hard of Hearing and Progress Over Perfection (by/via) · · ,
  228. Improving Accessibility Through Design Systems (by/via) · · , ,
  229. The Internet Is Unusable—the Disabled View (by/via) · · , ,
  230. Dynamic Social Share Images Using Cloudinary (by) · · , ,
  231. Introducing the New Svelte CLI (by/via) · · , , ,
  232. A New Vivaldi—a Whole New Browsing Experience (by/via) · · , ,
  233. How to Make a Tonal Color Palette by Stealing From Nature (by/via) · · , , , , ,
  234. WebStorm and Rider Are Now Free for Non-Commercial Use (by/via) · · , ,
  235. How Document-Oriented Databases Store Data Similar to JSON Objects (by) · · , ,
  236. My Top 5 Most Popular Front-End Tips (by) · · , , , ,
  237. How to Speed Up Your Vue App With Server Side Rendering (by/via) · · , , , ,
  238. Calculating the ROI of Your Design System (by/via) · · , ,
  239. Six Things Not Related to Accessibility That Will Improve Your Disability Inclusion Efforts (by) · · , , ,
  240. Why 90’s Designs Are Coming Back (via) · · , ,
  241. Bad Design Is, Apparently, Hot (by/via) · · ,
  242. Results = ƒ(Competence × Time) (by) · · , ,
  243. Angular’s Approach to Partial Hydration (by/via) · · ,
  244. Is Qwik the Future of Scalable Web Development? (by/via) · · , ,
  245. Lessons From Building Netlify (by/via) · · , , , ,
  246. Be a Dolphin Not a Shark: Using Cooperation Over Conflict to Advance Digital Accessibility (by/via) · · , , , ,
  247. Video Is the Holy Grail of the Open Web (by) · · ,
  248. Qualities of a Good Cloud Architect (by) · · , ,
  249. Passing Data to New Window Using JavaScript (by/via) · · ,
  250. Front End Debugging: Not Just Console Log (by) · · , , ,