At 10up, we make remarkable tools for building and telling stories—and make those tools available to everyone. With a goal of maintaining the highest standards for design and engineering, we created a scaffold to help ensure the 10up standards are applied to all projects in the most efficient way possible.
Today, we are excited to open-source and release our project scaffolding application suite.
The project scaffolding suite contains three major items:
- A WordPress starter theme (Theme Scaffold)
- A WordPress starter plugin (Plugin Scaffold)
- An npm package for easy installation of either scaffold (Project Scaffold)
Each of these scaffolds:
- Streamlines repetitive tasks and provides a starting point for theme and plugin creation.
- Reflects our Engineering Best Practices and keeps up-to-date with security, accessibility, performance, project structure, and other industry best practices.
- Fosters community contribution and improves how we build WordPress projects.
Why Create a New Starter Theme/Plugin?
There are many starter themes and frameworks available in the WordPress ecosystem. Before creating our own, we evaluated contributing to an existing option. We found that the majority of starter themes and frameworks were either built at odds with core WordPress best practices or fundamentally too simple for our needs, lacking much of the modern tooling we rely on for effective team-centric development. After careful consideration, it made more sense to build our own “scaffolds” that are complete representations of 10up’s Engineering Best Practices. By owning and maintaining the project, we can keep the scaffolds updated and in line with modern development tools.
Theme And Plugin Scaffolding
Important features in the Theme and Plugin Scaffolding include:
- Standardized dependency management with npm
- Standardized PostCSS support (instead of Sass)
- Standardized ES6 support
- CSS linting via our Stylelint rules
- Targeted build process tasks with Webpack and Gulp
- An automated Style Guide template
- Default automated accessibility testing
- PHP linting via our PHPCS Code Standards based on WPCS
The theme and plugin repositories can be cloned directly FROM GitHub—they are fully functional, standalone applications. As an added feature, we created an npm package to help with installation. When installed, this script creates a global command called `create-10up` that can be used to clone the theme and/or plugin scaffolds and automatically setup custom project-specific variables.
The script is publicly available in the npm registry and currently contains two options that map to our available scaffolding repositories:
After installation, each command will be available to set up a WordPress theme or plugin with 10up’s standards packaged together with automatic customizations for your project.
GitHub Repository Templates
GitHub’s new repository template feature makes it easy to share and reuse boilerplate code. When an existing repository is marked as a template, new repositories can be generated with all of the template repository’s files and folders.
(Video courtesy GitHub’s announcement post)
If you would like to use our Theme and Plugin Scaffolding on GitHub without setting up the command line tool, the repository has been marked as a template.
We welcome pull requests and spirited, respectful debates. If you’d like to contribute to the project scaffolding product suite you can do so through their repositories on GitHub. Or, you can join the team!