Frontend Dogma

News and Tools for Frontend Developers (13)

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

  1. Confusing Git Terminology (by) · · ,
  2. Breaking Down a Design (by) · ·
  3. Blinded by the Light DOM (by) · · , , ,
  4. A Comprehensive Guide to Data Engineering · · ,
  5. 0 KB Social Media Embeds (by) · · ,
  6. 2023: 0 of the Global Top 100 Websites Use Valid HTML (by) · · , , , ,
  7. Mobile-First Indexing Has Landed—Thanks for All Your Support (by/via) · · , , ,
  8. Why Signals Are Better Than React Hooks (by) · · , , , , ,
  9. Remix ❤️ Vite (by+/via) · · , ,
  10. Better Dynamic Themes in Tailwind With OKLCH Color Magic (by+/via) · · , , ,
  11. Answering Common Questions About Interpreting Page Speed Reports (by/via) · · ,
  12. Accessibility by Degrees (by) · · ,
  13. A Complete Guide to LangChain in JavaScript (by/via) · · , , ,
  14. What Exactly Is “Modern” CSS? (by) · ·
  15. Interop 2023 October Update (by/via) · · , , ,
  16. Effective Strategies for Optimizing Performance (by/via) · · , ,
  17. Don’t Disable Buttons (by) · · , ,
  18. 20 Effective Tips to Speed Up Your Drupal Website (by/via) · · , , ,
  19. Unit-Testing: The Unsung Hero of Code Quality (by) · · ,
  20. The New CSS Math: “rem()” and “mod()” (by) · · , ,
  21. Is Express Still “De Facto” for Building Node Backends? (by) · · ,
  22. A Guide to Using MSSQL With Node.js (via) · · , , ,
  23. Keep Pace With Modern JavaScript (by) · · ,
  24. Why Is node_modules Heavier Than the Universe? (by) · ·
  25. View Transitions and Stacking Context: Why Does My CSS View Transition Ignore “z-index”? (by) · · , ,
  26. Let’s Reinvent the Wheel (by) · · , , , ,
  27. An Introduction to Working With SVGs in React (via) · · , , ,
  28. Liquid vs. Headless: A Look at Real User Web Performance (by/via) · · , , , ,
  29. State of React 2023 (by/via) · · ,
  30. How Often Should You Redesign Your Website? (via) · · , ,
  31. You’re Gonna Need a Bigger Browser (by) · · , , ,
  32. Some Sensible Defaults for Your “img” Elements (by) · · ,
  33. So You’ve Been Publicly Accessibility-Shamed (by) · · , ,
  34. How to Find a Developer Job in 2023 (With Little or No Experience) (by) · · ,
  35. AI as a UX Assistant (by/via) · · ,
  36. Deprecation of Formatting Rules (by/via) · · , , , ,
  37. Why I Won’t Use Next.js (by/via) · · ,
  38. What the !#@% Is a Passkey? (by/via) · · ,
  39. Testing and Code Quality in Node.js (by/via) · · , ,
  40. Secret Scanning Scans Public npm Packages (via) · · , , ,
  41. Performance Optimization With Worker Threads Node.js · · , , ,
  42. Next.js 14 (by+/via) · · ,
  43. Introduction to Real-Time Communication in PHP Laravel (by/via) · · ,
  44. Introduction to htmx (via) · · ,
  45. HTML vs. DOM? Let’s Debug Them (by/via) · · , , , ,
  46. Astro 3.4: Page Partials (by+/via) · · ,
  47. Arrays—Implementation in JavaScript (by) · · ,
  48. 20 Simple Ways to Style the HTML “details” Element (by/via) · · ,
  49. Sheet, Dialog, or Snackbar—What Should a Designer Go For? (by) · · , ,
  50. Data Engineering Essentials #1: Your First Pipeline (by) · ·
  51. What Does the “A” Mean in “DEAI”? (via) · · ,
  52. WebKit Features in Safari 17.1 (by/via) · · , , , ,
  53. Web Components Will Outlive Your JavaScript Framework (by) · · , ,
  54. Vue.js (Vue v3) for Beginners (by/via) · · , ,
  55. Understanding SC 2.4.11 “Focus Not Obscured (Minimum)” (by/via) · · , ,
  56. CSS “prefers-reduced-transparency” (by/via) · · , ,
  57. Complex MPA View Transitions (by) · · , ,
  58. My Problem With Using TypeScript in 2023 (by) · · ,
  59. It’s 2023, Here Is Why Your Web Design Sucks (by) · · , ,
  60. Goodbye, Node.js Buffer (by) · ·
  61. Give Your Site Some Focus! Tips for Designing Useful and Usable Focus Indicators (via) · · , , , ,
  62. Change Project, Change Node Version, Let .nvmrc Help You · · ,
  63. A Comprehensive Guide to Django Caching (by/via) · · , ,
  64. Igalia Chats: Web History Part VI (by+/via) · · , ,
  65. What Removing Object Properties Tells Us About JavaScript (by/via) · · ,
  66. Unlocking JavaScript Design Patterns: Mastering Singleton for Ultimate Code Efficiency (by) · · , ,
  67. Tailwind vs. Semantic CSS (by) · · , , , , ,
  68. Svelte by Example (by) · · , ,
  69. Stop Waiting (by) · · ,
  70. Splitting Within Selects (by) · · , , , ,
  71. Solved by CSS Scroll-Driven Animations: Style an Element Based on the Active Scroll Direction and Scroll Speed (by/via) · · , ,
  72. Select Element: Now With Horizontal Rules (by/via) · · , , , , , , , ,
  73. Release: Yarn 4.0 (by/via) · · ,
  74. Navigating the Ethical Complexities of Personalized User Experiences: Balancing Innovation With Privacy and Consent (via) · · , , , ,
  75. JavaScript Is Enabled by Default in Web Browsers (by) · · , ,
  76. JavaScript Decorators: An In-Depth Guide (by/via) · · ,
  77. JavaScript Anti-Pattern: Self-Documenting Code (by) · · , ,
  78. In Defense of Learning on Company Time (by) · · ,
  79. HTML Meta Tags · · ,
  80. CSS “text-wrap: pretty” (by/via) · · , , , , ,
  81. Color Contrast Accessibility Tools With Examples (via) · · , , , , ,
  82. Changing Colors in an SVG Element Using CSS and JavaScript (by) · · , , ,
  83. Accessibility Improvements for User-Agents (by) · · ,
  84. Strikethrough Accessibility (by/via) · · , , , , ,
  85. What Should Be the Contrast Level of Inactive Buttons? (via) · · , , ,
  86. When to Use CSS “text-wrap: balance;” vs. “text-wrap: pretty;” (by) · · , ,
  87. Using ChatGPT, GitHub Copilot, and Phind to Generate Tailwind Config for Width Classes (by) · · , , ,
  88. Using ChatGPT for Smart Truncation in Responsive Web Design (by) · · , , ,
  89. Is CAPTCHA Accessible? (via) · · ,
  90. How Do You Even Web Dev Without Node? A Quick Introduction to Test-Driven Web Development Using Just the Browser (by) · · ,
  91. Finding the Primary Branch of a Git Repository (by) · ·
  92. Embedding Accessibility Into Code Reviews (via) · · , , ,
  93. Web Accessibility Strategies for Non-Accessible Projects (by/via) · · , , ,
  94. I Asked People to Make This Simple Layout and Was Surprised by the Results (by) · · , , ,
  95. Why Unique ID Attributes Matter (via) · · , ,
  96. The Need for Recognition in Open Source (by/via) · · , , ,
  97. Prodding Firefox to Update “:has()” Selection (by) · · , , , ,
  98. How to Map a Number Between Two Ranges (by) · · , ,
  99. How to Collaborate on Pull Requests for Beginners (by/via) · · , ,
  100. Don’t Do It on Frontend or… Frontend Good Practices for Devs (by) · · , , ,
  101. The Inverse Value of UX and Art (via) · · ,
  102. Do We Need State Management in Angular? · · ,
  103. The New “light-dark()” Function to Switch Theme Color in CSS (by) · · , ,
  104. Storybook 7.5 (by/via) · · ,
  105. Solid.js Creator Outlines Options to Reduce JavaScript Code (by/via) · · ,
  106. Release Notes for Safari Technology Preview 181 (by/via) · · , , ,
  107. On the Uniting Power of a Commitment to HTML Conformance (by) · · , , , ,
  108. How to Animate Along a Path in CSS (by/via) · · , ,
  109. Does the HTML “hr” (Horizontal Rule) Benefit Screen Reader Users? (by/via) · · , , , ,
  110. Transition Animations: A Practical Guide (by) · · , , ,
  111. Start Styling Your “console.log()” Messages in DevTools (by/via) · · , , , ,
  112. The True Cost of Not Prioritizing Accessibility: Avoid Risk and Maximize Product ROI (by/via) · · , , ,
  113. The Three Cs: Concatenate, Compress, Cache (by) · · , ,
  114. The Nuances of Base64 Encoding Strings in JavaScript (by) · · ,
  115. Synchronizing Figma Variables With Design Tokens (by) · · , ,
  116. React Design Patterns (by/via) · · ,
  117. Node.js 21 Available Now! (via) · · ,
  118. How to Use SEO to Build Long-Term Brand Recognition and Visibility (by/via) · · , ,
  119. Design System Documentation Sucks—How We Can Do Better (by) · · ,
  120. Burn Your Toast (by) · · , ,
  121. A Couple of New CSS Functions I’d Never Heard Of (by) · · ,
  122. Scroll-Driven State Transfer (by) · · ,
  123. Link Colors and the Rule of Tincture (by) · · ,
  124. “JavaScript Is Weird” as a Compressor (by) · · ,
  125. Ensuring Negative Numbers Are Available for Everyone (by+/via) · · , ,
  126. Common Vue.js Development Mistakes and How to Avoid Them (by) · · ,
  127. 2.4.11: Adversarial Conformance (by) · · , ,
  128. CSS Findings From Photoshop Web Version (by) · · , , , ,
  129. How to Style Element Descendants With Tailwind CSS (by) · · ,
  130. Bubble Sort… in Pure CSS? (No JS) (by) · · , ,
  131. Forget Twitter: WordPress.com Blogs Can Now Connect to Mastodon (by/via) · · , , ,
  132. Button Labels: Is “OK” Ok? (via) · · , , ,
  133. What’s New in CSS? (by/via) · ·
  134. The Negative Impact of Mobile-First Web Design on Desktop (by+/via) · · , , , , ,
  135. Organizing Multiple Git Identities (by) · ·
  136. How We Optimized Package Imports in Next.js (by/via) · · , , ,
  137. 44 React Frontend Interview Questions · · ,
  138. Why Companies Kill Great Design (by/via) · ·
  139. Digital Accessibility Blogs and Newsletters (by/via) · · ,
  140. Using CSS Custom Properties Like This Is a Waste (by) · · , ,
  141. Unpopular Opinion: It’s Harder Than Ever to Be a Good Software Engineer (by) · · ,
  142. Scrollbars Are Becoming a Problem (by) · · , ,
  143. Quick Tip: Creating Polymorphic Components in TypeScript (by/via) · · , ,
  144. Honor User’s Transparency Setting in CSS (by) · · , , ,
  145. Astro 3.3: Picture Component (by+/via) · · ,
  146. WooCommerce vs. Shopify: Which Is the Better Choice for You? (via) · · ,
  147. You Can’t Get Faster Than No Build (by/via) · · ,
  148. Why Naming Is #1 Skill for Writing Clean Code (by/via) · · , ,
  149. We Need Web Progress, Not Pessimism (by) · · ,
  150. Styling External Links With Attribute Selectors (by/via) · · , ,
  151. Skip Links on ikea.com (by) · · , ,
  152. Preventing and Debugging Memory Leaks in Node.js (by/via) · · , ,
  153. Let’s Prototype a JavaScript JIT Compiler (by) · · , , ,
  154. Introduction to Web Sustainability (by/via) · · ,
  155. Designing for All: The Basic Principles of Web Accessibility (via) · · , , , ,
  156. CSS Relative Color Syntax (by/via) · · , ,
  157. Images on the Web (by/via) · · , , , , , , ,
  158. AI Could Soon Need as Much Electricity as an Entire Country (by/via) · · ,
  159. The Selected Date Must Be Within the Last 10 Years (by/via) · · , ,
  160. The Global “innerWidth” and “innerHeight” Properties Return the Width and Height of the Layout Viewport (by/via) · · , ,
  161. Local HTTPS for Next.js 13.5 (by) · · , , ,
  162. Hashnode’s Overall Architecture (by/via) · · ,
  163. Greenwashing and the COP28 Website (by/via) · · ,
  164. 5 Best Practices for Preventing Chaos in Tailwind CSS (by+/via) · · ,
  165. Why the Internet Isn’t Fun Anymore (by/via) · · ,
  166. The Future of CSS: Easy Light-Dark Mode Color Switching With “light-dark()” (by/via) · · , ,
  167. Obligatory WCAG 2.2 Launch Post (by) · · , ,
  168. Inclusivity in the Digital Age: The Importance of Accessibility Advocacy (via) · · , , ,
  169. Extending the Properties of an HTML Element in TypeScript (by/via) · · , ,
  170. CSS-Only Scroll-Driven Animation and Other Impossible Things (by+/via) · · , ,
  171. Adding Search to an Eleventy Site Without Client-Side JavaScript (by) · · , , ,
  172. The Hidden Performance Cost of Node.js and GraphQL (by) · · , ,
  173. Speeding Up the JavaScript Ecosystem—the Barrel File Debacle (by) · · , ,
  174. Node.js vs. Django: Which Is Better for Web Development in 2023? (via) · · , ,
  175. Welcome WCAG 2.2 and Goodbye Success Criterion 4.1.1 “Parsing” (by) · · , ,
  176. Naming Variables in CSS (by) · · , ,
  177. Don’t Use Fixed CSS “height” or “width” on Buttons, Links, or Any Other Text Containers (by) · · , , , ,
  178. CSS 3D Text Effects · · ,
  179. Writing Accessible Form Messages (by) · · , ,
  180. Which Is the Best Image Format for Your Website? (via) · · , , , , , ,
  181. WCAG 2.2 and Validation (by) · · , , ,
  182. The Nonvisual Website (by) · · ,
  183. Table of Contents: The Ultimate Design Guide (by/via) · · , , ,
  184. Quick Tip: Decorators in TypeScript (by/via) · · ,
  185. How Did You Switch From JavaScript to TypeScript? · · , , ,
  186. Demystifying WCAG 2.2 (by/via) · · , ,
  187. Hey Designers, They’re Gaslighting You (by) · · ,
  188. Understanding XSS Attacks (by/via) · ·
  189. What’s New in WCAG 2.2 (by/via) · · , , ,
  190. When to Nest CSS (by/via) · · ,
  191. What Happened to Separation of Concerns in Frontend Development (by) · · , , , ,
  192. Web Content Accessibility Guidelines (WCAG) 2.2 (by+/via) · · , , ,
  193. WCAG 2.2 Is Now a W3C Recommendation (by) · · , ,
  194. WCAG 2.2 Is Now a Published Web Standard (by/via) · · , , , ,
  195. React Micro-Frontends Using Vite · · , ,
  196. Intopia Launches WCAG 2.2 Map (by/via) · · , ,
  197. GitHub Actions: “NODE_OPTIONS” Is Now Restricted From “GITHUB_ENV” (via) · · , ,
  198. An Anchored Navbar Solution (by) · · , ,
  199. Still No CSS Reset (by) · · ,
  200. Chrome Now Shows Each Active Tab’s Memory Usage (by) · · , , ,
  201. It’s Time to Rethink the Americans With Disabilities Act (via) · · ,
  202. Whatever Happened to the Zend Framework (by) · · , ,
  203. The Power of Type Safety in TypeScript (via) · · ,
  204. Release Notes for Safari Technology Preview 180 (by/via) · · , , ,
  205. Limit the Reach of Your Selectors With the CSS “@ scope” At-Rule (by/via) · · , , ,
  206. Let’s Create a Filter Table Component in Vue (by) · · , , ,
  207. How to Develop Terminal Productivity With Bash Aliases · · , , , ,
  208. Deploy and Test AWS Step Functions With Node.js (via) · · , , , ,
  209. Career Growth After 35: What Awaits Programmers? (via) · · ,
  210. An Interactive Intro to CRDTs (by) · · , ,
  211. Accessibility vs. Inclusive Design (by/via) · · , , ,
  212. How to Be an Accessibility Ally (by) · · , ,
  213. Your Website Does Not Need JavaScript (by/via) · · , ,
  214. The Problem With WordPress Is Positioning, Not Plugins (by/via) · ·
  215. Get Ready for Interop 2024 (by/via) · · ,
  216. Being Picky About a CSS Reset for Fun and Pleasure (by) · · ,
  217. Comparing JavaScript Bundlers: Rollup vs. Webpack vs. Parcel (by/via) · · , , , , , ,
  218. The Most Minimal Valid HTML Document (by) · · , , ,
  219. The Absolute Minimum Every Software Developer Must Know About Unicode in 2023 (Still No Excuses) (by) · · , ,
  220. Return to Office Is Bullshit and Everyone Knows It (by) · · ,
  221. Nine Things Automated Accessibility Tests Can’t Test (by) · · , ,
  222. How to Clear Cache and Cookies on a Customer’s Device (by) · · , , ,
  223. Have You Seen These Weird Image Tag Issues? (by) · · ,
  224. Demystifying CSS Container Queries (by+/via) · · , ,
  225. Crawlers (by) · · ,
  226. TypeScript Monorepo With npm Workspaces (by) · · , , ,
  227. The Myth of Infinite Data Growth (by) · · ,
  228. The 3 Secrets to Font Pairing · · , ,
  229. Monitoring a Kubernetes Application With Prometheus, Grafana, and Loki (by/via) · · , ,
  230. Making a Website Is for Everyone (by) · · , ,
  231. In-Page Links for Content Navigation (via) · · , ,
  232. All the Ways to Turn an Array Into an Object in JavaScript (by) · · , ,
  233. Managing and Mitigating Design Debt: A Solo UX Designer’s Guide · · , ,
  234. Understanding the CSS Auto-Resizing Textarea Trick (by) · · , ,
  235. Test Assertion Styles in JavaScript (by) · · ,
  236. How I Deployed My Website as a Docker Container (by) · · ,
  237. Re-Creating the Pop-Out Hover Effect With Modern CSS (by/via) · · ,
  238. Node v20.8.0 (by/via) · · ,
  239. Naming Things Needn’t Be Hard (by) · · ,
  240. Four Reasons to Give WCAG AAA a Second Look (via) · · , ,
  241. Crafting Future-Ready Experiences: The Power of Progressive Web Apps (PWAs) and Offline-First Design (by) · · ,
  242. Characteristics of Code Quality (by) · · ,
  243. 20+ Tools for Node.js Development in 2023 (via) · · , ,
  244. Embracing Efficiency: Shorter Work Hours for Software Developers (and Everyone Else) (by) · · , , ,
  245. A Socket API That Works Across JavaScript Runtimes—Announcing a WinterCG Spec and Node.js Implementation of “connect()” (by+/via) · · , ,
  246. The Ultimate Low-Quality Image Placeholder Technique (by) · · , ,
  247. Exploring Enhanced Patterns in WordPress 6.3 (via) · ·
  248. Easy Dark Mode With “color-scheme” (by) · · , , , ,
  249. CSS Nesting and the Cascade (by/via) · · , ,
  250. A Comprehensive Guide to the Dangers of Regular Expressions in JavaScript (by/via) · · , , ,