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. Noisy, Hungry Data Centers Are Catching Communities by Surprise (by/via) · · ,
  2. Let’s Bring Back Browsing (by) · · ,
  3. Company Culture Happens Outside Management (by) · · ,
  4. Brief Note on Disclosures in Fieldsets (by) · · , ,
  5. CSS Values and Units Module Level 5 (by+/via) · · ,
  6. Predicting Developer Attrition (by) · · ,
  7. Using Controllers for Keyboard Accessibility (by/via) · · , ,
  8. 2024: 0.5% of the Global Top 200 Websites Use Valid HTML (by) · · , , , ,
  9. Standalone Components Are the Future · · , ,
  10. Logical Properties in Size Queries (by/via) · · , ,
  11. How to Find the Accessible Name of a Button With Google Chrome (by) · · , , , , , ,
  12. The Neverending Story (by) · · , , , ,
  13. Top 10 Angular Architecture Mistakes You Really Want to Avoid (by/via) · · , ,
  14. The Easiest Way to Start Working with OKRs (by) · · , ,
  15. Anchor Positioning Quirks (by/via) · · ,
  16. Chrome Ends Support for First Input Delay (by/via) · · , , , , ,
  17. What Does Hydration Mean? (by/via) · · , , , ,
  18. The Undeniable Utility of CSS “:has” (by) · · , ,
  19. JavaScript Promises in Depth With V8 Engine Internals (by) · · , ,
  20. More npm Packages on Cloudflare Workers: Combining Polyfills and Native Code to Support Node.js APIs (by+/via) · · , , , ,
  21. A Web Component for CodePen Embeds? (by) · · ,
  22. Ensuring the Staying Power of User Experience in Your Organization (by/via) · · , ,
  23. CSS Triggers (by) · · , ,
  24. Manual ’Till It Hurts (by) · · ,
  25. The State of ES5 on the Web (by) · · , , ,
  26. Story of a Button (via) · ·
  27. Data Centers Are Eating and Drinking Our Environment (by) · · , ,
  28. Frontend Dev Plus Data Structures and Algorithms: How DSA Can Power Your React App · · ,
  29. Simplicity (via) · · ,
  30. The Secrets of the “delete” Operator in JavaScript (by) · · ,
  31. Unrealistic Deadlines in Software Engineering (by) · · , , ,
  32. Look Out, Kids: PHP Is the New JavaScript (by/via) · · , , ,
  33. How to Create a Weekly Google Analytics Report That Posts to Slack (by/via) · · , , , , ,
  34. How to Detect Broken Links With Playwright (by/via) · · , , ,
  35. Design Systems Should Do Less (by/via) · · , ,
  36. Understanding JavaScript Closures With Examples (by) · · , ,
  37. The Story of Figma: Living Long Enough as a Hero to Become a Villain? (via) · ·
  38. CSS Display Contents (by) · · ,
  39. The Helpful Content Update Was Not What You Think (by/via) · · , ,
  40. Inlay Hints Make It Easy to Read Code in VS Code (by) · · , , ,
  41. A Release Note for the Web Platform (by) · · , , , ,
  42. A Complete Guide to Beginning With JavaScript (by/via) · · , , ,
  43. Dreaming About Drupal [and] Its Long Term Potential (by) · · ,
  44. What’s New in React 19 (by/via) · ·
  45. Writing Effective Pull Request Descriptions: A Developer’s Guide (by) · · , , , ,
  46. Should Form Labels Be Wrapped or Separate? (by/via) · · , , , ,
  47. Notes on Setting Up a Static Website With AWS (Route 53, S3, ACM) (by) · ·
  48. Tackling a System’s Accessibility Without Testing (by+/via) · · , , ,
  49. What Is React.js? (by) · · , ,
  50. Backgrounds for the Box Model (and Why It Can Be Useful) (by/via) · · , ,
  51. How to Deploy Node.js to AWS Lambda With OpenTofu and GitHub Actions · · , , , , , , ,
  52. “AggregateError” in JavaScript (by) · · ,
  53. Lazy Loading Isn’t Just Lazy, It’s Late: The Web Deserves Faster · · , , , ,
  54. I Want the Read Write Suggest-Edit Accept-Edit Update Web (by) · · ,
  55. Semi-Annual Reminder to Learn and Hire for Web Standards (by) · · , , , ,
  56. Reducing UX Debt (or Die Trying) (by/via) · · ,
  57. How I Created a 3.78 MB Docker Image for a JavaScript Service · · ,
  58. Java Optionals (by/via) · ·
  59. An Enhancement to Accessible Responsive Tables (by) · · , , ,
  60. Understanding Web Storage: LocalStorage, SessionStorage, and Cookies (by) · · , ,
  61. A/B Testing 101 (by/via) · · , , ,
  62. Supporting AVIF in Google Search (by/via) · · , , , ,
  63. An SSR Performance Showdown (by) · · , , , , , , ,
  64. Querying the Color Scheme (by) · · , , ,
  65. Why Playwright Is Less Flaky Than Selenium (by) · · , , ,
  66. What the Heck Is ARIA? A Beginner’s Guide to ARIA for Accessibility (by/via) · · , , , ,
  67. Drupal 11: New Features to Empower Ambitious Site Builders (via) · ·
  68. HTTP 1 vs. HTTP 2 vs. HTTP 3 (by) · · , , , ,
  69. OpenAI Is Shockingly Good at Unminifying Code (by) · · , ,
  70. Stuck in the Steps? (via) · · ,
  71. Hidden Cost of Frontend Frameworks · · , ,
  72. Python Developers Survey 2023 Results (via) · · ,
  73. When Regex Goes Wrong (by) · ·
  74. Why I Don’t Block AI Scrapers (by) · · , ,
  75. Paragraphs (by) · · ,
  76. CSS Style Observer (by) · · , ,
  77. New to the Web Platform in August (by/via) · · , , , , , ,
  78. Caching Demystified: Inspect, Clear, and Disable Caches (by/via) · · , , , , , ,
  79. The “aside” Element (by) · · , ,
  80. The Ultimate Guide to Font Performance Optimization (via) · · , , ,
  81. The Secret Inside One Million Checkboxes (by) · · , ,
  82. Multithreading in Node.js: Using Atomics for Safe Shared Memory Operations (by) · · , ,
  83. IndieWeb vs. Indie Web (by) · · , , ,
  84. Release Notes for Safari Technology Preview 202 (by/via) · · , , ,
  85. How to Handle Errors in Next.js for Node With the App Router (by/via) · · , , ,
  86. Building Better Logins: A UX and Accessibility Guide for Developers (via) · · , ,
  87. What’s Missing From HTML and CSS? (by/via) · · ,
  88. JavaScript Generators Explained, but on a Senior-Level (by/via) · · ,
  89. The Dialog Element With Entry and Exit Animations (by/via) · · , ,
  90. Chris Ferdinandi on ADHD, Focus, and Working in Tech (by+/via) · · , ,
  91. How to Use React Compiler—a Complete Guide (by/via) · · , , ,
  92. Advanced Playwright Techniques for Flawless Testing (by/via) · · , , ,
  93. A Comprehensive Guide to Understanding TypeScript Record Type (via) · · ,
  94. Shipping Tumblr and WordPress (via) · · ,
  95. Interface Segregation Principle in React (by) · · , ,
  96. Are Design Systems Just a Bandaid? (by/via) · · , ,
  97. Make Me One (Input) With Everything (by/via) · · , , ,
  98. How to Fix ESLint Violations With AI Assistance (via) · · , , ,
  99. Set Up a $4/Month Hetzner VM to Skip the Serverless Tax (via) · · , ,
  100. Has the IndieWeb Become Irrelevant? (by) · · , ,
  101. How to Easily Add Dark Mode to Your Website (by) · · , , , , ,
  102. What Skills Should You Focus on as Junior Web Developer in 2024? (via) · · , , , , , , , ,
  103. Generating Unique Random Numbers in JavaScript Using Sets (by/via) · · ,
  104. Managing Angular (by) · · , ,
  105. What RSS Needs (by) · · , , ,
  106. Why Is Reaching WCAG Level AAA Not Recommended? (by) · · , ,
  107. WCAG’s A and AA Distinction Is Mostly Academic (by) · · , ,
  108. DevOps Project—the Ultimate CI/CD Corporate DevOps Pipeline Project · · , , ,
  109. Top Ten Git Tips and Tricks (by/via) · · , ,
  110. Mutation-Testing Our JavaScript SDKs (by/via) · · , ,
  111. Behind the Scenes: The Making of VS Code (by+/via) · · , , , ,
  112. Explicitly State the Difference Between Options (via) · · ,
  113. Understanding Vue’s Suspense (by) · ·
  114. Is Using “aria-label” to Add Alternative Text But No “alt” Attribute Still a WCAG Fail? · · , , , , ,
  115. Content Strategy: Study Guide (by/via) · · , , , ,
  116. Raw-Dogging Websites (by) · · , , ,
  117. The Only Widely Recognized JavaScript Feature Ever Deprecated (by) · · ,
  118. The Two Lines of CSS That Tanked Performance (120 FPS to 40 FPS) (by) · · , ,
  119. The Top Programming Languages 2024 (by/via) · · , , , , , , , , , ,
  120. Improving the Screen Reader Experience for “Learn WCs” (by) · · , , , , , , ,
  121. Mastering Typography in Logo Design (by/via) · · , , ,
  122. Spoiler Alert: It Needs to Be Accessible (by) · · , , ,
  123. Fluid Typography in Design Systems: From Design to Code (by/via) · · , , ,
  124. How to Create an npm Package (by) · · , ,
  125. Foundations: Labelling Text Fields With Input and Label (via) · · , ,
  126. Exposing Internal Methods on Vue Custom Elements (by) · · ,
  127. Can You Convert a Video to Pure CSS? (by) · · , , ,
  128. Amazon Cloud CEO Predicts a Future Where Most Software Engineers Don’t Code—and AI Does It Instead (by/via) · · , ,
  129. Understanding WCAG 2.1’s Success Criteria 1.4.10 Reflow (via) · · , , ,
  130. Configuring SSH Keys for Multiple GitHub Accounts (by) · · , , ,
  131. Inside ECMAScript: JavaScript Standard Gets an Extra Stage (by/via) · · ,
  132. The Monospace Web (by) · · , ,
  133. Elastic Overflow Scrolling (by/via) · · ,
  134. Google Quietly Launches New AI Crawler (by/via) · · , ,
  135. Double Your Specificity With This One Weird Trick (by) · · , , ,
  136. Custom Range Slider Using Anchor Positioning and Scroll-Driven Animations (by/via) · · , , , ,
  137. Basic Keyboard Shortcut Support for Focused Links (by) · · , , , , ,
  138. 5 Wasm Use Cases for Frontend Development (by/via) · · , , ,
  139. How to Make Your Web Page Faster Before It Even Loads (by/via) · · , ,
  140. JS Dates Are About to Be Fixed (by/via) · · ,
  141. From RPGs to UX: How Progress Indicators Affect User Engagement (via) · · , ,
  142. Wasp: The JavaScript Answer to Django for Web Development (via) · · , ,
  143. Top 5 HTML Features You’re Not Using (But Should Be) (by) · ·
  144. The Case for a Better Web (by) · · ,
  145. State of CSS 2024 (via) · · ,
  146. Ryan Dahl Explains Why Deno Had to Evolve With Version 2.0 (by/via) · · , , ,
  147. Regexes Got Good: The History and Future of Regular Expressions in JavaScript (by/via) · · , ,
  148. React Is (Becoming) a Full-Stack Framework (by) · · ,
  149. Igalia Chats: The Coming Adpocalypse (by+/via) · · , , , ,
  150. Common Misconceptions About How to Optimize LCP (by/via) · · , , ,
  151. Batteries Included Accessibility: A Pragmatic Guide to Get Started Today (by+/via) · · , , ,
  152. Line Numbers for “<textarea>” Using SVG (by) · · , ,
  153. How Did We Test Hundreds of Landing Pages (via) · · ,
  154. Center Items in First Row With CSS Grid (by) · · , ,
  155. Accessibility Specialists Warn Against Using AI for Alt Text (by/via) · · , , ,
  156. 10 Python Programming Optimisation Techniques (by) · · , ,
  157. The “Other” C in CSS (by/via) · · , ,
  158. What’s New in ECMAScript 2024 (by) · · ,
  159. The Role of Sound Design in UX Design: Beyond Notifications and Alerts (via) · · , ,
  160. The CSS “contain” Property (by/via) · · ,
  161. How Good UX Design Can Transform Lead Generation (via) · · , ,
  162. UX Is Dead. Long Live UX. (by/via) · · , ,
  163. Using JavaScript Generators to Visualize Algorithms (by) · · , ,
  164. The “P” Word, Legitimacy, and Challenging Our Default Models and Frames (by) · · ,
  165. How Can Accessibility Improve Your Conversion Rate Optimization Efforts? (by) · · , , , ,
  166. AI Paradox (by) · · ,
  167. Node.js Doubles Security Releases With Newly Automated Process, Re-Evaluates Unsupported Experimental Features (by/via) · ·
  168. Reckoning: The Way Out (by) · · , , ,
  169. What Signal Are You Sending? (via) · · , ,
  170. 80/20 Accessibility (by) · · ,
  171. Top 10 Web Updates From Google I/O ’24 (via) · · , , , , ,
  172. Just Use Postgres · · , , , , , ,
  173. Good Refactoring vs. Bad Refactoring (by/via) · · , , , ,
  174. Brand New Performance Features in Chrome DevTools (by/via) · · , , , , ,
  175. Alternatives to Using Pure Black (“#000000”) for Text and Backgrounds (by/via) · · , , ,
  176. Captions vs. Subtitles: Leave No Viewer Behind (by) · · , , , ,
  177. How Does the Browser Render HTML? (by) · · , , , , , , ,
  178. Advanced Figma Components Tips and Tricks: Little Gems We Love 2024 (by/via) · · , ,
  179. How to Defend Your Design Process (by/via) · · , ,
  180. Writing Alt Text for a Scientific Figure (by) · · , , ,
  181. How Are the “colspan” and “rowspan” Attributes Different? (by/via) · · ,
  182. 5 Questions for Tammy Everts (by+/via) · · , , , ,
  183. Reckoning: Caprock (by) · · ,
  184. “Smart” Layouts With Container Queries (by/via) · · , ,
  185. Rote Learning HTML & CSS (by/via) · · , , ,
  186. I Love the Web (by) · · ,
  187. How I Won $2,750 Using JavaScript, AI, and a Can of WD-40 (by) · · ,
  188. Django: Create Sub-Commands Within a Management Command (by) · ·
  189. “blocking=render”: Why Would You Do That?! (by) · · , ,
  190. CSS Finally Adds Vertical Centering in 2024 (by) · · ,
  191. Reckoning: Object Lesson (by) · · , ,
  192. Tips for Using React Testing Library to Write Unit Tests (by/via) · · , ,
  193. Dev Encyclopedia (by) · · , , ,
  194. Context Is King: Long Live the King! (by/via) · · , , ,
  195. The “address” Element (by) · · ,
  196. Reckoning: The Landscape (by) · · , , ,
  197. The Importance of Communication in Accessibility Testing (via) · · , ,
  198. Start Over-Engineering Your CSS (by/via) · · , ,
  199. Relative Color Syntax—Basic Use Cases (by/via) · · , , , ,
  200. “font-size” Limbo (by) · · , ,
  201. 45 Visual Studio Code Shortcuts for Boosting Your Productivity (by/via) · · , , ,
  202. Things to Do Before Asking “Is This Accessible?” (by) · · , ,
  203. The Problem With Growth: Why Everything Is Failing Now (via) · · , , , ,
  204. The Most Important Thing to Look at When Choosing an Accessibility Auditor (by/via) · · , ,
  205. ObsoHTML, the Obsolete HTML Checker (by) · · , , ,
  206. Implementing SAML SSO in Node.js With Microsoft Entra ID (by) · · , , ,
  207. Action Web Components Which Span the Server-Client Divide (by) · · , ,
  208. Comparing Design Systems to Find the Best Qualities (by) · · ,
  209. Common Causes of Memory Leaks in JavaScript (by) · · , ,
  210. 12 Best JavaScript Animation Libraries to Supercharge Your Web Projects in 2024 (by) · · , , ,
  211. JSR and Deno: Final Review (by) · · ,
  212. Stop Versioning Your Docker Compose File (by) · · ,
  213. Exploring the Possibilities of Native JavaScript Decorators (by/via) · · ,
  214. Design Patterns and WCAG (by/via) · · , ,
  215. SOLID Principles for Designers (by) · · , ,
  216. When It Comes to Digital Accessibility Lawsuits, the Best Defense Is a Good Offense (via) · · ,
  217. We Don’t Need a Boss, We Need a Process (by) · · , , ,
  218. The Dying Web (by) · · , , , , , ,
  219. Now in Baseline: Animating Entry Effects (by/via) · · , , , , ,
  220. Good Intentions, Poor Context (via) · · , , , ,
  221. Documentation and Migration: From Vue 2 to Vue 3 (by+/via) · · , , , ,
  222. Attaching Notes to Git Branches (by) · · ,
  223. WCAG 2.2 Map by Theme (by) · · , ,
  224. W3C Opens Community-Wide Survey (via) · · , ,
  225. The “abbr” Element (by) · · , ,
  226. Snippets in Svelte 5 (by/via) · ·
  227. Design Tokens Demystified (by/via) · · , ,
  228. Announcing Official Puppeteer Support for Firefox (by+/via) · · , , , ,
  229. The Great npm Garbage Patch (via) · · , , ,
  230. The Art of Dithering and Retro Shading for the Web (by) · · , ,
  231. Moderated and Unmoderated User Testing: The Differences (via) · · , ,
  232. Disability Data Alarmingly Absent From AI Algorithmic Tools, Report Suggests (via) · · , ,
  233. Creating a Personal Brand: How to Sell Yourself as a Developer (by/via) · · , ,
  234. The Moral Implications of Being a Moderately Successful Computer Scientist and a Woman (by/via) · · ,
  235. Drupal 11 and Beyond (via) · ·
  236. What Is a Component Library and Should You Build Your Own? (by) · ·
  237. Video With Alpha Transparency on the Web (by) · · , ,
  238. The Sneaky Costs of Scaling Serverless (by) · · , , ,
  239. The Role of Generative AI in Shaping Next-Gen UX Strategies (via) · · , , ,
  240. Should Your Website Work Without JavaScript? (by+/via) · · , ,
  241. Shifting From Delivery Mode to Product Management: Shifting the Focus of Your Sprint Review (by/via) · · , , , ,
  242. Let’s Make a Simpler, More Accessible Web (by) · · , , , , , ,
  243. It’s Time to Talk About “CSS5” (by/via) · · ,
  244. Is CSS Grid Really Slower Than Flexbox? (by) · · , ,
  245. HTML Web Components Can Have a Little Shadow DOM, as a Treat (by) · · , , ,
  246. Figma Typography Variables (by/via) · · ,
  247. 101 React Tips and Tricks for Beginners [and] Experts (by) · · , ,
  248. The Benefits of Learning Programming as a Designer (by/via) · · , , ,
  249. How to Keep IA Projects From Going Off the Rails (by) · ·
  250. European Accessibility Act Requires Culture to Shift! (by) · · , , ,