Zach’s ugly mug (his face)

Zach Leatherman

Zach is a Web Developer with the award winning Filament Group. He’s currently fixated on web fonts and static site generators. His public speaking résumé includes talks in seven different countries at events like Smashing Conference, CSSConf, and The White House. He also helps herd NEJS CONF and the NebraskaJS meetup. Read more about Zach »

  1. 2019
  2. Navigate directly to a GitHub Issue Latest Note Feb 2019
  3. 🇩🇪 beyond tellerrand—Düsseldorf Conference Speakingon May 13–15 May 2019
  4. Eleventy Quick Tip №8: Trigger a Netlify Build Every Day with IFTTT Eleventy Feb 2019
  5. Eleventy Quick Tip №7: Fetch GitHub Stargazers Count (and More) at Build Time Eleventy Jan 2019
  6. Build your own Blog from Scratch using Eleventy Eleventy Jan 2019
  7. 2018
  8. Working Draft Podcast: On Tour @ #perfnow 5/6 Web FontsSpeaking21 min Audio Dec 2018
  9. Don’t Stop Learning Frameworks #7 Dec 2018
  10. Should I Use JavaScript to Load My Web Fonts? Web Fonts Nov 2018
  11. Happy Birthday Eleventy! 🎉 Eleventy Nov 2018
  12. The Five Whys of Web Font Loading Performance Web FontsConference Speaking46 min Video #5 Nov 2018
  13. 🇳🇱 performance.now(); the Web Performance Conference Conference Speakingon November 8–9 Nov 2018
  14. A Group of Web Font Repaints is called a Michael Serif Web Fonts Aug 2018
  15. The Problem with font-display and Reflow Web Fonts #14 Aug 2018
  16. The Font Loading Checklist Web Fonts #1 Aug 2018
  17. TalkScript Episode #14 NEJS CONFSpeaking34 min Audio Aug 2018
  18. 🇳🇬 Concatenate Conference Conference Speakingon August 10–11 Aug 2018
  19. NEJS CONF 2018 NEJS CONFConference Organizingon July 27 Jul 2018
  20. The Life Expectancy of Digital Content Jun 2018
  21. The Simplest Web Site That Could Possibly Work Well EleventyNEJS CONF May 2018
  22. Obnoxiously Readable Responsive Text with Viewport Units Web Fonts #13 May 2018
  23. preload with font-display: optional is an Anti-pattern Web Fonts Apr 2018
  24. Import your Disqus Comments to Eleventy Eleventy Apr 2018
  25. “The Compromise”—a Modern but Compatible Font Loading Strategy Web Fonts Apr 2018
  26. Passing the Lead NebraskaJS Organizer Baton Mar 2018
  27. Google Open Source Award for Eleventy Eleventy Mar 2018
  28. It’s Dangerous to Go Stallone. Take Glyphhanger Web FontsProjectHighlight Mar 2018
  29. “A letter about Google AMP” Feb 2018
  30. Web Fonts are ▢▢▢ Rocket Science Web FontsConference Speaking47 min Video Feb 2018
  31. Introducing Eleventy, a new Static Site Generator EleventyProject #19Highlight Feb 2018
  32. 🇬🇧 SmashingConf London 2018 Conference Speakingon February 7 Feb 2018
  33. Making a Simple Web Site with the Simplest Static Site Generator, Level 2—Adding Filters Eleventy Jan 2018
  34. Making a Simple Web Site with the Simplest Static Site Generator, Level 1 Eleventy Jan 2018
  35. spider-pig Searches for Nodes that match a CSS Selector Project Jan 2018
  36. Airing Out 2017’s Dirty Laundry Jan 2018
  37. 2017
  38. 23 Minutes of Work for Better Font Loading 📢 16Web Fonts #4 Nov 2017
  39. NebraskaJS Omaha Speakingon November 14 Nov 2017
  40. Managing Font Loading CSS Was Painful—Not Anymore Web FontsProject #18 Nov 2017
  41. A Collection of Web Font Loading Recipes 📢 1Web FontsProjectResearch Oct 2017
  42. FOIT vs. FOUT, a Side by Side Comparison 📢 2Web FontsProject Oct 2017
  43. A Historical Look at FOUT and FOIT Web Fonts Sep 2017
  44. Web Standards Podcast #85 Web FontsSpeaking1 hour 26 min Audio Sep 2017
  45. 🇧🇾 CSS-Minsk-JS Conference Speakingon September 10 Sep 2017
  46. The Ten Twitter Commandments Speaking Aug 2017
  47. The Web Font Loading Glossary Web Fonts #12 Aug 2017
  48. I made a style guide for my personal web site and you should too. 📢 3 Aug 2017
  49. NEJS CONF 2017 NEJS CONFConference Organizingon July 21 Jul 2017
  50. Font Aliasing, or How to Rename a Font in CSS 📢 7Research #10Highlight Jun 2017
  51. Laissez-faire Font Smoothing and Anti-aliasing 📢 7Research #15Highlight May 2017
  52. Quick Demo: Animating on an Oval Path 📢 2 May 2017
  53. Wait, WebP is actually worth it. 📢 10Research Apr 2017
  54. What Are You Excited About? Speaking Apr 2017
  55. Selecthor: A Better way to Learn and Demo CSS Selectors 📢 4Project Apr 2017
  56. Randsom: A Random Web Fonts Ransom Note Project Apr 2017
  57. Bernie Tweets Project Mar 2017
  58. CSS-Tricks Video Screencasts #152: Font Loading Speaking57 min Video Jan 2017
  59. Shop Talk Show #247: The Performance Equation Speaking72 min Audio Jan 2017
  60. In Case You Missed It: 2016 Jan 2017
  61. 2016
  62. No @font-face Syntax will ever be Bulletproof, Nor Should It Be. Web FontsHighlight Dec 2016
  63. Lazy Loading Web Fonts Is Probably Not What You Want Web FontsHighlight Nov 2016
  64. I Wanted to Type a Number ResearchHighlight Aug 2016
  65. NEJS CONF 2016 Recap NEJS CONFConference Organizingon August 26 Aug 2016
  66. Beyond Code #4 at NEJS CONF 2015 Speaking3 min Video Aug 2016
  67. A Comprehensive Guide to Font Loading Strategies 📢 52Web Fonts #2Highlight Jul 2016
  68. CSS Position Sticky Speaking10 min Video Jun 2016
  69. Web Fonts for President 2016 📢 10Web Fonts #6 Apr 2016
  70. The Web Fonts: Preloaded 📢 3Web FontsResearch #9Highlight Apr 2016
  71. Trying out a new Font Stack 📢 1 Apr 2016
  72. Web Font Anti-pattern: Data URIs 📢 17Web FontsResearchHighlight Mar 2016
  73. A Versatile 2KB of JS Speaking25 min Video Mar 2016
  74. A Story About Proxy Filters Feb 2016
  75. Critical Web Fonts 📢 1Web FontsResearch #8Highlight Jan 2016
  76. In Case You Missed It: 2015 Jan 2016
  77. 2015
  78. The Infinity Hamburger Menu Project Dec 2015
  79. Using Custom Fonts Responsibly, an Akamai Animated Short Web FontsSpeaking5 min Video Dec 2015
  80. Frameworks, not Blameworks Nov 2015
  81. 🇪🇸 A Brief History of that Time You Used Web Fonts—SmashingConf Barcelona Web FontsConference Speaking48 min Video Oct 2015
  82. 🇺🇸 The Performance and Usability of Web Fonts—Velocity New York City 📢 1Web FontsConference Speaking42 min Video Oct 2015
  83. Filament Group is Agency of the Year at Net Awards Sep 2015
  84. A Hypocrite’s Guide to Public Speaking 📢 1Speaking17 min VideoHighlight Sep 2015
  85. Changelog #166, NEJS CONF 2015 NEJS CONFSpeaking69 min Audio Aug 2015
  86. NEJS CONF 2015 Recap NEJS CONFConference Organizingon August 7 Aug 2015
  87. Smashing Book #5 Web Fonts Jul 2015
  88. The Mitt Romney Web Font Problem 📢 3Web FontsResearchHighlight May 2015
  89. 🇺🇸 The Performance and Usability of Font Loading—Velocity Santa Clara 📢 1Web FontsConference Speaking39 min Video May 2015
  90. 🇺🇸 Tech Meetup at the White House 📢 1Speaking3 min VideoHighlight Apr 2015
  91. Compatibility Tables Compendium 📢 9 Mar 2015
  92. 🇨🇦 Better @font-face with Font Load Events—SmashingConf Whistler Web FontsConference Speaking48 min VideoHighlight Feb 2015
  93. Flash of Faux Text—still more on Font Loading 📢 1Web FontsResearch #16Highlight Jan 2015
  94. Performance and Responsive Web Design (2015) Speaking67 min Video Jan 2015
  95. How we use web fonts responsibly, or, avoiding a @font-face-palm Web FontsResearch Jan 2015
  96. In Case You Missed It: 2014 Jan 2015
  97. 2014
  98. The Making of fontfamily.io Web FontsSpeaking19 min Video Nov 2014
  99. word-break Podcast #1 Speaking49 min Audio Nov 2014
  100. WOFF2 See the Wizard, a Wonderful JavaScript Feature Test Web FontsProject Oct 2014
  101. A Font Family Reunion 📢 11Web FontsProjectHighlight Sep 2014
  102. Better @font-face with Font Load Events on Dev.Opera Web FontsResearchHighlight Sep 2014
  103. The Perfect GIF 📢 7Speaking12 min Video Sep 2014
  104. W3C Status Banners 📢 2Project Aug 2014
  105. Tablesaw: A Flexible Tool for Responsive Tables ProjectHighlight Aug 2014
  106. A Frugal and Simple Guide to Putting Lights on your Bike 📢 1 Jul 2014
  107. Pastry Box: Impostor Syndrome Jun 2014
  108. 🇺🇸 Bulletproof Icon Fonts—CSSConf Web FontsConference Speaking26 min Video May 2014
  109. Politespace, an unobtrusive alternative to input masks Project Apr 2014
  110. Bulletproof Accessible Icon Fonts Web FontsProjectResearchHighlight Jan 2014
  111. 2013
  112. In Case You Missed It: 2013 📢 3 Dec 2013
  113. Domain Swap: A Google Chrome Extension Project Dec 2013
  114. The Elusive :target Feature Test 📢 2ResearchHighlight Nov 2013
  115. Impostor Syndrome 📢 8Speaking7 min VideoHighlight Oct 2013
  116. A Nodecopter Informercial (at HOW Conf) Sep 2013
  117. A Sliver of What I Learned at JSConf 2013 Jun 2013
  118. You Should Follow Fewer People on Twitter 📢 3Project Jun 2013
  119. Performance and Responsive Web Design (2013) 📢 5Speaking61 min Video May 2013
  120. zachleat.com is Dead, Long Live zachleat.com 📢 2 May 2013
  121. Tool or Die, a Web Developer’s Workflow 📢 2Conference Speaking59 min VideoHighlight Mar 2013
  122. Side Projects (at Awesome Camp) Mar 2013
  123. A Web Developer Fumbling with Social Media 📢 12 Jan 2013
  124. 2012
  125. SocialCount, Faster & Lighter Social Networking Widgets ProjectHighlight Nov 2012
  126. Performance in Responsive Web Design (2012) Nov 2012
  127. A Front End Engineer’s Manifesto 📢 12ProjectConference SpeakingHighlight Sep 2012
  128. CSS3 Job Transition 📢 3 May 2012
  129. Let’s get parseIntimate. Project Feb 2012
  130. Placeholder Title for Article about HTML5 Placeholders 📢 10ResearchHighlight Feb 2012
  131. 2011
  132. Deferreds and a Better Geolocation API 📢 3 Nov 2011
  133. A Mobile Web Divided 📢 2 Aug 2011
  134. Progressive Enhancement (at jQuery Omaha) Aug 2011
  135. FitText + BigText: A Tale of Two Plugins 📢 6Web Fonts #17Highlight May 2011
  136. Pragmatic Progressive Enhancement 📢 1Highlight May 2011
  137. HTML5 vs. Native Applications, The Presentation 📢 7 Mar 2011
  138. Raging Netflix Queue, a Google Chrome Extension 📢 8Project Feb 2011
  139. The JavaScript Testing Challenge Winner 📢 3 Feb 2011
  140. Et tu, X-UA-Compatible? 📢 3ResearchHighlight Feb 2011
  141. BigText Makes Text Big 📢 70Web FontsProject #3Highlight Jan 2011
  142. An Update to The JavaScript Testing Challenge Jan 2011
  143. 2010
  144. The JavaScript Testing Challenge 📢 8Speaking5 min Video Nov 2010
  145. Faking Onload for Link Elements 📢 3ResearchHighlight Jul 2010
  146. ALARMd is now on Github 📢 4 Jul 2010
  147. Maiden Voyage of the DOM Sailbloat 📢 1Project Jul 2010
  148. A Race Against Time Pickers 📢 1 Jun 2010
  149. Point, Charset, Match: Character Encoding in JavaScript 📢 1Web FontsResearch Mar 2010
  150. Internet Explorer Array.sort Unreliable 📢 13ResearchHighlight Feb 2010
  151. If the Menu Fitts, We Must Acquit 📢 8 Feb 2010
  152. CSS 3 Text: A Tale of writing-mode Woe 📢 3Web FontsResearch Feb 2010
  153. Trash that “Back to Top” Link 📢 8 Feb 2010
  154. The 24 Clock on ALARMd 📢 3 Jan 2010
  155. DIY Webdings—CSS Sprites using @font-face 📢 13Web FontsResearchHighlight Jan 2010
  156. 2009
  157. Don’t Give Up on Internet Explorer Yet 📢 3 Dec 2009
  158. Device Independence on the Open Web 📢 3Highlight Aug 2009
  159. Quick Performance Tip: jQuery and addClass 📢 2 Jun 2009
  160. Adobe Reverts Flex Store to Open Web May 2009
  161. Performance Caveat with jQuery Selectors and Live Events 📢 14Research May 2009
  162. Jonathan Sharp at The Ajax Experience Feb 2009
  163. ALARMd Unix Time Format for 1234567890 Day Feb 2009
  164. Registration Forms Suck, Let’s Mitigate Suckiness 📢 4 Jan 2009
  165. Scare Your Visitors with this JavaScript Gravatar Plugin 📢 6Project Jan 2009
  166. 2008
  167. DOMContentLoaded Inconsistencies (in Browsers and JavaScript Libraries) 📢 1ResearchHighlight Dec 2008
  168. jQuery Bug: IE reports incorrect $.browser.version 📢 3 Oct 2008
  169. Dear IE6: Please Cache my Images. 📢 3Research Oct 2008
  170. Relative URLs including the Domain 📢 2 Oct 2008
  171. ALARMd is a Google Code Project Oct 2008
  172. Fight Registrastination. Register to vote! Project Sep 2008
  173. Writing a Front End Engineer’s Resume (or CV) 📢 6 Sep 2008
  174. Emulating onhashchange without setInterval 📢 5ResearchHighlight Aug 2008
  175. Double Whammy: OpenID and Microformats May 2008
  176. Selecting XML Nodes with JavaScript, or the Peril of getElementsByTagName 📢 8Research #20Highlight May 2008
  177. Javascript Objects are NOT JSON 📢 3 May 2008
  178. Surnamespacing 📢 3 May 2008
  179. Don’t Let the Door Hit You Onunload and Onbeforeunload 📢 10Research #11Highlight Apr 2008
  180. Forgive My Feed Apr 2008
  181. Rethinking JavaScript Grids and DataTables 📢 1 Apr 2008
  182. ALARMd 2 Beta, with Google Calendar Integration 📢 12ProjectHighlight Apr 2008
  183. 20000 Leagues Under the API: YouTube JavaScript Apr 2008
  184. Code Like the Big Boys: Flickr 📢 3 Mar 2008
  185. Tips for Programming JavaScript Functions 📢 1 Mar 2008
  186. Architecture Choices: Callbacks and Events in JavaScript Mar 2008
  187. Yet Another Pretty Date JavaScript 📢 25ProjectHighlight Mar 2008
  188. Minor Annoyances with Firefox Development Mar 2008
  189. Specific Inheritance with TIBCO’s General Interface 📢 2 Mar 2008
  190. PHP Pretty Date 📢 6Project Feb 2008
  191. Online Movie Rental Review – Amazon Unbox 📢 4 Jan 2008
  192. 2007
  193. Quine using XHTML and JavaScript Dec 2007
  194. Faster YUI DataTable with 5 Lines of Code 📢 1 Dec 2007
  195. Problems with Looping through window.setInterval 📢 2 Dec 2007
  196. enterval, an automatic setInterval chainer. Project Dec 2007
  197. Speed up Including Google Analytics Nov 2007
  198. Obscurity, Security, and Captcha 📢 1 Nov 2007
  199. Forward Compatibility and JavaScript Nov 2007
  200. Nursery Rhyme Code Poem [CSS] 📢 1 Oct 2007
  201. Nursery Rhyme Code Poem [PHP] Oct 2007
  202. Nursery Rhyme Code Poem [JavaScript] 📢 1 Oct 2007
  203. Write More Efficient Javascript in YUI with CSS Selectors Project Sep 2007
  204. Cross Domain XHR with Firefox 2 📢 18 Aug 2007
  205. Namespacing outside of the YAHOO Namespace 📢 8 Aug 2007
  206. Enlarging your YUI DataTable in 29 Seconds or Less! 📢 3 Aug 2007
  207. ALARMd now supports URLs Aug 2007
  208. maLArquee, Bringing Back the Marquee 📢 4Project Aug 2007
  209. Using Phing to automate JavaScript and CSS Minimization 📢 3 Aug 2007
  210. YUI Code Review: YAHOO.namespace 📢 3 Aug 2007
  211. Using DOM Query Libraries in YUI 📢 3 Jul 2007
  212. 8 Things the YUI Library Needs to Win Me Back 📢 7 Jul 2007
  213. What Sound Does a Cow Make? MooTools. 📢 1 Jul 2007
  214. 20/20 Hindsight, a Look Back at ALARMd 📢 2 Jul 2007
  215. JavaScript Frameworks and JSF 📢 6 Jul 2007
  216. DOMDom, easy DOM Element Creation 📢 9Project Jul 2007
  217. Wake up to YouTube on my Internet Alarm Clock 📢 23ProjectHighlight Jun 2007
  218. Enlarging your YUI DataTable in 30 Seconds or Less! 📢 7 Jun 2007
  219. Screen Readers and Listening at the Speed of Sound May 2007
  220. Wash your mouth out with SOAP and the YUI Connection Manager 📢 3 May 2007
  221. YUI DataTable and You: Making the Marriage Work 📢 7 Apr 2007
  222. I-Frame Shims or How I Learned to Stop Worrying and Love the Bomb 📢 8 Apr 2007
  223. JavaScript Code Coverage Tool for Firebug 📢 18Project Apr 2007
  224. Google Using YUI Grids CSS 📢 9Highlight Apr 2007
  225. Problems with YUI DataTable 📢 28 Apr 2007
  226. YUI Button Lite Mar 2007
  227. Logical XOR in JavaScript 📢 2Project Mar 2007
  228. Conservative Design Example: Hierarchical Options Mar 2007
  229. Fundamental Problem with YUI Button 📢 1 Mar 2007
  230. OMG SOA Mar 2007
  231. Conservative Design Example: Multiple Option List Mar 2007
  232. Conservative Design: Command Line Interface Mar 2007
  233. Namespaces in Ext DomQuery Mar 2007
  234. Beaten to the Spiked Punch Mar 2007
  235. Conservative Design: Option List Feb 2007
  236. Conservative Design Patterns for Form Elements 📢 3 Feb 2007
  237. Conservative Design: Hierarchical Select 📢 1 Feb 2007
  238. Screen Printing, Fake Interfaces Part 1 Feb 2007
  239. Checklist for Web Applications Feb 2007