Frontend Dogma

News and Tools for Frontend Development

Articles and books, tips and tricks, craft and beauty from the world of frontend development.

(Stay up-to-date on all topics by RSS feed or on Mastodon.)

  1. The User Location Is a Lie (by) · · , ,
  2. Improved Error Messaging for “require(esm)” in Node.js (by) · ·
  3. CSS Scroll Snap Module Level 2 (by+/via) · · ,
  4. CSS “font-size-adjust” Is Now in Baseline (by/via) · · , , , ,
  5. How to Choose the Best Rendering Strategy for Your App (by/via) · · , , , , , ,
  6. Learn Web Components (by) · · , , , , , ,
  7. 20 Super Useful CSS Animation Libraries (by) · · , , ,
  8. “Practical SVG” Is Now Free to Read Online (by) · · , ,
  9. Flutter Unit Testing: Understanding “setUp()” and “setUpAll()” (by/via) · · ,
  10. CSS Grid Areas (by) · · ,
  11. State of React 2023 (via) · · ,
  12. State of Developer Experience 2024 (by) · · ,
  13. Getting to the Bottom of Minimum WCAG-Conformant Interactive Element Size (by/via) · · , , ,
  14. Macro vs. Micro Conversions (by/via) · · , ,
  15. Why Is Spawning a New Process in Node So Slow? (by/via) · · , ,
  16. Introducing Svelte 5 (by/via) · · ,
  17. The Pitfalls of In-App Browsers (via) · · , , , ,
  18. The Cloud Run Security Gap You Didn’t Know You Had (and How to Fix It) (by) · · ,
  19. Override HTTP Response Headers (by/via) · · , , , , , ,
  20. Testing Best Practices for Web Apps (by/via) · · , , ,
  21. Summary of the June 2024 TC39 Plenary in Helsinki (via) · · ,
  22. Expert Handling of Multiple Dimensions of Data (by) · ·
  23. Node v22.5.0 (Current) (via) · · ,
  24. Named Alternates for WordPress (by) · · ,
  25. Wait, What’s the Difference Between “:host”, “:host()”, and “:host-context()”?! (by) · · , ,
  26. Flat vs. Deep Hierarchies in Information Architecture (IA) (by/via) · · , ,
  27. Private Browsing 2.0 (by+/via) · · , , , ,
  28. Cloudflare Reports Almost 7% of Internet Traffic Is Malicious (by/via) · ·
  29. It’s Official, Meteor 3.0 Official Release Is Out! (via) · · ,
  30. Everybody’s Free (to Write Websites) (by) · · , , ,
  31. Character Modeling in CSS (by/via) · · , , , ,
  32. An Update on Invokers: Invoker Commands in HTML (by) · · , ,
  33. Thoughts on CSS in 2024 (by) · · , , , ,
  34. To Hell With the Business Case, Again (by) · · ,
  35. What ARIA Still Does Not Do (by) · · , , ,
  36. Embracing Functional CSS: Have We Moved On? (via) · · ,
  37. “@ property”: Next-Gen CSS Variables Now With Universal Browser Support (by/via) · · , , , ,
  38. Content Strategy vs. UX Writing (by/via) · · , , , , ,
  39. Going With the PDF Reflow (by/via) · · , ,
  40. Feature Detect CSS “@ starting-style” Support (by/via) · · , , , ,
  41. 3 Design Tips From a Gorgeous New Landing Page (by/via) · · , , ,
  42. From Web to Native With React (by/via) · · ,
  43. Hiring, Lip Service, and Inclusion (by/via) · · , , ,
  44. A Guide to Reading and Writing Node.js Streams (by/via) · · , ,
  45. The Future of Serverless Is WebAssembly (by/via) · · , , ,
  46. Single-Directionally Allowed Overflow (by/via) · ·
  47. Rian Rietveld on Understanding the European Accessibility Act and Its Impact on Websites (by+/via) · · , , , , ,
  48. Learn About What’s New in Angular 18 From Rakia Ben Sassi (by+/via) · · ,
  49. Publishing a TypeScript Module to npm vs. JSR (via) · · , , , , , ,
  50. Transitive Optimization Considered—Interesting (by) · ·
  51. Introducing @ let in Angular (via) · ·
  52. Homepage Design: 4 Common Mistakes (via) · · , ,
  53. Why “page.goto()” Is Slowing Down Your Playwright Tests (by/via) · ·
  54. Bad Design Is Like a Virus: Design Defects and Latent Failures (via) · ·
  55. How I Develop Successful Link Building Strategies for My Clients (by/via) · · , ,
  56. Don’t Use web.dev for Accessibility Info (by) · · ,
  57. 15 Page Speed Optimizations That Sites Ignore (at Their Own Risk) (by/via) · · ,
  58. Exploring the Challenges in Creating an Accessible Sortable List (Drag-and-Drop) (by/via) · · ,
  59. “If” CSS Gets Inline Conditionals (by/via) · · ,
  60. Zoom, Zoom, and Zoom (by/via) · · ,
  61. The Magic of Clip Path (by) · · ,
  62. The Software Engineering Industry in 2024: What Changed in 2 Years, Why, and What Is Next (by) · · , ,
  63. Playwright vs. Puppeteer: Which Is Better in 2024? (by/via) · · , , , , ,
  64. Leaner npm Packument (Metadata) Contents (via) · ·
  65. 5 Questions for Miriam Suzanne (by+/via) · · , , ,
  66. Supply Chain Security in npm—We Can Be Optimistic About the Future (by/via) · · , , ,
  67. Designing Multimodal Interfaces: Voice + Screen (via) · · , ,
  68. A Quick-Ish Accessibility Review: shadcn/ui Charts (by) · · , , , ,
  69. State of Text Rendering 2024 (by) · · ,
  70. 50 Basic Linux Commands (by) · · ,
  71. Interop 2024 Mid-Year Update (by/via) · · , , ,
  72. How to Transform Your Approach to Digital Accessibility From a Reactive Break-Fix Cycle to a Proactive Shift Left Approach (by/via) · · , , ,
  73. Utility First CSS Isn’t Inline Styles (by/via) · · , , , ,
  74. How Keyboard Navigation Works in a CSS Game (by/via) · · , ,
  75. Sneaky React Memory Leaks: How the React Compiler Won’t Save You (by) · · , ,
  76. Advanced Markdown Using Extensions in Laravel (by) · · ,
  77. Eleventy Buckets and Cascade Layers (by) · · , ,
  78. Progressive Web Apps (PWA): A Comprehensive Guide · · , ,
  79. System Design Basics—Caching (by) · · , ,
  80. How Fast Is JavaScript? Simulating 20,000,000 Particles (by) · · ,
  81. Creativity Is the Byproduct of Work (by) · · , ,
  82. A Practical Guide to Designing for Colorblind People (by) · · , , , ,
  83. Speeding Up the JavaScript Ecosystem—Isolated Declarations (by) · · , ,
  84. What’s New With ECMAScript 2024: An In-Depth Guide on the Latest Features (by/via) · · , , ,
  85. Optimizing for AI Overviews (by/via) · · ,
  86. How to Try Experimental CSS Features (by) · · , , , , , , , ,
  87. What’s Coming Next for ESLint (by/via) · ·
  88. Generative AI Is a Climate Disaster (by) · · ,
  89. Button Width Styles (by) · · ,
  90. Script Integrity (by/via) · · , ,
  91. How to Parse HTML in JavaScript (via) · · , ,
  92. Ten Years of Vue (With Evan You) (by+/via) · · , , ,
  93. Investigating Reddit’s robots.txt Cloaking Strategy (by/via) · · , ,
  94. Feature Detect CSS “@ property” Support (by/via) · · , ,
  95. Reasons to Use Your Shell’s Job Control (by) · · ,
  96. Why Is This Thing in Dark Mode? (by/via) · · ,
  97. Forget “Show, Don’t Tell”—Engage, Don’t Show! (by) · · , , ,
  98. Thoughts on Node.js, Deno, and Bun (by) · · , , ,
  99. Top 7 WordPress Plugins for 2024: Enhance Your Site’s Performance (via) · · , , ,
  100. European Accessibility Act (EAA): Top 20 Key Questions Answered (via) · · ,
  101. Dialog Dilemmas and Modal Mischief (by/via) · · , , ,
  102. Mythbusting DOM: Was DOM Invented Alongside HTML? (by) · · , , ,
  103. CSS One-Liners to Improve (Almost) Every Project (by) · · ,
  104. The Silent Crisis in Open Source: When Maintainers Walk Away (by/via) · · ,
  105. It’s About Time I Tried to Explain What Progressive Enhancement Actually Is (by/via) · ·
  106. Tuesday, July 2, 2024 Security Releases (via) · · , ,
  107. Introducing the MDN HTTP Observatory (by/via) · · , ,
  108. CSS Surprise Manga Lines (by) · · ,
  109. Opting in to CSS Container Queries for an Existing Design System (by) · · , ,
  110. WebAssembly vs. JavaScript: A Comparison (via) · · , ,
  111. TypeScript 5.5: A Blockbuster Release (by) · ·
  112. Moving From Express to Fastify (by/via) · · , ,
  113. Overlays Misunderstand Accessibility (by) · · ,
  114. Accessible Form Validation From Scratch—Preparing for Validation (by/via) · · , ,
  115. Guidance on Applying WCAG 2 to Non-Web Information and Communications Technologies (WCAG2ICT) (by/via) · · , ,
  116. WebAuthn: Enhancing Security With Minimal Effort (by/via) · · ,
  117. Agile Is Not… Agile Is… (by/via) · · ,
  118. How to Use Container Queries Now (by/via) · · , ,
  119. RegreSSHion: Remote Unauthenticated Code Execution Vulnerability in OpenSSH Server (by/via) · · , ,
  120. YouTube Embeds Are Bananas Heavy and It’s Fixable (by/via) · · , , ,
  121. Announcing the Ladybird Browser Initiative (via) · ·
  122. European Accessibility Act (EAA)—What You Need to Know (by/via) · · ,
  123. Are Web Components Worth It? (by+) · · , , , ,
  124. Layout and Reading Order (by/via) · · , ,
  125. The 3 Types of CSS Utility Classes (by) · · ,
  126. Deploy AWS Lambda Functions With Serverless Framework and Node.js (by) · · , , , ,
  127. Be Careful Using “Grid” (by) · ·
  128. You Don’t Know Undo/Redo (by) · ·
  129. Feedback on a Pagination Pattern (by) · · ,
  130. Do Grayscale Images Take Less Space? · · , ,
  131. Accessible PDF Forms Online—There’s a Catch (by/via) · · , ,
  132. How to Annul Promises in JavaScript (by) · · ,
  133. Why Toggle Switches Suck (and What to Do Instead) (by) · · , ,
  134. 7 Ways to Champion Accessibility in Your Company (by) · · ,
  135. Create npm Package With CommonJS and ESM Support in TypeScript (by) · · , , , ,
  136. Figma AI (by) · · , ,
  137. Integrate Go Library Into a JavaScript Webpage With WebAssembly (by) · · , ,
  138. 5 Questions for Bramus Van Damme (by+/via) · · , ,
  139. A Proposal for MDN to Use the APG (by) · · ,
  140. Checkboxes: Design Guidelines (by/via) · · , , ,
  141. How to Improve Your Microcopy: UX Writing Tips for Non-UX Writers (by/via) · · , , , ,
  142. Product and UX: Study Guide (via) · · , , , ,
  143. The True Story—as Best I Can Remember—of the Origin of Mosaic and Netscape (by) · · , , , ,
  144. This Month in Servo: Text Fields, Better Emoji, Devtools, and More (via) · · ,
  145. Comprehensive React.js Cheatsheet for Developers (by) · · ,
  146. Browser Support Tests in JavaScript for Modern Web Features (by/via) · · , , ,
  147. “Good Commit” vs. “Your Commit”: How to Write a Perfect Git Commit Message (by) · · , , ,
  148. How We Tamed Node.js Event Loop Lag: A Deepdive (by/via) · · , ,
  149. Strangling the Monolith (by/via) · · , , ,
  150. Don’t Be Fooled by Figma’s New AI Features (by/via) · · ,
  151. Microsoft 1998 = Apple 2024 · · , ,
  152. Why and How You Should Rate-Limit Your API · ·
  153. Understanding React Hooks (by) · · ,
  154. The Time for Designers to Learn to Code Is Now (by/via) · · , , , ,
  155. A Text-Reveal Effect Using “conic-gradient()” in CSS (by/via) · · , , ,
  156. How to Make a Strong Case for Accessibility (by/via) · · , ,
  157. I Got Hacked and Blew Up Prod · · , , ,
  158. New to the Web Platform in June (by/via) · · , , , , , , , ,
  159. Ecma International Approves ECMAScript 2024: What’s New? (by) · · ,
  160. Enhancing The New York Times Web Performance With React 18 (via) · · , ,
  161. Polyfill Supply Chain Attack Embeds Malware in JavaScript CDN Assets (by/via) · · ,
  162. AI Anxiety and How to Design for It: Resources and Best Practices (by/via) · · ,
  163. Consent, LLM Scrapers, and Poisoning the Well (by) · · , ,
  164. The Little Things: Confusing Error Messages (by) · · , ,
  165. Advanced JavaScript Performance Optimization: Techniques and Patterns (by) · · , , , ,
  166. Catching Compromised Cookies (by/via) · · , ,
  167. Beyond Monospace: The Search for the Perfect Coding Font (by+/via) · · ,
  168. Two New Artificial Intelligence Laws and Their Effects on Accessibility (via) · · , ,
  169. The Design Purity Trap and How to Escape It (by) · · ,
  170. How to Set Up Serverless Framework to Deploy AWS Lambda, Queues, and DynamoDB With Node.js (by) · · , , , ,
  171. New JavaScript Set Methods (by/via) · ·
  172. Use Node Version Manager With Oh My Zsh (by) · · , ,
  173. Web Design Engineering With the New CSS (by/via) · · ,
  174. AI Ethicists Are Speaking Out, but Are We Listening? (by/via) · · ,
  175. Why Do Designers Become Managers? (via) · · , ,
  176. Backdoor Slipped Into Multiple WordPress Plugins in Ongoing Supply-Chain Attack (by/via) · · , ,
  177. Concept (via) · · ,
  178. Why Is It So Difficult to Give Best in Class Accessibility Examples of Websites? (by) · ·
  179. In Detail: 1.4.11 Non-Text Contrast (User Interface Components) (by) · · , , , ,
  180. Microfeatures I Love in Blogs and Personal Websites (by) · · ,
  181. 7 Use Cases for JavaScript Proxies · ·
  182. Exploring Randomness in JavaScript (by) · · ,
  183. Is It Good Design, or Does It Just Look Good? (via) · ·
  184. MDX or: How I Learned to Stop Worrying and Love Multimedia Writing (by/via) · · ,
  185. Measuring Developer Experience at Google (by) · · , , ,
  186. Understanding JWT Authentication: A Comprehensive Guide With Examples · · , , ,
  187. Design Extremes of Custom Accessibility Actions (via) · · , ,
  188. A Rant About Front-End Development (by) · · , , , , , ,
  189. Announcing TypeScript 5.5 (by/via) · · ,
  190. Bun Is Much Faster Than Node.js 22 at Decoding Base64 Inputs (by) · · , , ,
  191. Inline Conditionals in CSS, Now? (by) · ·
  192. Node v20.15.0 (LTS) (by/via) · · ,
  193. Seamless Screenshot Testing for Compose With Screenshotbot (by) · · , , ,
  194. Simplest View Transitions Multi Page Demo (No JavaScript) (by) · · , , ,
  195. State of JavaScript 2023 (by+/via) · · ,
  196. Tracking the Impact of Our Content Design Work (by/via) · · , ,
  197. Uniting Web and Native Apps With 4 Unknown JavaScript APIs (by/via) · · , ,
  198. The Hacking of Culture and the Creation of Socio-Technical Debt (by) · · ,
  199. Know the “search” Element (by) · · ,
  200. Footnotes Progressively Enhanced to Popovers (by/via) · · , , ,
  201. How to Perform Data Validation in Node.js (by/via) · · , ,
  202. npm and Node.js Should Do More to Make ES Modules Easy to Use (by) · · , , , ,
  203. Positioning Popover Elements (Pseudo-Anchoring) (by) · · ,
  204. Understanding React Compiler (by) · · ,
  205. Mina Tamang on SEO Techniques That Prioritise the User Experience (by/via) · · , , , , ,
  206. Building a Responsive Menu With CSS (and No JavaScript) (by) · · , ,
  207. Writing a WordPress Theme in Less Than 4 KB · · , , ,
  208. Firefox DevTools Newsletter—127 (via) · · , , , ,
  209. A Brief Introduction to Keyboard Accessibility (by/via) · · , , ,
  210. How Top HR Agencies Build Trust Through Logo Designs (by/via) · · , ,
  211. Inline Conditionals in CSS? (by) · ·
  212. Modern CSS Layout Is Awesome: Talking and Thinking About CSS Layout (by/via) · · ,
  213. Some UX Design Principles Startups Should Know (by/via) · · , ,
  214. How Content Creation Helped Me Land My First Tech Job (by) · · ,
  215. Mike McQuaid on 15 Years of Homebrew (by+) · · ,
  216. Humanizing Technology in the Age of Conscious AI (via) · · ,
  217. Say No to “console.log”! · · ,
  218. How React 19 (Almost) Made the Internet Slower (via) · · ,
  219. htmx 2.0.0 Has Been Released! (via) · · ,
  220. The Way We Design AI Looks Like Nostalgia Already (by/via) · · ,
  221. How to Increase the Visibility of Error Messages (by/via) · · , ,
  222. Building a User-Centered Product-Management Culture (by/via) · · , ,
  223. What Happens When a Major npm Library Goes Commercial? (by) · · , ,
  224. Design Without Process, or the Form Factor Trap (by/via) · · ,
  225. BEM Modifiers in Pure CSS Nesting (by) · · , ,
  226. Dealing With Unicode Strings, Done Right and Better (by) · · ,
  227. Mastering JavaScript Generators (by) · · ,
  228. UUIDv7 in 22 Languages (by) · · , , , , , , ,
  229. What Does “aria-hidden=true” Actually Do to Interactive Elements? (by) · · , , , ,
  230. Dual Publishing ESM and CJS Modules With tsup and “Are the Types Wrong?” (by) · · , , , ,
  231. I Made My Own JSON Parser (by) · · ,
  232. Minimal SVG Favicon (by) · · , , ,
  233. Researchers Uncover npm Registry Vulnerability to Cache Poisoning and DoS Attacks (by/via) · · , , , ,
  234. Safari 18—What Web Features Are Usable Across Browsers? (by) · · , , , , , ,
  235. What Is Mixed Content? (by) · · ,
  236. The Basics of DNS: Understanding the Internet’s Directory Service (by) · · ,
  237. OAuth Authentication (by/via) · · ,
  238. Using AI to Encourage Best Practices in the Code Review Process (by) · · , , ,
  239. What Are CSS Container Style Queries Good For? (by/via) · · ,
  240. Difference Between Docker, Kubernetes, and Podman for System Design Interview? (by) · · , , ,
  241. How JavaScript Is Finally Improving the Module Experience (by/via) · · , , ,
  242. Use of “ch” Unit Considered Inappropriate (in Certain Circumstances) (by) · · , ,
  243. Writing Your First Visual Regression Check in Playwright (by/via) · · , , ,
  244. Setting Up Typography Variables in Figma (via) · · ,
  245. 2-Page Login Pattern, and How to Fix It (by/via) · · , , ,
  246. Blazing Fast Websites With Speculation Rules (by/via) · ·
  247. Don’t Refactor the Code (by) · · , , ,
  248. Every Website and Web App Should Have a Service Worker (by) · · ,
  249. Learn Grid Now, Container Queries Can Wait (by/via) · · , ,
  250. Can You Be Creative Just by Creating? (by) · · ,