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.

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

  1. Why I’m Skeptical of Rewriting JavaScript Tools in “Faster” Languages (by) · · , ,
  2. Introducing AI Assistance in Chrome DevTools (by) · · , , , , ,
  3. Smarter Than “Ctrl” + “F”: Linking Directly to Web Page Content (by) · · ,
  4. How Should “<selectedoption>” Work? (by) · · ,
  5. How Is This Website So Fast!? (by) · · , ,
  6. Did Automattic Commit Open Source Theft? (by) · · , , ,
  7. Why Developers Lose Trust in AI Tools (by) · · , ,
  8. The Nuances of Base64 Encoding Strings in JavaScript (by/via) · · , ,
  9. The Story of Web Framework Hono, From the Creator of Hono (by/via) · ·
  10. Liberate Your Daily Statistics From Jetpack (by) · · ,
  11. “aria-activedescendant” Is Not Focus (by) · · , ,
  12. Node v23.0.0 (Current) (by/via) · · ,
  13. I’ve Been Doing Blockquotes Wrong (by/via) · ·
  14. You Should Be Using an RSS Reader (by) · · , , ,
  15. How to Implement Content Security Policy (CSP) Headers for Astro (by) · · , , , , ,
  16. Indexed Database API 3.0 (via) · · ,
  17. GSAP Is Joining Webflow (by/via) · · ,
  18. Fanout With Grid and View Transitions (by/via) · · , , ,
  19. On the Web, and Optimism (by/via) · · ,
  20. Does Deno 2 Really Uncomplicate Javascript? (via) · · , , , ,
  21. The Greatness and Limitations of the “js-framework-benchmark” (by) · · , , , ,
  22. HTML/CSS Frameworks, in Their Own Words (by Word Cloud) (by) · · , , , , , , , , , ,
  23. The User Experience of Developer Tools (via) · · , ,
  24. JS Frameworks, in Their Own Words (by Word Cloud) (by) · · , , , , , , , , ,
  25. How Microsoft Edge Is Replacing React With Web Components (by/via) · · , , , ,
  26. .io Domain Likely Being Phased-Out—Seven Suggested Steps (by) · ·
  27. Implementing Regular Expressions in TypeScript Types (Badly) · · ,
  28. AI for Accessibility Conformance Testing? Why? (by) · · , , ,
  29. HTML for People (by) · · , , ,
  30. Why GOV.UK’s “Exit This Page” Component Doesn’t Use the Escape Key (by) · · , ,
  31. Creating Blogging Sites With Astro · · , ,
  32. Shopify, Accessibility Lawsuits, and “Compliance” · · , , ,
  33. TC39 Advances 10+ ECMAScript Proposals: Key Features to Watch (by/via) · ·
  34. Announcing Deno 2 (by+/via) · · ,
  35. I Interviewed 100 DevTools Founders and This Is What I Learned (by/via) · · , , , ,
  36. The New Stylable “<select>” Element (by+) · · , , , ,
  37. CSS Nesting Improves With CSSNestedDeclarations (by/via) · · ,
  38. The Disappearance of an Internet Domain (by/via) · ·
  39. Searching for a New CSS Logo (by/via) · · ,
  40. 18 Interview Questions Answered by Angular Experts (by+/via) · · ,
  41. Web Components: Little Bits (by/via) · · , ,
  42. Building a Single-Page App With htmx (by) · · ,
  43. Build a Static RSS Reader to Fight Your Inner FOMO (by/via) · · , , , ,
  44. No Industry for Old Men (by/via) · · , , , , , , , ,
  45. Recipes for Detecting Support for CSS At-Rules (by/via) · · , , , ,
  46. Reminder That “@ scope” and HTML Style Blocks Are a Potent Combo (by/via) · · , ,
  47. CSS Anchor Positioning Guide (by/via) · · , ,
  48. The Popover API: Your New Best Friend for Tooltips (by/via) · · , , , ,
  49. The Future of Voice User Interfaces and UX Design (by/via) · · , , ,
  50. Designing for Privacy (via) · · , ,
  51. Some Notes on Upgrading Hugo (by) · · ,
  52. 21 UX Strategies to Maximize User Engagement Without Exploitation (via) · · , , ,
  53. Feature Detect Style Queries Support in CSS (by/via) · · , , , ,
  54. Testing CSS Print Media Styles (by) · · , , ,
  55. Reminder—Automatic Accessibility Testing Can Detect Inaccessibility but Can’t Detect Accessibility (by) · · ,
  56. 10 JavaScript Concepts Every Node Developer Must Master · · , ,
  57. Sneaking: The Deceptive UX Pattern You Never Saw Coming (via) · · ,
  58. Node vs. Bun: No Backend Performance Difference (by) · · , , , ,
  59. How a Bottom-Up Design Approach Enhances Site Accessibility (by/via) · · , ,
  60. How to Use the CSS “backdrop-filter” Property (by/via) · · , , , ,
  61. Database 101: SSL/TLS for Beginners (by/via) · · , , , , ,
  62. npm vs. npx · · , ,
  63. Icon Usability: When and How to Evaluate Digital Icons (by/via) · · , , ,
  64. An Introduction to WebAssembly (by+/via) · · , ,
  65. Practical Accessibility Tips You Can Apply Today (via) · · , ,
  66. Cloudflare Study: 39% of Companies Losing Control of Their IT and Security Environment (by) · · , , ,
  67. ESLint Now Officially Supports Linting of JSON and Markdown (by/via) · · , , , ,
  68. cpx—the npx Counterpart of the PHP Ecosystem (by) · · ,
  69. How to Identify a Toxic Accessibility Culture, and What You Can Do About It (by) · · , ,
  70. “Straight to the Pool Room”: The Pitfalls of Placing Accessibility Issues in the Backlog (via) · · , , ,
  71. JAWS (Only) No More (by) · · , , , , , , , ,
  72. Tips for Working From the Office? · · , ,
  73. A UX Designer Guide to Prompt (via) · · , , ,
  74. Benchmarking the Performance of CSS “@ property” (by/via) · · , ,
  75. Interview With Björn Ottosson, Creator of the Oklab Color Space (by+/via) · · , ,
  76. I Wasted a Day on CSS Selector Performance to Make a Website Load 2 ms Faster (by) · · , ,
  77. Chasing Color (by) · · , ,
  78. Eleventy v3.0.0: Possums ❤️ ESM (by/via) · · , ,
  79. Queering Design Systems Thinking (by) · · , ,
  80. Unleash JavaScript’s Potential With Functional Programming (by) · · , ,
  81. Web Components Are Not Framework Components—and That’s Okay (by) · · , ,
  82. Web Components vs. State-Based UI (by) · · , ,
  83. An Interesting HTML Parser Conundrum (by) · · ,
  84. How Bun Supports V8 APIs Without Using V8 (via) · · , , ,
  85. Designing Effective Information Architectures for Large-Scale Web Sites (via) · · , , ,
  86. Sketch and AI (by+/via) · · ,
  87. Celebrating WebAIM’s 25th Anniversary (by/via) · · ,
  88. Default Behavior of “position: absolute” (by) · · ,
  89. Designing for Digital Minimalism: Creating User Experiences That Support Mental Well-Being (via) · · , , ,
  90. CSS Masonry and CSS Grid (by/via) · · ,
  91. What’s the Difference Between HTML’s Dialog Element and Popovers? (by/via) · · , , ,
  92. The Reality of Balancing Pregnancy in Developer Relations (by) · · ,
  93. Release Notes for Safari Technology Preview 204 (by/via) · · , , ,
  94. Why Gumroad Didn’t Choose htmx (by/via) · · ,
  95. Understanding Cultural Norms to Design Inclusive User Experiences (via) · · , , ,
  96. The “bdi” Element (by) · · , ,
  97. New to the Web Platform in September (by/via) · · , , , , , , , ,
  98. 4 Tips for Unlocking the Benefits of Svelte in Frontend Development (by/via) · · , ,
  99. Understanding the Concept of Scoping in CSS · · , ,
  100. Bundling Past, Present, and Future (by) · · , , , ,
  101. How to Learn HTML: 46 Great Sites, Courses, and Books (All Free) · · , , , , ,
  102. Solved by CSS Scroll-Driven Animations: Hide a Header When Scrolling Down, Show It Again When Scrolling Up (by/via) · · , , ,
  103. The “b” Element (by) · · ,
  104. Self-Taught Developer’s Guide to Thriving in Tech (by) · · ,
  105. Matt Mullenweg Announces Temporary Lifting of WP Engine Ban (via) · · ,
  106. Web Components Are Okay (by) · ·
  107. How to Manage Dangerous Actions in User Interfaces (by/via) · · , , ,
  108. You Might Not Need That Framework (by/via) · · ,
  109. Bad CSS-Dad Jokes III (by) · ·
  110. Next.js: Static Site Generation (SSG) With Incremental Static Regeneration (ISR) (by) · · , ,
  111. Some Go Web Dev Notes (by) · · , ,
  112. POSSE: Reclaiming Social Media in a Fragmented World (by) · · ,
  113. Untrained Engineering Managers (by) · · , , ,
  114. NIST Recommends Some Common-Sense Password Rules (by) · · , ,
  115. “img sizes=auto” for Native Lazy Loading (by) · · , , , ,
  116. A Complete Guide to Session Management in Next.js (via) · · , , ,
  117. Navigate Large Files Faster With Minimap Section Headers in VS Code (by/via) · · , , ,
  118. Disable Console Logs in Production in Next.js (by) · · , , ,
  119. Building a Dynamic Background Effect (via) · · , , , ,
  120. The State of Accessibility (by/via) · · , , ,
  121. Why I Prefer WebStorm Over Visual Studio Code for Web Development (via) · · , , , , ,
  122. Making Maps Accessible to Screen Readers (via) · · , , , ,
  123. Catching Up on the WordPress WP Engine Sitch (by/via) · · ,
  124. Web Components Are Not the Future (by) · · , ,
  125. 5 Questions for Craig Buckler (by+/via) · · , ,
  126. Automattic Sends WP Engine Its Own Cease-and-Desist Over WordPress Trademark Infringement (by/via) · · , ,
  127. Why Asking Questions Is a Vital Part of Growing as a Designer (via) · · , ,
  128. The Golden Ratio in CSS (by) · · , ,
  129. A Guide to Destructuring in JavaScript (by/via) · · , ,
  130. Challenging the Case for Delayed ADA Compliance (by+/via) · · , , , ,
  131. Accessibility Is Everyone’s Responsibility (by) · · , ,
  132. The Ultimate Design Token Setup (by/via) · · , , ,
  133. The Problem With Superscripts and Subscripts (by) · · ,
  134. How to Make a “Scroll to Select” Form Control (by/via) · · , , ,
  135. Dynamic Numbering With CSS Counters (by) · · ,
  136. Observing Style Changes (by/via) · · ,
  137. How to Measure Design System at Scale (by/via) · · , , ,
  138. The Problem of the Em Square (via) · · , ,
  139. Unleash Your Inner Avenger: A Beginner’s Guide to Unix Shells (by) · · , ,
  140. Will Deno 2.0 Replace Node.js? (by) · · , , ,
  141. I Finally Understand OAuth · · , , ,
  142. Feature Detecting Scroll-Driven Animations With “@ supports”: You Want to Check for “animation-range” Too (by/via) · · , , , , , ,
  143. Conway’s Law: The Hidden Force Shaping Your Software Architecture (by) · · , ,
  144. A Comprehensive Guide to Node.js Addons (by) · · ,
  145. 2000s + 2010s = 10,000 (via) · · ,
  146. Building the Perfect Logo Strip (by/via) · · , , ,
  147. Error Messages: 4 Guidelines for Effective Communication (by/via) · · , , ,
  148. Firefox DevTools Newsletter 130 (by/via) · · , , , ,
  149. Bad CSS-Dad Jokes II (by) · ·
  150. Keeping Pixely Images Pixely (and Performant!) (by/via) · · , ,
  151. Getting Started With CI/CD: A Beginner’s Guide to Automating Your First Pipeline (With Jenkins) · · , , , ,
  152. Your Accessibility Questions Answered by a Blind Person (via) · ·
  153. The Trickiest Bug I’ve Ever Fixed (by/via) · · ,
  154. An Abridged History of Safari Showstoppers (by) · · , , ,
  155. Outdated Docs Are Tech Debt (by) · · , , ,
  156. No Authentication Like Button (by) · · , ,
  157. Hire HTML and CSS People (by) · · , , ,
  158. Masonry and Good Defaults (by) · · ,
  159. Gradient Text With a Drop Shadow (by/via) · · , ,
  160. Angular Routing Essentials: All You Need to Know in One Post (by) · · , ,
  161. Powerful WebStorm Tips and Tricks: Boost Your Productivity · · , , , ,
  162. If You Don’t Write Unit Tests… It’s a Skill Issue (by) · · ,
  163. Good UX Is Not Just About Minimizing Clicks (by/via) · · , , ,
  164. Pfizer’s Future of Development (by/via) · · , , , ,
  165. Deno 2.0 Release Candidate (by+/via) · · ,
  166. New Values and Functions in CSS (by) · · ,
  167. Fundamentals of Frontend Architecture (by) · · , ,
  168. A Beginner’s Guide to Using Bluesky for Business Success (via) · · , ,
  169. Paying Down Tech Debt: Further Learnings (via) · · ,
  170. Fake GitHub Site Targeting Developers (by/via) · · ,
  171. Code Wins Arguments (by) · · ,
  172. Don’t Sleep on AbortController (by) · ·
  173. Dealing With Rejection After Applying to Hundreds of Jobs (by) · · ,
  174. Node.js 20 Upgrade: A Journey Through Unexpected Heap Issues With Kubernetes (by/via) · · , , ,
  175. The Nine Node Pillars (by/via) · · , ,
  176. Why We Switched From Cypress to Playwright (via) · · , , , , ,
  177. Better Vue Components With TypeScript (by) · · , , ,
  178. SVG Coding Examples: Useful Recipes for Writing Vectors by Hand (via) · · , ,
  179. Compile and Run C in JavaScript (by/via) · · ,
  180. What’s New in DevTools: Chrome 127–129 (by+/via) · · , , , ,
  181. A Step-by-Step Guide to Conducting a Web Accessibility Audit (via) · · , , , ,
  182. Improving Rendering Performance With CSS “content-visibility” (by) · · , , ,
  183. Learn CSS Grid (by+/via) · · , ,
  184. On Ticket Management (by) · · , , ,
  185. Introduction to Micro Frontends: An Overview (via) · · , ,
  186. Animate to “height: auto;” (and Other Intrinsic Sizing Keywords) in CSS (by/via) · · ,
  187. The Problem of Knowledge Debt in Tech (by/via) · · , ,
  188. Clever Polypane Debugging Features I’m Loving (by/via) · · , , ,
  189. Get Ready for Interop 2025: Your Chance to Shape the Web (by/via) · · , , ,
  190. The Continuing Tragedy of Emoji on the Web (by) · · , , ,
  191. CSS Grid Layout Module Level 3 (by+/via) · · ,
  192. Accessibility Preference Settings, Information Architecture, and Internalized Ableism (by) · · , , ,
  193. Submit Your Proposals for Interop 2025 (by/via) · · , , ,
  194. The Real Cost of Meetings: What FAANG Companies Do Differently (by) · · , , , , , ,
  195. Rethinking Code Reviews With Stacked PRs (by) · · , , ,
  196. Selecting Previous Siblings (by/via) · · ,
  197. Optimising for High Latency Environments (by) · · , , , ,
  198. Why HTML Has Both “<b/i>” and “<strong/em>”? (by) · · ,
  199. When to Start Blogging? (by) · ·
  200. WebKit Features in Safari 18.0 (by/via) · · , , , ,
  201. Oracle, It’s Time to Free Javascript (by+) · · , ,
  202. How to Teach CSS (by/via) · · , ,
  203. Making Orbit Animations With CSS Custom Properties (by) · · , , ,
  204. Stop Designing Your Web Application for Millions of Users When You Don’t Even Have 100 (by) · · , ,
  205. What’s the Difference Between Information Architecture and Content Strategy? (by) · · , , , , ,
  206. The Magic Behind Laravel’s New “defer()” Helper (by) · ·
  207. How to Create a Type to Retrieve All Keys of an Object in TypeScript (by) · · , ,
  208. Evolve or Become Irrelevant (by) · · ,
  209. Noisy, Hungry Data Centers Are Catching Communities by Surprise (by/via) · · ,
  210. Let’s Bring Back Browsing (by) · · ,
  211. The HTTP QUERY Method (by+/via) · · ,
  212. Bitwise Operators in JavaScript and When to Use Them (via) · · ,
  213. Do You Still Use Git in the Terminal? (by) · · , ,
  214. Company Culture Happens Outside Management (by) · · ,
  215. Brief Note on Disclosures in Fieldsets (by) · · , ,
  216. The Fallacy of Federated Design Systems (by) · · , ,
  217. Predicting Developer Attrition (by) · · , ,
  218. The Importance of Title Tags: Tips and Tricks to Optimize for SEO (via) · · , , ,
  219. Deceptive Patterns in Copy Are Killing Me (via) · · , ,
  220. Two CSS Properties for Trimming Text Box Whitespace (via) · ·
  221. But Why?? (by) · · , , , , , , ,
  222. Good Forms (by) · · , , , ,
  223. Introducing TanStack Router (by/via) · · , , ,
  224. Make “git diff” Look Beautiful in the Terminal (by) · · ,
  225. CSS Values and Units Module Level 5 (by+/via) · · ,
  226. Request for Developer Feedback: Customizable Select (by/via) · · ,
  227. Speed Up Your Website With “<link rel=preconnect>” (by) · · ,
  228. Five Ways to Lazy Load Images for Better Website Performance (by/via) · · , ,
  229. When Should You Actually Worry About Tech Debt? (by) · ·
  230. Prioritize Accessibility in Procurement for Better CX and EX (by/via) · · , ,
  231. A Billion New Developers Thanks to AI? (by) · · , , ,
  232. The Folly of Chasing Demographics (by/via) · · , ,
  233. The Redmonk Programming Language Rankings: June 2024 (by/via) · · , , , , , , , , , , ,
  234. Understanding the “Why” Around Neurodivergent Inclusive Web Design (by/via) · · , ,
  235. 10 Developer Tools to Improve Your Daily Life as a Developer · · , ,
  236. State of HTML 2024 (by/via) · · ,
  237. Reasons I Still Love the Fish Shell (by) · · ,
  238. A Day in the Life of a DevOps Engineer: Real Stories and Challenges · · , ,
  239. Rethinking CSS in JS · · , , , , , ,
  240. Using Controllers for Keyboard Accessibility (by/via) · · , ,
  241. Split Effects With No Content Duplication (by/via) · · , ,
  242. Why Copilot Is Making Programmers Worse at Programming (by) · · , , , , ,
  243. React 19 Cheat Sheet (by) · · ,
  244. Verso Taking Shape as a Servo-Powered Web Browser (by/via) · · , ,
  245. Something Went Wrong (by) · · , , , ,
  246. Google Is Killing Information Economics on the Internet (by) · · , ,
  247. Express.js 5.0 Released After Long Delay, Though Not Yet Default as Project Appeals for Contributors (via) · ·
  248. 2024: 0.5% of the Global Top 200 Websites Use Valid HTML (by) · · , , , ,
  249. Standalone Components Are the Future · · , ,
  250. Logical Properties in Size Queries (by/via) · · , ,