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. How to Optimize React Performance: Best Practices and Techniques (via) · · , , , , ,
  2. Platform vs. DevEx Teams: What’s the Difference? (by) · · , ,
  3. The “button” Element (by) · · , , ,
  4. A Friendly Introduction to Container Queries (by) · · , ,
  5. The “<details>” and “<summary>” Elements Are Getting an Upgrade (by) · ·
  6. The Real Question We Should Be Asking About Agile Transformation (by/via) · · , ,
  7. Maintaining a Growth Mindset (by/via) · · , , ,
  8. The Importance of Giving Feedback Early: Don’t Let Resentment Fester (by) · · , ,
  9. There Is No Such Thing as a Unit Test · ·
  10. The Image Compression Challenge (Donating Money for Excess-Free Projects) (by) · · , , ,
  11. Should Masonry Be Part of CSS Grid? (by) · · ,
  12. 2024 DORA Report (by/via) · · , , , ,
  13. New to the Web Platform in October (by/via) · · , , , , , , , ,
  14. My Modern CSS Reset (by) · · ,
  15. Tooltip Best Practices (by/via) · · ,
  16. Clarifying the Relationship Between Popovers and Dialogs (by/via) · · , , , ,
  17. Come to the “light-dark()” Side (by/via) · · , , ,
  18. Scroll-Driven… Sections (by/via) · · , ,
  19. Octoverse: AI Leads Python to Top Language as the Number of Global Developers Surges (via) · · , , , , , , , , , , ,
  20. Introducing the Legendary Programmer Hall of Fame (by) · · , ,
  21. Revamping a Five-Year Old Node.js Project (by) · · , , , , ,
  22. Polypane 22 (via) · · , ,
  23. WebKit Features in Safari 18.1 (by/via) · · , , , ,
  24. A Deep Dive Into WebAssembly (by+/via) · · , , ,
  25. 20 JavaScript Tricks Every Developer Must Know · · ,
  26. Naming Things Is Still a Common and Enduring Challenge in Accessibility (by) · · ,
  27. WP Engine Files Injunction, Hearing Set for November 26, 2024 (by/via) · · , ,
  28. Do’s and Don’ts of Commenting Code (via) · · , , ,
  29. Introducing the New Svelte CLI (by/via) · · , , ,
  30. A New Vivaldi—a Whole New Browsing Experience (by/via) · · , ,
  31. How to Make a Tonal Color Palette by Stealing From Nature (by/via) · · , , , , ,
  32. WebStorm and Rider Are Now Free for Non-Commercial Use (by/via) · · , ,
  33. How Document-Oriented Databases Store Data Similar to JSON Objects (by) · · , ,
  34. Why 90’s Designs Are Coming Back (via) · · , ,
  35. Bad Design Is, Apparently, Hot (by/via) · · ,
  36. Results = ƒ(Competence × Time) (by) · · , ,
  37. How to Speed Up Your Vue App With Server Side Rendering (by/via) · · , , , ,
  38. Angular’s Approach to Partial Hydration (by/via) · · ,
  39. Is Qwik the Future of Scalable Web Development? (by/via) · · , ,
  40. Front End Debugging: Not Just Console Log (by) · · , , ,
  41. SecretLint—a Linter for Preventing Committing Credentials (by) · · , ,
  42. Making Accessibility Accessible (by) · ·
  43. What’s New in WAI–ARIA 1.3 (by/via) · · , ,
  44. How Vercel Adopted Microfrontends (by+/via) · · , ,
  45. Should JavaScript Be Split Into Two Languages? New Google-Driven Proposal Divides Opinion (via) · · , , ,
  46. Building a Mental Model of Node.js Streams (by) · · ,
  47. View Transitions Staggering (by/via) · · , , ,
  48. Video Is the Holy Grail of the Open Web (by) · · ,
  49. Visualize a Webpage’s Memory Usage During a Performance Recording (by/via) · · , , , , , , , ,
  50. Possible Future CSS: Tree-Counting Functions and Random Values (by) · · , ,
  51. Svelte 5 Is Alive (via) · · ,
  52. What Are the Roles of Interaction Design and Visual Interface Design? (via) · · , ,
  53. Where Web Components Shine (by) · ·
  54. Comparing Local-First Frameworks and Approaches (by/via) · ·
  55. Lamenting About Good Design (via) · ·
  56. Help Us Choose the Final Syntax for Masonry in CSS (by+/via) · · ,
  57. Understanding “npm audit” and Fixing Vulnerabilities (by) · · , , ,
  58. The Importance of UX in Cybersecurity (by/via) · · , ,
  59. Leveraging Usability-Testing Data in Making UX Design Decisions (by/via) · · , , ,
  60. Next.js 15 (by+/via) · · ,
  61. Foundations: Form Validation and Error Messages (via) · · , , , ,
  62. You Can Use “text-wrap: balance;” on Icons (by) · · , ,
  63. Set the Default Time Zone in Node.js (by) · · , , ,
  64. Software Engineer Titles Have (Almost) Lost All Their Meaning (by) · · , ,
  65. Why I’m Skeptical of Rewriting JavaScript Tools in “Faster” Languages (by) · · , ,
  66. State of React 2024 (by+/via) · · ,
  67. State of CSS 2024 [Results] (by/via) · · ,
  68. Introducing AI Assistance in Chrome DevTools (by) · · , , , , ,
  69. Smarter Than “Ctrl” + “F”: Linking Directly to Web Page Content (by) · · ,
  70. If You Care (by) · ·
  71. In the Future Using Top-Level “await” Might Be Cause a Backwards Compatibility Break in Node (by) · · , , ,
  72. 20 Git Command-Line Tricks Every Developer Should Know · · , ,
  73. How Should “<selectedoption>” Work? (by) · · ,
  74. How Is This Website So Fast!? (by) · · , ,
  75. Did Automattic Commit Open Source Theft? (by) · · , , ,
  76. Why Developers Lose Trust in AI Tools (by) · · , ,
  77. Platform Strategy and Its Discontents (by) · · , , , , , ,
  78. What Is Platform Engineering? (by/via) · ·
  79. Styling Web Components (by) · · ,
  80. Developing a Web Site Nonvisually in a Linux Environment (by) · · , , , ,
  81. An HTML Email Template With Basic Typography and Dark/light Modes (by/via) · · , , , ,
  82. CSS “min()” All the Things (via) · · ,
  83. How to Build an Image Search Application With OpenAI CLIP and PostgreSQL in JavaScript (by/via) · · , , , , , , ,
  84. The Nuances of Base64 Encoding Strings in JavaScript (by/via) · · , ,
  85. The Story of Web Framework Hono, From the Creator of Hono (by/via) · ·
  86. Liberate Your Daily Statistics From Jetpack (by) · · ,
  87. Using Static Websites for Tiny Archives (by) · · ,
  88. Best Testing Practices in Node.js (by/via) · · , ,
  89. Create Efficient Error Messages (by/via) · · , , , , , ,
  90. Tips for Inclusive and Accessible Hiring and Recruiting (by/via) · · , , , , ,
  91. How to Convert CommonJS to ESM (by/via) · · , , , ,
  92. “aria-activedescendant” Is Not Focus (by) · · , ,
  93. Node v23.0.0 (Current) (by/via) · · ,
  94. I’ve Been Doing Blockquotes Wrong (by/via) · ·
  95. You Should Be Using an RSS Reader (by) · · , , ,
  96. How to Implement Content Security Policy (CSP) Headers for Astro (by) · · , , , , ,
  97. Boring Web Development (by) · · , ,
  98. Introducing Express v5: A New Era for the Node.js Framework (by/via) · · ,
  99. Are You Considering the Developer’s Mental Model? (by/via) · · , ,
  100. Rubicon (by) · · , ,
  101. Indexed Database API 3.0 (via) · · ,
  102. GSAP Is Joining Webflow (by/via) · · ,
  103. What Makes a Font Accessible? A Designer’s Guide (via) · · , , , ,
  104. Understanding VPATs and ACRs: Key Insights (by) · · ,
  105. The “blockquote” Element (by) · · ,
  106. The Design of Visited Links (by) · · ,
  107. Design Systems: Simplifying Documentation Writing (via) · · , ,
  108. Fanout With Grid and View Transitions (by/via) · · , , ,
  109. On the Web, and Optimism (by/via) · · ,
  110. Does Deno 2 Really Uncomplicate Javascript? (via) · · , , , ,
  111. My Eulogy for the Open Web and Old Google (by) · · , ,
  112. Component Spec: The Design System Component Delivery (by/via) · · , , ,
  113. The Greatness and Limitations of the “js-framework-benchmark” (by) · · , , , ,
  114. I Didn’t Know You Could Use Sibling Parameters as Default Values in Functions (by) · · ,
  115. The Secrets of JavaScript Object Property Order (by) · · ,
  116. Handling Paste Events in JavaScript (by/via) · · ,
  117. CSS Tricks That Use Only One Gradient (by/via) · · , ,
  118. Please, Don’t Use Viewport Units for Font Sizes (by) · · , , ,
  119. HTML/CSS Frameworks, in Their Own Words (by Word Cloud) (by) · · , , , , , , , , , ,
  120. The User Experience of Developer Tools (via) · · , ,
  121. JS Frameworks, in Their Own Words (by Word Cloud) (by) · · , , , , , , , , ,
  122. How Microsoft Edge Is Replacing React With Web Components (by/via) · · , , , ,
  123. .io Domain Likely Being Phased-Out—Seven Suggested Steps (by) · ·
  124. Design Systems and How to Use Them in an Accessible Way (by/via) · · , , ,
  125. The Elephant in the New Accessibility Law: PDFs (by) · · , ,
  126. Implementing Regular Expressions in TypeScript Types (Badly) · · ,
  127. AI for Accessibility Conformance Testing? Why? (by) · · , , ,
  128. HTML for People (by) · · , , ,
  129. The Value of Accessibility Annotations in Inclusive Design (by/via) · · , ,
  130. Node.js, Pipes, and Disappearing Bytes · ·
  131. 10 CSS Pro Tips and Tricks You Need to Know (via) · · , ,
  132. 8 AI Tips for Web Developers (and Their Careers) (by/via) · · , , , , , , ,
  133. Why GOV.UK’s “Exit This Page” Component Doesn’t Use the Escape Key (by) · · , ,
  134. Creating Blogging Sites With Astro · · , ,
  135. Shopify, Accessibility Lawsuits, and “Compliance” · · , , ,
  136. TC39 Advances 10+ ECMAScript Proposals: Key Features to Watch (by/via) · ·
  137. Announcing Deno 2 (by+/via) · · ,
  138. Why Code Security Matters—Even in Hardened Environments (via) · · , , ,
  139. Liskov’s Gun: The Parallel Evolution of React and Web Components (by) · · , ,
  140. I Interviewed 100 DevTools Founders and This Is What I Learned (by/via) · · , , , ,
  141. The New Stylable “<select>” Element (by+) · · , , , ,
  142. CSS Nesting Improves With CSSNestedDeclarations (by/via) · · ,
  143. The Disappearance of an Internet Domain (by/via) · ·
  144. Searching for a New CSS Logo (by/via) · · ,
  145. The Popover API: Your New Best Friend for Tooltips (by/via) · · , , , ,
  146. The Mazy Web She Whirls: Starting Open Web Advocacy (by/via) · · , ,
  147. How Effective UX Design Can Boost Business Success (by/via) · · , , , , , ,
  148. Breaking Into UX Research: Non-Traditional Paths to Success (via) · · , ,
  149. 18 Interview Questions Answered by Angular Experts (by+/via) · · ,
  150. Web Components: Little Bits (by/via) · · , ,
  151. Building a Single-Page App With htmx (by) · · ,
  152. Build a Static RSS Reader to Fight Your Inner FOMO (by/via) · · , , , ,
  153. No Industry for Old Men (by/via) · · , , , , , , , ,
  154. Recipes for Detecting Support for CSS At-Rules (by/via) · · , , , ,
  155. Reminder That “@ scope” and HTML Style Blocks Are a Potent Combo (by/via) · · , ,
  156. CSS Anchor Positioning Guide (by/via) · · , ,
  157. The Future of Voice User Interfaces and UX Design (by/via) · · , , ,
  158. Designing for Privacy (via) · · , ,
  159. Some Notes on Upgrading Hugo (by) · · ,
  160. Designing for Accessibility: Enhancing Math Learning for the Blind Using the NVDA Screen Reader · · , , , , ,
  161. 21 UX Strategies to Maximize User Engagement Without Exploitation (via) · · , , ,
  162. Feature Detect Style Queries Support in CSS (by/via) · · , , , ,
  163. Testing CSS Print Media Styles (by) · · , , ,
  164. Reminder—Automatic Accessibility Testing Can Detect Inaccessibility but Can’t Detect Accessibility (by) · · ,
  165. 10 JavaScript Concepts Every Node Developer Must Master · · , ,
  166. React on the Server Is Not PHP (by) · · , ,
  167. Sneaking: The Deceptive UX Pattern You Never Saw Coming (via) · · ,
  168. Node vs. Bun: No Backend Performance Difference (by) · · , , , ,
  169. How a Bottom-Up Design Approach Enhances Site Accessibility (by/via) · · , ,
  170. How to Use the CSS “backdrop-filter” Property (by/via) · · , , , ,
  171. Database 101: SSL/TLS for Beginners (by/via) · · , , , , ,
  172. npm vs. npx · · , ,
  173. Icon Usability: When and How to Evaluate Digital Icons (by/via) · · , , ,
  174. An Introduction to WebAssembly (by+/via) · · , ,
  175. Node.js Can Run TypeScript (by) · · ,
  176. Practical Accessibility Tips You Can Apply Today (via) · · , ,
  177. Cloudflare Study: 39% of Companies Losing Control of Their IT and Security Environment (by) · · , , ,
  178. ESLint Now Officially Supports Linting of JSON and Markdown (by/via) · · , , , ,
  179. cpx—the npx Counterpart of the PHP Ecosystem (by) · · ,
  180. How to Identify a Toxic Accessibility Culture, and What You Can Do About It (by) · · , ,
  181. “Straight to the Pool Room”: The Pitfalls of Placing Accessibility Issues in the Backlog (via) · · , , ,
  182. JAWS (Only) No More (by) · · , , , , , , , ,
  183. Tips for Working From the Office? · · , ,
  184. A UX Designer Guide to Prompt (via) · · , , ,
  185. Benchmarking the Performance of CSS “@ property” (by/via) · · , ,
  186. Interview With Björn Ottosson, Creator of the Oklab Color Space (by+/via) · · , ,
  187. I Wasted a Day on CSS Selector Performance to Make a Website Load 2 ms Faster (by) · · , ,
  188. Chasing Color (by) · · , ,
  189. Eleventy v3.0.0: Possums ❤️ ESM (by/via) · · , ,
  190. Queering Design Systems Thinking (by) · · , ,
  191. Unleash JavaScript’s Potential With Functional Programming (by) · · , ,
  192. Web Components Are Not Framework Components—and That’s Okay (by) · · , ,
  193. Web Components vs. State-Based UI (by) · · , ,
  194. An Interesting HTML Parser Conundrum (by) · · ,
  195. CSS Masonry and CSS Grid (by/via) · · ,
  196. How Bun Supports V8 APIs Without Using V8 (via) · · , , ,
  197. Designing Effective Information Architectures for Large-Scale Web Sites (via) · · , , ,
  198. Sketch and AI (by+/via) · · ,
  199. Celebrating WebAIM’s 25th Anniversary (by/via) · · ,
  200. Default Behavior of “position: absolute” (by) · · ,
  201. Designing for Digital Minimalism: Creating User Experiences That Support Mental Well-Being (via) · · , , ,
  202. What’s the Difference Between HTML’s Dialog Element and Popovers? (by/via) · · , , ,
  203. The Reality of Balancing Pregnancy in Developer Relations (by) · · ,
  204. Release Notes for Safari Technology Preview 204 (by/via) · · , , ,
  205. Why Gumroad Didn’t Choose htmx (by/via) · · ,
  206. Understanding Cultural Norms to Design Inclusive User Experiences (via) · · , , ,
  207. The “bdi” Element (by) · · , ,
  208. New to the Web Platform in September (by/via) · · , , , , , , , ,
  209. 4 Tips for Unlocking the Benefits of Svelte in Frontend Development (by/via) · · , ,
  210. Understanding the Concept of Scoping in CSS · · , ,
  211. Bundling Past, Present, and Future (by) · · , , , ,
  212. How to Learn HTML: 46 Great Sites, Courses, and Books (All Free) · · , , , , ,
  213. Solved by CSS Scroll-Driven Animations: Hide a Header When Scrolling Down, Show It Again When Scrolling Up (by/via) · · , , ,
  214. The “b” Element (by) · · ,
  215. Self-Taught Developer’s Guide to Thriving in Tech (by) · · ,
  216. Matt Mullenweg Announces Temporary Lifting of WP Engine Ban (via) · · ,
  217. Web Components Are Okay (by) · ·
  218. How to Manage Dangerous Actions in User Interfaces (by/via) · · , , ,
  219. You Might Not Need That Framework (by/via) · · ,
  220. Bad CSS-Dad Jokes III (by) · ·
  221. Next.js: Static Site Generation (SSG) With Incremental Static Regeneration (ISR) (by) · · , ,
  222. Some Go Web Dev Notes (by) · · , ,
  223. POSSE: Reclaiming Social Media in a Fragmented World (by) · · ,
  224. Untrained Engineering Managers (by) · · , , ,
  225. NIST Recommends Some Common-Sense Password Rules (by) · · , ,
  226. “img sizes=auto” for Native Lazy Loading (by) · · , , , ,
  227. A Complete Guide to Session Management in Next.js (via) · · , , ,
  228. Navigate Large Files Faster With Minimap Section Headers in VS Code (by/via) · · , , ,
  229. Disable Console Logs in Production in Next.js (by) · · , , ,
  230. Building a Dynamic Background Effect (via) · · , , , ,
  231. The State of Accessibility (by/via) · · , , ,
  232. Why I Prefer WebStorm Over Visual Studio Code for Web Development (via) · · , , , , ,
  233. Making Maps Accessible to Screen Readers (via) · · , , , ,
  234. Catching Up on the WordPress WP Engine Sitch (by/via) · · ,
  235. Web Components Are Not the Future (by) · · , ,
  236. 5 Questions for Craig Buckler (by+/via) · · , ,
  237. Automattic Sends WP Engine Its Own Cease-and-Desist Over WordPress Trademark Infringement (by/via) · · , ,
  238. Why Asking Questions Is a Vital Part of Growing as a Designer (via) · · , ,
  239. The Golden Ratio in CSS (by) · · , ,
  240. A Guide to Destructuring in JavaScript (by/via) · · , ,
  241. Challenging the Case for Delayed ADA Compliance (by+/via) · · , , , ,
  242. Accessibility Is Everyone’s Responsibility (by) · · , ,
  243. The Ultimate Design Token Setup (by/via) · · , , ,
  244. The Problem With Superscripts and Subscripts (by) · · ,
  245. How to Make a “Scroll to Select” Form Control (by/via) · · , , ,
  246. Dynamic Numbering With CSS Counters (by) · · ,
  247. Observing Style Changes (by/via) · · ,
  248. How to Measure Design System at Scale (by/via) · · , , ,
  249. The Problem of the Em Square (via) · · , ,
  250. Unleash Your Inner Avenger: A Beginner’s Guide to Unix Shells (by) · · , ,