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, or through other channels.)

  1. Chrome Ends Support for First Input Delay (by/via) · · , , , , ,
  2. Ensuring the Staying Power of User Experience in Your Organization (by/via) · · , ,
  3. CSS Triggers (by) · · , ,
  4. Simplicity (via) · · ,
  5. Unrealistic Deadlines in Software Engineering (by) · · , , ,
  6. Understanding JavaScript Closures With Examples (by) · · , ,
  7. The Story of Figma: Living Long Enough as a Hero to Become a Villain? (via) · ·
  8. CSS Display Contents (by) · · ,
  9. The Helpful Content Update Was Not What You Think (by/via) · · , ,
  10. Inlay Hints Make It Easy to Read Code in VS Code (by) · · , , ,
  11. A Release Note for the Web Platform (by) · · , , , ,
  12. A Complete Guide to Beginning With JavaScript (by/via) · · , , ,
  13. Dreaming About Drupal [and] Its Long Term Potential (by) · · ,
  14. What’s New in React 19 (by/via) · ·
  15. Writing Effective Pull Request Descriptions: A Developer’s Guide (by) · · , , , ,
  16. Should Form Labels Be Wrapped or Separate? (by/via) · · , , , ,
  17. Notes on Setting Up a Static Website With AWS (Route 53, S3, ACM) (by) · ·
  18. Tackling a System’s Accessibility Without Testing (by+/via) · · , , ,
  19. What Is React.js? (by) · · , ,
  20. Backgrounds for the Box Model (and Why It Can Be Useful) (by/via) · · , ,
  21. How to Deploy Node.js to AWS Lambda With OpenTofu and GitHub Actions · · , , , , , , ,
  22. “AggregateError” in JavaScript (by) · · ,
  23. Lazy Loading Isn’t Just Lazy, It’s Late: The Web Deserves Faster · · , , , ,
  24. I Want the Read Write Suggest-Edit Accept-Edit Update Web (by) · · ,
  25. Semi-Annual Reminder to Learn and Hire for Web Standards (by) · · , , , ,
  26. Reducing UX Debt (or Die Trying) (by/via) · · ,
  27. How I Created a 3.78 MB Docker Image for a JavaScript Service · · ,
  28. Supporting AVIF in Google Search (by/via) · · , , , ,
  29. An SSR Performance Showdown (by) · · , , , , , , ,
  30. OpenAI Is Shockingly Good at Unminifying Code (by) · · , ,
  31. What the Heck Is ARIA? A Beginner’s Guide to ARIA for Accessibility (by/via) · · , , , ,
  32. Stuck in the Steps? (via) · · ,
  33. Hidden Cost of Frontend Frameworks · · , ,
  34. Python Developers Survey 2023 Results (via) · · ,
  35. When Regex Goes Wrong (by) · ·
  36. Why I Don’t Block AI Scrapers (by) · · , ,
  37. Paragraphs (by) · · ,
  38. CSS Style Observer (by) · · , ,
  39. New to the Web Platform in August (by/via) · · , , , , , ,
  40. Caching Demystified: Inspect, Clear, and Disable Caches (by/via) · · , , , , , ,
  41. IndieWeb vs. Indie Web (by) · · , , ,
  42. Release Notes for Safari Technology Preview 202 (by/via) · · , , ,
  43. How to Handle Errors in Next.js for Node With the App Router (by/via) · · , , ,
  44. Building Better Logins: A UX and Accessibility Guide for Developers (via) · · , ,
  45. What’s Missing From HTML and CSS? (by/via) · · ,
  46. JavaScript Generators Explained, but on a Senior-Level (by/via) · · ,
  47. The Dialog Element With Entry and Exit Animations (by/via) · · , ,
  48. Chris Ferdinandi on ADHD, Focus, and Working in Tech (by+/via) · · , ,
  49. Shipping Tumblr and WordPress (via) · · ,
  50. Interface Segregation Principle in React (by) · · , ,
  51. Are Design Systems Just a Bandaid? (by/via) · · , ,
  52. Make Me One (Input) With Everything (by/via) · · , , ,
  53. How to Easily Add Dark Mode to Your Website (by) · · , , , , ,
  54. What Skills Should You Focus on as Junior Web Developer in 2024? (via) · · , , , , , , , ,
  55. Generating Unique Random Numbers in JavaScript Using Sets (by/via) · · ,
  56. WCAG’s A and AA Distinction Is Mostly Academic (by) · · , ,
  57. DevOps Project—the Ultimate CI/CD Corporate DevOps Pipeline Project · · , , ,
  58. Behind the Scenes: The Making of VS Code (by+/via) · · , , , ,
  59. Explicitly State the Difference Between Options (via) · · ,
  60. Understanding Vue’s Suspense (by) · ·
  61. Is Using “aria-label” to Add Alternative Text But No “alt” Attribute Still a WCAG Fail? · · , , , , ,
  62. Content Strategy: Study Guide (by/via) · · , , , ,
  63. The Top Programming Languages 2024 (by/via) · · , , , , , , , , , ,
  64. Improving the Screen Reader Experience for “Learn WCs” (by) · · , , , , , , ,
  65. Mastering Typography in Logo Design (by/via) · · , , ,
  66. Spoiler Alert: It Needs to Be Accessible (by) · · , , ,
  67. Fluid Typography in Design Systems: From Design to Code (by/via) · · , , ,
  68. How to Create an npm Package (by) · · , ,
  69. Foundations: Labelling Text Fields With Input and Label (via) · · , ,
  70. Exposing Internal Methods on Vue Custom Elements (by) · · ,
  71. Can You Convert a Video to Pure CSS? (by) · · , , ,
  72. Amazon Cloud CEO Predicts a Future Where Most Software Engineers Don’t Code—and AI Does It Instead (by/via) · · , ,
  73. Understanding WCAG 2.1’s Success Criteria 1.4.10 Reflow (via) · · , , ,
  74. Configuring SSH Keys for Multiple GitHub Accounts (by) · · , , ,
  75. Inside ECMAScript: JavaScript Standard Gets an Extra Stage (by/via) · · ,
  76. The Monospace Web (by) · · , ,
  77. Elastic Overflow Scrolling (by/via) · · ,
  78. Google Quietly Launches New AI Crawler (by/via) · · , ,
  79. Double Your Specificity With This One Weird Trick (by) · · , , ,
  80. Custom Range Slider Using Anchor Positioning and Scroll-Driven Animations (by/via) · · , , , ,
  81. Basic Keyboard Shortcut Support for Focused Links (by) · · , , , , ,
  82. 5 Wasm Use Cases for Frontend Development (by/via) · · , , ,
  83. How to Make Your Web Page Faster Before It Even Loads (by/via) · · , ,
  84. JS Dates Are About to Be Fixed (by/via) · · ,
  85. From RPGs to UX: How Progress Indicators Affect User Engagement (via) · · , ,
  86. Wasp: The JavaScript Answer to Django for Web Development (via) · · , ,
  87. Top 5 HTML Features You’re Not Using (But Should Be) (by) · ·
  88. The Case for a Better Web (by) · · ,
  89. State of CSS 2024 (via) · · ,
  90. Ryan Dahl Explains Why Deno Had to Evolve With Version 2.0 (by/via) · · , , ,
  91. Regexes Got Good: The History and Future of Regular Expressions in JavaScript (by/via) · · , ,
  92. React Is (Becoming) a Full-Stack Framework (by) · · ,
  93. Igalia Chats: The Coming Adpocalypse (by+/via) · · , , , ,
  94. Common Misconceptions About How to Optimize LCP (by/via) · · , , ,
  95. Batteries Included Accessibility: A Pragmatic Guide to Get Started Today (by+/via) · · , , ,
  96. Line Numbers for “<textarea>” Using SVG (by) · · , ,
  97. How Did We Test Hundreds of Landing Pages (via) · · ,
  98. Center Items in First Row With CSS Grid (by) · · , ,
  99. Accessibility Specialists Warn Against Using AI for Alt Text (by/via) · · , , ,
  100. 10 Python Programming Optimisation Techniques (by) · · , ,
  101. The “Other” C in CSS (by/via) · · , ,
  102. What’s New in ECMAScript 2024 (by) · · ,
  103. The Role of Sound Design in UX Design: Beyond Notifications and Alerts (via) · · , ,
  104. The CSS “contain” Property (by/via) · · ,
  105. How Good UX Design Can Transform Lead Generation (via) · · , ,
  106. UX Is Dead. Long Live UX. (by/via) · · , ,
  107. Using JavaScript Generators to Visualize Algorithms (by) · · , ,
  108. The “P” Word, Legitimacy, and Challenging Our Default Models and Frames (by) · · ,
  109. How Can Accessibility Improve Your Conversion Rate Optimization Efforts? (by) · · , , , ,
  110. AI Paradox (by) · · ,
  111. Node.js Doubles Security Releases With Newly Automated Process, Re-Evaluates Unsupported Experimental Features (by/via) · ·
  112. Reckoning: The Way Out (by) · · , , ,
  113. What Signal Are You Sending? (via) · · , ,
  114. 80/20 Accessibility (by) · · ,
  115. Top 10 Web Updates From Google I/O ’24 (via) · · , , , , ,
  116. Just Use Postgres · · , , , , , ,
  117. Good Refactoring vs. Bad Refactoring (by/via) · · , , , ,
  118. How Does the Browser Render HTML? (by) · · , , , , , , ,
  119. Advanced Figma Components Tips and Tricks: Little Gems We Love 2024 (by/via) · · , ,
  120. How to Defend Your Design Process (by/via) · · , ,
  121. Writing Alt Text for a Scientific Figure (by) · · , , ,
  122. How Are the “colspan” and “rowspan” Attributes Different? (by/via) · · ,
  123. Captions vs. Subtitles: Leave No Viewer Behind (by) · · , , , ,
  124. 5 Questions for Tammy Everts (by+/via) · · , , , ,
  125. Reckoning: Caprock (by) · · ,
  126. “Smart” Layouts With Container Queries (by/via) · · , ,
  127. Rote Learning HTML & CSS (by/via) · · , , ,
  128. I Love the Web (by) · · ,
  129. How I Won $2,750 Using JavaScript, AI, and a Can of WD-40 (by) · · ,
  130. Django: Create Sub-Commands Within a Management Command (by) · ·
  131. “blocking=render”: Why Would You Do That?! (by) · · , ,
  132. CSS Finally Adds Vertical Centering in 2024 (by) · · ,
  133. Reckoning: Object Lesson (by) · · , ,
  134. Tips for Using React Testing Library to Write Unit Tests (by/via) · · , ,
  135. Dev Encyclopedia (by) · · , , ,
  136. Context Is King: Long Live the King! (by/via) · · , , ,
  137. The “address” Element (by) · · ,
  138. Reckoning: The Landscape (by) · · , , ,
  139. The Importance of Communication in Accessibility Testing (via) · · , ,
  140. Start Over-Engineering Your CSS (by/via) · · , ,
  141. Relative Color Syntax—Basic Use Cases (by/via) · · , , , ,
  142. “font-size” Limbo (by) · · , ,
  143. 45 Visual Studio Code Shortcuts for Boosting Your Productivity (by/via) · · , , ,
  144. Things to Do Before Asking “Is This Accessible?” (by) · · , ,
  145. The Problem With Growth: Why Everything Is Failing Now (via) · · , , , ,
  146. The Most Important Thing to Look at When Choosing an Accessibility Auditor (by/via) · · , ,
  147. ObsoHTML, the Obsolete HTML Checker (by) · · , , ,
  148. Implementing SAML SSO in Node.js With Microsoft Entra ID (by) · · , , ,
  149. Action Web Components Which Span the Server-Client Divide (by) · · , ,
  150. Comparing Design Systems to Find the Best Qualities (by) · · ,
  151. Common Causes of Memory Leaks in JavaScript (by) · · , ,
  152. 12 Best JavaScript Animation Libraries to Supercharge Your Web Projects in 2024 (by) · · , , ,
  153. Stop Versioning Your Docker Compose File (by) · · ,
  154. Exploring the Possibilities of Native JavaScript Decorators (by/via) · · ,
  155. Design Patterns and WCAG (by/via) · · , ,
  156. SOLID Principles for Designers (by) · · , ,
  157. When It Comes to Digital Accessibility Lawsuits, the Best Defense Is a Good Offense (via) · · ,
  158. We Don’t Need a Boss, We Need a Process (by) · · , , ,
  159. The Dying Web (by) · · , , , , , ,
  160. Now in Baseline: Animating Entry Effects (by/via) · · , , , , ,
  161. Good Intentions, Poor Context (via) · · , , , ,
  162. Documentation and Migration: From Vue 2 to Vue 3 (by+/via) · · , , , ,
  163. Attaching Notes to Git Branches (by) · · ,
  164. WCAG 2.2 Map by Theme (by) · · , ,
  165. W3C Opens Community-Wide Survey (via) · · , ,
  166. The “abbr” Element (by) · · , ,
  167. Snippets in Svelte 5 (by/via) · ·
  168. Design Tokens Demystified (by/via) · · , ,
  169. Announcing Official Puppeteer Support for Firefox (by+/via) · · , , , ,
  170. The Great npm Garbage Patch (via) · · , , ,
  171. The Art of Dithering and Retro Shading for the Web (by) · · , ,
  172. Moderated and Unmoderated User Testing: The Differences (via) · · , ,
  173. Disability Data Alarmingly Absent From AI Algorithmic Tools, Report Suggests (via) · · , ,
  174. Creating a Personal Brand: How to Sell Yourself as a Developer (by/via) · · , ,
  175. The Moral Implications of Being a Moderately Successful Computer Scientist and a Woman (by/via) · · ,
  176. Drupal 11 and Beyond (via) · ·
  177. What Is a Component Library and Should You Build Your Own? (by) · ·
  178. Video With Alpha Transparency on the Web (by) · · , ,
  179. The Sneaky Costs of Scaling Serverless (by) · · , , ,
  180. The Role of Generative AI in Shaping Next-Gen UX Strategies (via) · · , , ,
  181. Should Your Website Work Without JavaScript? (by+/via) · · , ,
  182. Shifting From Delivery Mode to Product Management: Shifting the Focus of Your Sprint Review (by/via) · · , , , ,
  183. Let’s Make a Simpler, More Accessible Web (by) · · , , , , , ,
  184. It’s Time to Talk About “CSS5” (by/via) · · ,
  185. Is CSS Grid Really Slower Than Flexbox? (by) · · , ,
  186. HTML Web Components Can Have a Little Shadow DOM, as a Treat (by) · · , , ,
  187. Figma Typography Variables (by/via) · · ,
  188. 101 React Tips and Tricks for Beginners [and] Experts (by) · · , ,
  189. The Benefits of Learning Programming as a Designer (by/via) · · , , ,
  190. How to Keep IA Projects From Going Off the Rails (by) · ·
  191. European Accessibility Act Requires Culture to Shift! (by) · · , , ,
  192. AT Is More Than Screen Readers (by) · · , , , , ,
  193. AI Act Is Here (by) · · ,
  194. Programming, I Hate It (by) · · ,
  195. Attitudes to Digital Accessibility 2024 (via) · · ,
  196. Who Is the Fastest? Node.js, Bun.js, or Deno.js (by) · · , , , , , ,
  197. What You Want Isn’t Always What You Want (by) · ·
  198. What If You Used Container Units for… Everything? (by/via) · · , ,
  199. Types of Accessibility Approaches (by) · · , , ,
  200. The Anchor Element (by) · · , , , ,
  201. Tabs, Used Right (by/via) · · , , ,
  202. “stripes()”: The Border Function You Never Knew You Needed (by) · · , ,
  203. Mastering Next.js: The Ultimate Guide to Structuring Large-Scale Projects in 2024 (by) · · ,
  204. How to Make the Internet More Accessible (by+/via) · · , ,
  205. Beyond React: How Astro and Its Server Islands Work (by/via) · · , ,
  206. Advanced Use Cases of the Node.js Native Test Runner (via) · · ,
  207. The Evolution of Attention (via) · · ,
  208. The Anatomy of Accessible Forms: Best Practices (via) · · , , ,
  209. HTML Web Components Make Progressive Enhancement and CSS Encapsulation Easier (by/via) · · , , , , ,
  210. How to Build a Multilingual Website With Nuxt.js (by/via) · · , ,
  211. Figma and the Cost of Collaboration (by/via) · · ,
  212. Browsers, Cookies, and Surfing the Web: The Quirky History of Internet Lingo (via) · · , ,
  213. Using Postman for API Documentation: All You Need to Know (by) · · , ,
  214. The Future Is Up for Grabs When Anyone Can Make Designs (via) · · ,
  215. Replacing jQuery UI Datepicker With HTML Date Input (by) · · ,
  216. Reading From the Clipboard in JavaScript (by/via) · ·
  217. Nike’s $25B Blunder Shows Us the Limits of “Data-Driven” (by/via) · · ,
  218. Interop 2024: Chrome at 100% for the Accessibility Focus Area (via) · · , , , ,
  219. How to Stop Form Spam Bots With Honeypot Fields (by) · · ,
  220. How Google Handles JavaScript Throughout the Indexing Process (by+/via) · · , , , , ,
  221. Does Screen Time Help or Hinder Creativity? (via) · · ,
  222. Decoding WCAG: “Change of Context” and “Change of Content” (via) · · , ,
  223. A Handful of Reasons JavaScript Won’t Be Available (by/via) · · ,
  224. Misfire (by) · · , , ,
  225. Why You Should Ship Your App, Even if It Sucks (by/via) · · ,
  226. Standardization Stories (by/via) · · , , , ,
  227. On Mapping the World of Frontend Development (by) · · , , , ,
  228. New to the Web Platform in July (by/via) · · , , , , , , , ,
  229. Instead of Restricting AI and Algorithms, Make Them Explainable (by) · · ,
  230. “git push --force” and How to Deal With It (by+/via) · ·
  231. Garbage Collection and Closures (by) · · , , ,
  232. Frontend Security Checklist (by) · · , ,
  233. Developing a RACI Matrix for Accessibility (by/via) · · , ,
  234. Websites Are Blocking the Wrong AI Scrapers (Because AI Companies Keep Making New Ones) (by/via) · · , ,
  235. Vue and Vite Updates (by/via) · · , ,
  236. Why Unknown Types Are Useful (by) · · ,
  237. What We Got Wrong About HTTP Imports (by/via) · · ,
  238. WebKit Features in Safari 17.6 (by/via) · · , , , ,
  239. WebGPU (by+/via) · ·
  240. WCAG, VPAT, S508, Level A—What on Earth? (via) · · , , ,
  241. Top 20 JavaScript Tricks and Tips for Every Developer · · ,
  242. Third-Party Cookies Have Got to Go (by/via) · · , ,
  243. The Art of Clean Code: Mastering the SOLID Principles · · , ,
  244. Patterns for Memory Efficient DOM Manipulation With Modern Vanilla JavaScript (by/via) · · , , ,
  245. Have It All: External, Styleable, and Scalable SVG (by) · · , ,
  246. Flexible Network Data Preloading in Large SPAs (by) · · , , ,
  247. Accessible Heading Structures for Home Pages (via) · · , ,
  248. User “Wants” vs. Accessibility (by) · · ,
  249. Is It Okay to Make “connectedCallback” Async? (by) · · , ,
  250. Designing for Forgiveness: How to Create Error-Tolerant Interfaces (by/via) · · , , ,