Scott Fennell

Photo of Scott Fennell

Scott has been building WordPress themes and plugins from scratch since 2008, and has been with LexBlog since 2012. He lives on an island off the coast of Maine with his family.

He has been published in A List Apart and CSS-Tricks, and has presented his work at WordCamp Portland as well as the Google campus in Fremont, WA.

Latest Articles

Frenchman Antoine de Saint-Exupéry was a writer, WWII pilot, and general designer-of-things.  Perhaps you’re familiar with his quote, “‘Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.”  I think about this quote a lot in my work, and it informs our product decisions at LexBlog.  In fact, I’d estimate that about 10% of my working time is spent removing things, and I enjoy this…
For the past couple of months, we have been working on making our platform compatible with Google’s Accelerated Mobile Pages (AMP) format.  If you’re not familiar with AMP, I think it’s fair to summarize it thusly:  The practice of offering your website in a special format that Google invented, so that your Google SERP’s (search engine result page) have a small gray lightning bolt next to them, which leads the viewer to the AMP-formatted version…
No kidding, there I was, checking my email, when I saw it: [RESPONSE REQUIRED] You’ve been selected as a speaker for WordCamp Maine! It’s more or less my professional goal to infiltrate the inner circles of the WordPress community, so this came as good news.  Even better, I already had my topic prepared because I’d written it as an ALA article some years ago.  The one problem?  Slides.  I had none, and if I tried to make…
I’ve been writing WordPress themes and plugins for about a decade and recently I’ve been putting more effort into curating a personal “boilerplate” folder for new themes and plugins. In reading through it, I can see what concepts and components have become habitual for me, regardless of the subject matter of the project. Some `Constant` Companions I declare the following constants: The purpose of this block is to introduce some basic data about our project,…
Some years ago when I first interviewed with LexBlog, the CTO reiterated several times that he really wanted me to be fluent in plugins, in addition to themes. I knew my way around plugins generally, but I liked the vibe I got from the interview and I wanted the job to work out well, so I stopped at Barnes and Noble on the way home: This book changed my working life profoundly. It’s no exaggeration…
Accessibility, also known as “a11y”, refers to how well a website functions for people with disabilities. Common examples of disabilities in this space include visual conditions like color-blindness, vestibular conditions like animation nausea, and motor disabilities such as cerebral palsy, which happens to be the focus of this article. The Feature I am tasked with creating a “jump menu” for navigating tag archives.  Something like this: There is no submit button.  By merely selecting a…
JavaScript wrangling has been among the most controversial topics in front-end development for a long time now. It’s right up there with tabs vs spaces and french press vs pour over. Here’s how we do at LexBlog in all current and foreseeable projects. The Global Object We kick off a plugin/theme JS file with a global that is namespaced for that project, containing handy functions used throughout.  Example:…
I was looking forward to writing about an intriguing bug in the new FireFox Quantum browser. I was looking forward to depicting the obscure CSS syntax that it bungles, and I was looking forward to explaining just what I plan to do about that. Given the rash of workplace abuses in the news lately, I’m not going to write about technology this week. Instead I’m going to write about the best advice I’ve ever heard:…
I often work with exactly one plugin active, other than the plugin I’m working on and its dependencies. That plugin is Query Monitor. QM adds a button to the admin bar that turns red when I make mistake, and reveals a treasure land of begun info when I click on it. QM is completely free and has inspired a vibrant community of side-plugins, that hook in and provide even deeper debug info about specific…
I try not to get overly technical in this space, but when I get a chance to implement one of my very favorite programming techniques, I have a hard time keeping it to myself.  I want to tell you about recursion.  Per wikipedia: A common method of simplification is to divide a problem into subproblems of the same type […] where problems are solved by solving smaller and smaller instances. Here’s the example.  Earlier this…