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