Loading repository data…
Loading repository data…
dknauss / repository
Dirtbag is a super-simple, WordPress block theme built on good bones and road grit. It's a lean utility vehicle designed for tinkering and practical self-education.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Dirtbag is a simple WordPress block theme that does more with less. It's for people who want to learn about WordPress theme design and front-end development by stripping down to fundamentals and building up from there. If you just dig the indieweb and dirtbag aesthetic, that's cool too, but I hope it's a gateway drug to tinkering.
Dirtbag favours plain HTML markup, as little JS (and CSS) as possible, core WordPress blocks, the fonts everyone already has, visible feeds, and old/open-web habits over front-end machinery.
Official listing: Dirtbag is available in the WordPress.org theme directory at wordpress.org/themes/dirtbag. Use the WordPress.org support forum for site-specific help.
Live demo: A static, backend-free snapshot of the theme's demo site is published at dknauss.github.io/dirtbag — a crawl of the WordPress demo deployed to GitHub Pages. Posts, archives, feeds, sitemaps, and all six style variations work; search and comment submission don't (no server). See docs/github-pages-static-export.md for how it's built and deployed.

Out of the box Dirtbag gives you a plain, unstyled, brutalist foundation with a 1990s, view-source feel. It's packaged with Web 1.0-inspired page templates, block patterns, and six global styles: Amber CRT, Blueprint (or BSOD), Hi-vis (No-Name), Minimalist, Newspaper, and Terminal. Unlike the default no-style style, these alternative global styles open the door to the full powers of the site editor, if you want to go there.
Dirtbag is about doing more with native WordPress, more without creating new external dependencies, and more with less. Instead of packing everything into the theme, it is built to get the most out of the document, the browser, and WordPress.
Dirtbag is a freely distributable WordPress block theme that's small, simple, durable, accessible, and understandable. Dirtbag is for people who want to get under the hood to tinker, with or without the aid of a diagnostic cart (AI) and complex tooling. All you need is a little HTML, curiosity, and a DIY independent streak. Future versions will explore style options with modern but minimalist approaches to CSS and JS.
theme.json.style.css contains the WordPress theme header only — and it is empty. Dirtbag uses WordPress-native theme.json-based styles and aims to keep it simple.WordPress core prints global styles, layout styles, block styles, and scripts required by core blocks. Dirtbag avoids doing anything core or the browser already does.
From a WordPress installation:
cd wp-content/themes
git clone https://github.com/dknauss/dirtbag.git dirtbag
Or install the official package from Appearance → Themes → Add New by searching for "Dirtbag".
Then in WordPress:
| Style | Intent | Truck icon |
|---|---|---|
| Brutalist / default | Plainest mode, browser-like HTML energy | Black on transparent |
| Minimalist | Sparse readable defaults | Black on transparent |
| Newspaper | Ink, paper, classifieds | Black on transparent |
| Hi-vis | Safety vest and road cone | Black on transparent |
| Amber CRT | Late-night monitor glow | Amber on transparent |
| Terminal | MS-DOS-adjacent phosphor | Green on transparent |
| Blueprint | Garage plans and cyan chalk lines | Amber on transparent |
The style variations live in styles/. Shared defaults live in theme.json.
Real home-page renders of each style (same content, different style variation):
Dirtbag includes standard block templates for:
Patterns cover comments, post meta, previous/next links, h-card profile markup, rel=me links, XFN/blogroll links, a now section, a colophon, an accessible table, open-web links, and small roadside notices.
There is no package install and no build command. The main local check is:
bin/package-check
It verifies required theme files, JSON validity, screenshot dimensions, block nesting, package hygiene, suspicious front-end code patterns, bundled asset rules, and PHP syntax for patterns.
The same check runs in GitHub Actions on pushes and pull requests.
To build a clean zip package to install via the theme uploader in WordPress, make sure it contains a top-level dirtbag/ directory and excludes development-only files such as .git/, .github/, and .planning/.
Start with the docs index:
GSD project memory lives in .planning/ for local planning context.
Dirtbag ships no theme-authored front-end JavaScript. WordPress core loads its own where blocks need it — the navigation overlay pulls in the Interactivity API runtime, and the theme opts into two of core’s progressive enhancements: enhanced (no-reload) feed pagination and the image lightbox. All three degrade to plain links and images when JavaScript is off.
When an interaction genuinely needs JavaScript, reach for the OEM part before the aftermarket catalogue:
Whatever the part: if it needs its own JavaScript to be understood, it needs a better fallback.
Dirtbag aims to stay boring in the best way:
Manual browser accessibility checks are required before each release. See Testing.
Dirtbag is licensed under the GNU General Public License v2 or later.
Third-party resource credits are listed in readme.txt, including the CC0 pickup truck source image from SVG Repo and typographic inspiration from Butterick’s Practical Typography.
Dirtbag is built with AI assistanc