About

This site contains my notes and code for WordPress projects.

Production Mode, Dark-mode, BrowserSync, and Sass
Background:

I often find that making notes while working on projects is an important method of both retaining that information and having a reference to work from. I have been making some notes recently because I had to retool my front end workflow for a project. I’m publishing the documentation because it may be helpful to others.

Synopsis:

This site is a copy of what I use to develop and test sites, plugins, and themes. It is largely based on the core development setup for WordPress with some inspiration from Roots, Square-One, and Laravel. The content is a combination of the WordPress Theme Unit Tests and my own custom front end configurations based on Bootstrap and TailwindCSS which illustrate all of the available features.

Approach:

I have what some may call, a very opinionated approach to best practices. I prefer to keep it simple. I think that performance and usability are to the most important factors in web publishing. I sometimes able to avoid databases and server side programming all together in favor of static websites. Unless there are specific functionality requests, WordPress is a perfectly capable content management system when executed properly. I prefer to rely primarily on the core WordPress functionality. I try to make efforts to simplify the user experience and prevent the abuse of the privileges afforded by an open pluggable content management system.

Ethos:

Open Source everything! I’m a strong advocate for transparency and I try to share as much as I borrow. The web is a living publication and the most important part of that is usability. I think it’s important that site owners take ownership of their publications. The best way of doing so is having educated end users who have the tools and ability to maintain them properly. In that spirit, I do my best to give them control of every aspect of their website in an effort to promote a web that is secure, relevant, and always up to date.

Design:

I favor function over form. I use open source front end libraries because the power of group testing is unmatched. I enjoy experimental and motion design when it fits, but I tend to focus on the type of usability that mimics traditional print design. I been through enough stylistic web design trends that I generally try to avoid them to favor a design that won’t become dated. I prefer design which is unique, but I doesn’t stand out. Aside from effectively communicating, I think the most important aspect of design is attention to detail.

Code:

I always try to keep the codebase of my projects as lean as possible to make it more sustainable. I’m an advocate for well structured markup, micro-data, and accessibility. I only have only a couple production plugins I rely on so I don’t have to reinvent the wheel, but there are a bevy of development plugins I regularly use which can be seen in the .gitmodules.extra file in the repo. I always include one plugin which handles blocks within the Gutenberg editor and one theme specific plugin if I’m creating custom post types. Otherwise, the rest is in the theme. I’m not a fan of stuffing the wp_posts or wp_options tables with cruft, but I’m also not a fan of writing multiple custom tables. I separate the features in development sites so that they can easily be removed for production.

Addendum:

I keep my development notes at my Today I Learned site over at https://davidawindham.com/til/ but I might start adding some of the WordPress specific ones here because I often find myself referring to past WordPress projects. Note: If you happen to run into this site working on one of your projects, I’m generally willing to lend advice on this setup if you contact me via my primary domain or email.