Frontend Dogma

“2010s” Archive

Frontend Dogma is a constant work in progress, but that’s particularly true for the 2000s and 2010s. Reach out to suggest articles, videos, and books from the time (including your own).

  1. What Is SSI? What Are Server-Side Includes? (via) · ·
  2. An HTML Optimizer’s Config for html-minifier (by) · · , , , , , ,
  3. How to Style and Animate the Letters in a String Using CSS (by) · · , , ,
  4. Landing Pages: The Art of Conversion (via) · · ,
  5. When to Open Links in a New Tab (by) · · ,
  6. Dynamic Typography With Variable Fonts (by/via) · · , ,
  7. WebGL Tips (by) · · , ,
  8. CSS: When to Use Logical Properties (by) · · ,
  9. CSS at the Intersection (via) · · ,
  10. Conversational Semantics (by/via) · · , , ,
  11. The Layers of the Web (by/via) · · , ,
  12. Microservices Introduction (by) · · ,
  13. Upgrade Your HTML (the Booklet) (by) · · , , , ,
  14. Shadow Tree Encapsulation Theory (by) · · ,
  15. On Writing Better Markup (by) · · , , , ,
  16. Heading Levels (by) · · ,
  17. CSS Circles (by/via) · · ,
  18. The Case for XML5 (by) · ·
  19. An Introduction to the Spatial Web (by/via) · · ,
  20. The Developer’s Fallacy of Close Collaboration With Designers (by) · · , ,
  21. Liquid Templating Crash Course · · , , , ,
  22. A Brief History of the Original Browsers and the First Browser War (by) · · , ,
  23. How to Add CSS Vendor Prefixes Automatically (by/via) · · , , , , , , , ,
  24. Definition of Web Developer (by) · · , ,
  25. Caniuse and MDN Compatibility Data Collaboration (by+/via) · · , , ,
  26. It’s Not Wrong that '🤦🏼‍♂️'.length == 7 (by) · · ,
  27. “Must Work Without JavaScript” (by) · · ,
  28. The History of Browser Wars (by/via) · · , ,
  29. Optional HTML: Everything You Need to Know (by) · · , ,
  30. Jenkins Cheatsheet—Know the Top Best Practices of Jenkins (by/via) · · , , , ,
  31. MSDN Magazine Ends in November (by) · · ,
  32. AWS vs. Azure vs. Google: Cloud Services Comparison (by/via) · · , , , , ,
  33. The Simplest Way to Load CSS Asynchronously (by/via) · · ,
  34. When to Use “img,” “img@ srcset,” and “picture” and “source” (by) · · ,
  35. Shifting the Performance Burden (by/via) · ·
  36. The Anatomy of Accessible Forms: Error Messages (by/via) · · , , ,
  37. How to Use Redux With React Hooks (by) · · , , ,
  38. How to Use Redux With React Hooks (by) · · , , ,
  39. The Problem With Web Development Checklists, or: The Frontend Checklist, Revised (by) · · , , , , ,
  40. Responsible JavaScript (by/via) · · , , , , , ,
  41. So You Think You’re Design Driven (by/via) · ·
  42. Self-Host Your Static Assets (by) · · , ,
  43. Daily Ethical Design (via) · · ,
  44. Understanding Image Compression: Tooling and Context (by) · · , , ,
  45. Vue.js and SEO: How to Optimize Reactive Websites for Search Engines and Bots (by/via) · · , ,
  46. Take Back Your Web (by/via) · · , , ,
  47. The Scoville Scale of Web Font Loading Opinions (by/via) · · , ,
  48. Polypane, Browser for Developers and Designers, Available Now (by) · · ,
  49. Beginner’s Guide: Build and Deploy a Web App With Ruby on Rails (via) · · , , , ,
  50. A Crime Called Favicon (by) · · , ,
  51. HTML Optimization: A Standard Config for HTMLMinifier (by/via) · · , , ,
  52. Breaking to a New Row With Flexbox (by) · · , ,
  53. Tips for Technical Interviews (by) · · , ,
  54. How Can We Make Website Maintenance Work More Visible? (by) · ·
  55. Getting Up and Running With the Vue.js 2.0 Framework (by/via) · · ,
  56. Print Styling, the 3 Basics (by) · · , ,
  57. Parcel.js Quick Introduction—Zero Configuration Bundler (by) · · , , ,
  58. JS vs. Java—Dynamic Typing · · , ,
  59. “Cache-Control” for Civilians (by) · · , ,
  60. Why Every Browser Switching to Blink Could Be Bad News for the Web · · , , , , , , ,
  61. What’s New in ECMAScript 2019 (by) · · ,
  62. HTML and Performance: Leave Out Optional Tags and Quotes (by) · · ,
  63. Meteor Framework Review (by) · ·
  64. UX in the Age of Personalization (by/via) · · ,
  65. Google Lighthouse and PWA (by) · · , ,
  66. Automatic CloudFront Invalidation for S3 Origins (via) · · , ,
  67. a11y-syntax-highlighting (by) · · , , ,
  68. Checking if an Input Is Empty With CSS (by) · · ,
  69. On Visions for Performance, or: Performance Optimization Is a Process (by) · · , , ,
  70. A Blue Beanie for Blue Beanie Day (via) · · , , ,
  71. Amazon DynamoDB Deep Dive: Advanced Design Patterns for DynamoDB (by/via) · · , , , ,
  72. JavaScript Is for Web Apps, Not for Websites · · ,
  73. Should Designers Code (by) · · , ,
  74. Extreme Typography on the Web (by/via) · · ,
  75. I, Human (by/via) · · , ,
  76. Performance Rule #1: Do What You Need to Do—But Not More (by) · · ,
  77. AWS Security Guide: 7 Best Practices to Avoid Security Risks (via) · · , , ,
  78. Non-Noxious Nomenclature (via) · ·
  79. Writing for Designers (by/via) · · , ,
  80. How to Configure Lighthouse for Balanced Quality Websites (by) · · , , , , ,
  81. The Psychology of Design (by/via) · · , ,
  82. Privacy by Design: How to Sell Privacy and Make Change (by/via) · · ,
  83. A Short Guide to Minimal Web Development (by) · · , , ,
  84. Responsive Images (by/via) · · , , ,
  85. Web Development and the GDPR (by) · · , ,
  86. Conversational Semantics (by/via) · · , ,
  87. CSS Logical Properties and Values Level 1 (by+/via) · · , ,
  88. CSS Logical Properties (by/via) · · ,
  89. 37 Theses on CSS and Web Development (by) · · , , ,
  90. Browser Painting and Considerations for Web Performance (by/via) · · , , , ,
  91. Icon Fonts vs. SVGs—Which One Should You Use in 2018? (via) · · , , ,
  92. New Syntax for JS “Function Stuff” (by) · · , ,
  93. Doing More With Less, an Introduction to a CSS Pre-Processor · · , , ,
  94. Webmentions: Enabling Better Communication on the Internet (by/via) · ·
  95. AMP, a Strategy (by) · · , ,
  96. The Craft of CSS (by) · · ,
  97. Marketing as a Front End Web Developer? · ·
  98. The Problem With Patterns (by/via) · · , , , ,
  99. 10 Things I Regret About Node.js (by/via) · · ,
  100. Whatever Happened to the Semantic Web? (via) · · , , , ,
  101. The Slow Death of Internet Explorer and the Future of Progressive Enhancement (by/via) · · , , ,
  102. ARIA Serious? (by/via) · · , ,
  103. Don’t Use My Grid System or Any Others (by/via) · · , ,
  104. The Dangers of Being a Web Developer (by/via) · · ,
  105. Responsive Tables, Revisited (by) · · , ,
  106. Priority Guides: A Content-First Alternative to Wireframes (via) · · , ,
  107. rfc.fyi (by) · · ,
  108. CSS Optimization Basics (by) · · , , ,
  109. What Are the Differences Between PhpStorm and WebStorm? Which IDE Is Right for You? (via) · · , , , ,
  110. Going Offline (by/via) · · , , ,
  111. MongoDB Evolved (via) · · , ,
  112. Introducing Last Painted Hero (by/via) · · ,
  113. Python Developers Survey 2017 Results (via) · · ,
  114. Trickle Down Accessibility (by) · · ,
  115. Conversational Design (via) · · ,
  116. Could This Be Easier? (by) · ·
  117. 10 Advanced Joomla Tips to Become a Pro (via) · · ,
  118. We Write CSS Like We Did in the 90s, and Yes, It’s Silly (by/via) · · , , , ,
  119. Your Interactive Makes Me Sick (by/via) · · , , ,
  120. What Happens to Us Does Not Happen to Most of You (by/via) · · ,
  121. HTML, CSS, and Dependency Direction (by) · · , , , ,
  122. How Declaration Repetition Developed Over Time, a Statistically Insignificant Sample (by) · · , , ,
  123. What’s New in ECMAScript 2018 (by) · · ,
  124. The Compact Guide to Web Maintainability: 200 Tips and Resources (by) · · , , ,
  125. Why Fast Matters (by/via) · · , ,
  126. Sacrificing the Golden Calf of “Coding” (by/via) · · , ,
  127. Finding Dead CSS (by) · · , ,
  128. The Two Extremes of Writing CSS, and What We Can Learn From Them (by) · · , , , ,
  129. HTML 5.2 (by+/via) · · ,
  130. How the Sausage Gets Made: The Hidden Work of Content (by/via) · · ,
  131. What Donald Rumsfeld Can Teach Us About Software Estimates (by) · · , ,
  132. Performance of CSS Selectors Is Still Irrelevant (by) · · , ,
  133. On Big Picture Thinking in Web Development (by) · · , , , , ,
  134. Faux Grid Tracks (by/via) · · ,
  135. CSS: The Reason Why Selectors Should Be Ordered, Too (by) · · , ,
  136. The Future of the Browser (by/via) · · , , ,
  137. Testing Standards (by) · · , , ,
  138. Static Site Generation With Grow: How to Set Up Syndication Feeds (by) · · , , ,
  139. All You Need to Know About CSS-in-JS (by) · · , ,
  140. Planning for Accessibility (by/via) · · , , ,
  141. Ten Extras for Great API Documentation (via) · · , ,
  142. Web Typography: Designing Tables to Be Read, Not Looked At (by/via) · · , , ,
  143. DRY CSS: How to Use Declarations Just Once, Effectively (by) · · , , ,
  144. 5 Reasons Against Resets, Normalizers, Reboots (by) · · ,
  145. The Front-End Checklist (by) · · , , , , , , , ,
  146. A Look Back at the History of CSS (by/via) · · , , , ,
  147. Understandable-Simple vs. Minimal-Simple Code (by) · · ,
  148. The Ultimate Guide for Building Awesome Joomla Websites (by) · · , ,
  149. Using Webfonts (by/via) · · , ,
  150. On Enforcing Coding Guidelines (by) · · , ,
  151. Considering Open Source Licenses (via) · · ,
  152. The Web’s First (and Second) Browser (by) · · , , ,
  153. Introduction to WebRender—Browsers Today (by/via) · · , , , ,
  154. The Ten Essentials for Good API Documentation (via) · · , , ,
  155. Encrypted Media Extensions (via) · · , ,
  156. The Cost of Frameworks, Illustrated (by) · · ,
  157. CSS @-Rules, an Overview (by) · · , ,
  158. Announcing CoffeeScript 2 (via) · · ,
  159. Conducting the Technical Interview (by/via) · · , ,
  160. What We Should Teach Up-and-Coming Developers (by) · · , , ,
  161. How to Write Better Code: The 3 Levels of Code Consistency (by/via) · · ,
  162. Yes, That Web Project Should Be a PWA (by/via) · ·
  163. What Kills and What Saves Content Management Systems (by) · · , ,
  164. Integrating Animation Into a Design System (by/via) · · , ,
  165. Web Development: How Making Our Own Lives Difficult Is More Important Than We Think (by) · · , ,
  166. Frameworks, Libraries, and the Modern Web Developer: Web Development, Overdone (by) · · , ,
  167. What I Learned Building Google’s Web Frameworks (by) · · , , , ,
  168. Stop Using Resets: Visual Examples of the Practical Nonsense of Resets and Normalizers (by) · · , ,
  169. Two Paradigms of Web Development (by) · · , , ,
  170. How (Not) to Control Your CDN (by) · · , , ,
  171. Color Accessibility Workflows (by/via) · · , ,
  172. Laravel vs. Symfony—Clash of the Frameworks (via) · · , , , ,
  173. 70% Repetition in Style Sheets: Data on How We Fail at CSS Optimization (by) · · , , , ,
  174. No Namespaces in JSON, Please (by) · · ,
  175. Design Systems: Real Talk (by/via) · · , ,
  176. What We Talk About When We Talk About Web Performance (by/via) · · ,
  177. Web Design Museum (by/via) · · , ,
  178. JavaScript Framework Comparison—AngularJS, Vue.js, Meteor.js, or Next.js (via) · · , , , , , ,
  179. Four Killer Features of Nunjucks (by/via) · ·
  180. Why I Abandoned “@ apply” (by) · · ,
  181. PWA Stats (via) · · , , ,
  182. Conventional Commits (by) · · , , , ,
  183. Grid Garden (by) · · , , ,
  184. Practical CSS Grid: Adding Grid to an Existing Design (by/via) · · ,
  185. Guetzli, Google’s New JPEG Encoder (by) · · , , , ,
  186. What Is SMACSS and How to Use It (via) · · , ,
  187. Explorations in the Virtual DOM: How React.js Impacts Accessibility (by) · · , , ,
  188. Principles of Web Development (by) · · , , , , ,
  189. Using HTTP/2 Responsibly: Adapting for Users (by/via) · · , , , ,
  190. Considering How We Use HTTP/2 (by/via) · · , , ,
  191. What’s New in ECMAScript 2017 (by) · · ,
  192. Foundation Framework Crash Course (via) · · , ,
  193. A Compendium of SVG Information (by/via) · · , , ,
  194. The Imbalance of Culture Fit (by/via) · · , , ,
  195. Best Text Editor? Atom vs. Sublime vs. Visual Studio Code vs. Vim (via) · · , , , ,
  196. Serving Custom Headers From Static Sites on CloudFront/S3 With Lambda@Edge (by) · · , ,
  197. Front-End Tools: My Favorite Finds of 2016 (by/via) · · , , , ,
  198. Demystifying Public Speaking (by/via) · · , , , ,
  199. Why I Don’t Use CSS Preprocessors (by) · · ,
  200. CSS Shorthand Syntax Considered an Anti-Pattern (by) · · , ,
  201. Are You Writing ES6 JavaScript Yet? (by/via) · · ,
  202. Nesting Your BEM? (by) · · , ,
  203. Frameworks Without the Framework: Why Didn’t We Think of This Sooner? (by/via) · · ,
  204. Pay the Price for Open Source (via) · · , ,
  205. Performance: Shame, Hope, Nuance, and Interesting Problems (by) · ·
  206. Web Layout 101: Making the Most of the Top Right Corner (by/via) · · , ,
  207. Typography Is Code (by/via) · · ,
  208. Writing Less Damned Code (by/via) · · ,
  209. Refactoring CSS Without Losing Your Mind (by/via) · · , , , ,
  210. The Joy of Optimizing (by/via) · · , , ,
  211. The Coming Revolution in Email Design (via) · · , ,
  212. Stop Using the Old “Clearfix” (by) · · ,
  213. 10 Ways to Earn Money from Your Site (by/via) · · , ,
  214. Logging Errors in Client-Side Applications (by/via) · · , , , ,
  215. Get Started on the CSS of the Future With PostCSS-cssnext (via) · · , , , ,
  216. The Top 10 Reasons to Sell Your Website (by/via) · ·
  217. Browser Trends November 2016: Rise of the Underdog (by/via) · · , ,
  218. CSS Post-Processors for Beginners: Tips and Resources (by/via) · · , , , ,
  219. Awaken the Champion A/B Tester Within (by/via) · · ,
  220. A Crash Course of Changes to Exception Handling in PHP 7 (by/via) · · , , ,
  221. Is JavaScript Always the Best Solution? (by/via) · ·
  222. How to Use AJAX in WordPress—a Real World Example (via) · · , ,
  223. The Movement Towards Motion in Website Backgrounds (by/via) · · , ,
  224. Password-Less Authentication in Rails (by/via) · · ,
  225. Progressive Web Apps: Bridging the Gap Between Web and Mobile (by/via) · · , , ,
  226. Landing Page Design: 15 Tips for High Conversions (by/via) · · , , ,
  227. CSS Quick Tip: Solving Common CSS Problems (by/via) · · , , , , ,
  228. JavaScript for Web Designers: DOM Scripting (by/via) · · ,
  229. Standards on GitHub (by) · · ,
  230. Using CSS Mod Queries With Range Selectors (via) · · ,
  231. Putting Down Event Infrastructure in Gecko (by) · · , , ,
  232. Silverlight Techniques for WCAG 2.0 (by+/via) · · , , ,
  233. 4 Ways to Future Proof Your WordPress Site (by/via) · · , ,
  234. The Glory Days of the Web (by) · · , , , , , ,
  235. A Redesign With CSS Shapes (by/via) · · , , ,
  236. How It Feels to Learn JavaScript in 2016 (by) · · ,
  237. WordPress SVG Support: How to Enable SVGs in WordPress (by/via) · · , , ,
  238. Make Forms Fun With Flexbox (by/via) · · , ,
  239. Quick Tip: Add or Remove a CSS Class With Vanilla JavaScript (via) · · , ,
  240. 5 Essential SEO Strategies for Improving Engagement Metrics (by/via) · · ,
  241. Notepad++ Release 7 64-Bit Available (by) · · ,
  242. Why We Should All Be Data Literate (by/via) · · , ,
  243. Quick Tip: How to Declare Variables in JavaScript (via) · · , ,
  244. Where Things Are at in the CSS Grid Layout Working Draft (via) · · ,
  245. Autoprefixing, With CSS Variables! (by) · · , ,
  246. How Information Overload Is Ruining Your Work Life (by/via) · · ,
  247. Webfonts on the Prairie (via) · · ,
  248. Spectre: A Lightweight CSS Framework (via) · · ,
  249. Code: Align the Happy Path to the Left Edge (by) · · , ,
  250. How to Choose the Right CSS Toolkits and Frameworks (by+/via) · · , , , ,