ponyfoo.com

Article Publication History

Every English article ever published on Pony Foo can be found listed here

I first started developing the blogging engine for Pony Foo around mid-2012. I had just read The Pragmatic Programmer and I was looking for a challenge. I built the engine using Node.js and that’s how I got into server-side JavaScript. I really enjoyed publishing articles on a blog, even though — for a long time — nobody read what I published. Eventually people started reading the blog, and nowadays some people even go as far as to read minutiae about how the blog came to be. I find that immensely rewarding. Not long after I started blogging I decided to write a book about JavaScript Application Design, which was published in February, 2015.

Reading every English article ever published on Pony Foo — there’s 218 of them — would take you approximately 2 days. Better get to it!

  1. Bootstrapping a UI component library published , under
  2. React Data Survival Kit published , under
  3. Discovering patterns with React hooks published , under
  4. Disguise Driven Testing: Jest Mocks In Depth — Part 2 published , under
  5. Conflict Resolution and Code Reviews published , under
  6. Disguise-Driven Testing: Jest Mocks in Depth published , under
  7. The Action Pattern: Clean, Obvious, Testable Code published , under
  8. React State: Choose Wisely published , under
  9. GraphQL in Depth: What, Why, and How published , under
  10. JavaScript Performance Pitfalls in V8 published , under
  11. Unhappy Path Driven Development published , under
  12. Module Design 🦀 published , under
  13. Okta, Auth0, & the Goblet of Identity published , under
  14. A Guide to Modular Design Thinking published , under
  15. An Introduction to Speculative Optimization in V8 published , under
  16. Mastering Modular JavaScript 🆕📗 published , under
  17. A Brief History of Modularity published , under
  18. A Tiny Story about Systems Complexity published , under
  19. Make All Images on Your Website Responsive in 3 Easy Steps published , under
  20. Investigating Performance of Object#toString in ES2015 published , under
  21. Interviewed at Tencent Frontend Conference published , under
  22. Null Propagation Operator in JavaScript published , under
  23. Pattern Matching in ECMAScript published , under
  24. Setting up 2FA for Node.js Applications published , under
  25. TC39, ECMAScript, and the Future of JavaScript published , under
  26. Regular Expressions in a post-ES6 world published , under
  27. Mixing Generators Into Iterators published , under
  28. Observables Proposal for ECMAScript! published , under
  29. Variables declared using const are not immutable published , under
  30. Content-Security-Policy in Express apps published , under
  31. Setting up an Angular 2 Development Environment published , under
  32. The JavaScript Standard published , under
  33. Let’s use const! Here’s why. published , under
  34. How Terrible Code Gets Written by Perfectly Sane People published , under
  35. Fourth Year in Review published , under
  36. Thousands of Color-coded Visualizations in React published , under
  37. Making Time for Side Projects: A Daily Habit published , under
  38. Announcing Practical Modern JavaScript 📚
    — and the Modular JavaScript Book Series!
    published , under
  39. Modular JavaScript launches in a week! 🚀 published , under
  40. Fixing an XSS vulnerability in marked published , under
  41. JavaScript Asynchronous Iteration Proposal published , under
  42. How I Got Into Programming published , under
  43. Template Literals are Strictly Better Strings published , under
  44. What Does a Sound Look Like? Web Audio Art! published , under
  45. Binding Methods to Class Instance Objects published , under
  46. JSON Web Tokens vs. Session Cookies: In Practice published , under
  47. Two-way Synchronization for a Web App and Git published , under
  48. The Art of a Pull Request published , under
  49. ServiceWorker: A Basic Guide to BackgroundSync published , under
  50. How Pony Foo is ridiculously over-engineered
    — and why that is awesome
    published , under
  51. The Double-Edged Sword of the Web published , under
  52. An Elastic Stack Primer published , under
  53. A Promise-Based Worldview published , under
  54. Setting Up Elasticsearch for a Blog published , under
  55. Just Married! 🎉 published , under
  56. NodeConf hits the ground running in Latin America published , under
  57. GitHub for Human Beings 🕵 published , under
  58. ECMAScript Proposal for JavaScript Decorators
    (and protocols)
    published , under
  59. The npm Meltdown Uncovers Serious Security Risks published , under
  60. JavaScript Proposal for weak references: WeakRef published , under
  61. Making a Simple Site Work Offline with ServiceWorker published , under
  62. All Aboard the ES6 JavaScript Train published , under
  63. Proposal: “Statements as Expressions” using do published , under
  64. Proposal Draft for .flatten and .flatMap published , under
  65. ECMAScript String Padding published , under
  66. Understanding JavaScript’s async await published , under
  67. ES2016 Features & ECMAScript as a Living Standard published , under
  68. The Controversial State of JavaScript Tooling published , under
  69. Asynchronous I/O with Generators & Promises published , under
  70. Third Year in Review published , under
  71. JavaScript Developer Survey Results published , under
  72. JavaScript Developer Survey published , under
  73. Making a Progressive App with ServiceWorker published , under
  74. ServiceWorker, MessageChannel, & postMessage published , under
  75. ServiceWorker and Progressive Networking published , under
  76. Subscribing to Pony Foo published , under
  77. ServiceWorker: Revolution of the Web Platform published , under
  78. ES6 Overview in 350 Bullet Points published , under
  79. Securing Your Web App in 3 Easy Steps published , under
  80. Keeping Your npm Dependencies Immutable published , under
  81. Inlining Critical CSS for Dynamic Web Apps published , under
  82. Using the JavaScript Charting Library published , under
  83. SVG and the DOM, or “The Weirdest Bug I’ve Ever Encountered” published , under
  84. Pony Foo Gets a Face Lift published , under
  85. ES6 Promises in Depth published , under
  86. ES6 Modules in Depth published , under
  87. ES6 Strings (and Unicode, ❤) in Depth published , under
  88. ES6 Object Changes in Depth published , under
  89. ES6 Array Extensions in Depth published , under
  90. ES6 Math Additions in Depth published , under
  91. ES6 Number Improvements in Depth published , under
  92. ES6 Reflection in Depth published , under
  93. More ES6 Proxy Traps in Depth published , under
  94. ES6 Proxy Traps in Depth published , under
  95. ES6 Proxies in Depth published , under
  96. ES6 WeakMaps, Sets, and WeakSets in Depth published , under
  97. ES6 Maps in Depth published , under
  98. ES6 Symbols in Depth published , under
  99. ES6 Generators in Depth published , under
  100. ES6 Iterators in Depth published , under
  101. ES6 Let, Const and the “Temporal Dead Zone” (TDZ) in Depth published , under
  102. ES6 Classes in Depth published , under
  103. ES6 Object Literal Features in Depth published , under
  104. ES6 Spread and Butter in Depth published , under
  105. ES6 Arrow Functions in Depth published , under
  106. ES6 Template Literals in Depth published , under
  107. ES6 JavaScript Destructuring in Depth published , under
  108. A Brief History of ES6 Tooling published , under
  109. React, JSX and ES6: The Weird Parts published , under
  110. Server-side React Layout & Side Effects published , under
  111. Universal Routing in React with ES6 published , under
  112. Universal React with Babel, Browserify published , under
  113. Polyfills or Ponyfills? published , under
  114. Things you can do with native DOM published , under
  115. Git and GitHub Hacks published , under
  116. Why I Write Plain JavaScript Modules published , under
  117. Dream of Browser Test Automation? published , under
  118. README Driven Development published , under
  119. Low-Budget Hosting Tips published , under
  120. Maintaining Open-Source Software published , under
  121. Pragmatic Semantic Versioning published , under
  122. Fixing Performance in the Web Stack published , under
  123. Let’s talk about Web Performance published , under
  124. Leveraging Constraints published , under
  125. Blogging and OSS — Food for Thought published , under
  126. Fast-forwarding the Web Platform published , under
  127. Composable UI published , under
  128. Testing JavaScript Modules with Tape published , under
  129. The Progressive Web published , under
  130. Priorities published , under
  131. Designing Front-End Components published , under
  132. The Great Web Module Compendium published , under
  133. Leveraging Immutable Deployments published , under
  134. Immutable Deployments and Packer published , under
  135. Server-First Apps are a Good Idea published , under
  136. Baking Modularity into Tag Editing published , under
  137. Cross-tab Communication published , under
  138. Second Year in Review published , under
  139. I’m Building Stompflow! published , under
  140. Are Regular Expressions Stateful? published , under
  141. Measure, Optimize, Automate published , under
  142. My CampJS Experience published , under
  143. Stop Breaking the Web published , under
  144. Adjusting UX for human visitors published , under
  145. Free sample: JavaScript Application Design published , under
  146. Critical Path Performance Optimization at Pony Foo published , under
  147. The Conventional Front-End published , under
  148. A Gentle Browserify Walkthrough published , under
  149. JavaScript Quality Guide published , under
  150. A BrowserSync Primer published , under
  151. Building High-Quality Front-End Modules published , under
  152. Choose: Grunt, Gulp, or npm? published , under
  153. How To Avoid Object.prototype Pollution published , under
  154. Taunus: Micro Isomorphic MVC Framework published , under
  155. CSS: The Good Parts published , under
  156. Modularizing Your Front-End published , under
  157. Shared Rendering with Rendr published , under
  158. Head First Public Speaking published , under
  159. A Less Convoluted Event Emitter Implementation published , under
  160. Angle Brackets, Synergistic Directives published , under
  161. Angle Brackets, Rifle Scopes published , under
  162. You don’t need a TODO app published , under
  163. My First Gulp Adventure published , under
  164. How to Design Great Programs published , under
  165. Gulp, Grunt, Whatever published , under
  166. Email Sending Done Right published , under
  167. A Year In Review published , under
  168. Rehearsal: Record program output published , under
  169. Architecture of ECMAScript 6 Modules published , under
  170. Is WebDriver as good as it gets? published , under
  171. 9 Quick Tips About npm published , under
  172. JavaScript Variable Hoisting published , under
  173. Where does this keyword come from? published , under
  174. Get Between the Covers of Build First published , under
  175. Package Authoring with Paqui published , under
  176. Fun with Native Arrays published , under
  177. Grunt Tips and Tricks published , under
  178. Angular WYSIWYG published , under
  179. Event Emitter: Obey and Report published , under
  180. Your Tab Views Suck published , under
  181. Spritesheets, Grunt, and You published , under
  182. Ditch Windows, Become a Polyglot published , under
  183. We don’t want your Coffee published , under
  184. Continuous Development in Node.js published , under
  185. Deploying Node apps to AWS using Grunt published , under
  186. The Angular Way published , under
  187. Lean Development Principles published , under
  188. Upgraded Asset Management published , under
  189. Teach Yourself Node.js in 10 Steps published , under
  190. Modularizing Node Applications with Express published , under
  191. Getting Over jQuery published , under
  192. Tech News Reading Hints published , under
  193. Monitoring Production Grade Node Applications published , under
  194. Organizing your CSS with Bootstrap published , under
  195. CSS For Dummies published , under
  196. Uncovering the Native DOM API published , under
  197. The Micro Library Phenomenon published , under
  198. Learn Regular Expressions published , under
  199. Understanding Build Processes published , under
  200. Recommended Reading published , under
  201. The Web Wars published , under
  202. Taming Asynchronous JavaScript published , under
  203. The Architecture of Productivity published , under
  204. A Note on Everyday Usability published , under
  205. Pragmatic Unit Testing in JavaScript published , under
  206. Managing Code Quality in NodeJS published , under
  207. Introduction to SEO and Content Indexing published , under
  208. Defensive Design published , under
  209. Information Hiding in JavaScript published , under
  210. JavaScript Is Awesome published , under
  211. Implementing OpenSearch published , under
  212. Paging in the Wilderness published , under
  213. Publishing Node.js Packages with npm published , under
  214. Continuous Integration, and Automated Deployments published , under
  215. Asset Management in Node published , under
  216. JavaScript JavaScript JavaScript published , under
  217. Single Page Design Madness published , under
  218. Pony Foo begins published , under

If you’d like to learn more about my work you should visit the about page.