Standards
How we build software at Newfold Labs. Standards are filed by how wide their blast radius is, and every document carries a stable id that checks and AI answers cite, so a failure points at the exact standard behind it.
This index and the navigation are generated from document metadata. Nothing on this page is hand-maintained. Open the atlas Browse all 43 standards a folder at a time, and see what links to what.
General
Standards that hold regardless of platform or artifact type.
-
Introduction
Who we are, why these standards exist, and how they are organised
-
Philosophy
How we approach software engineering, and the values behind the rules
-
Naming
General naming principles that apply before any language or platform convention
-
Naming projects
The platform-type-name convention for repositories, Composer packages and npm packages
-
Naming files and directories
Directory and filename conventions, and where they bend to a framework's expectations
-
Naming code
How to name variables, keys and identifiers so related names group and grow predictably
-
Naming in global namespaces
Defensive prefixing for names that land in a namespace we do not control
-
Frontend best practices
Markup, runtime and payload expectations for anything a visitor's browser loads
-
Git and branching
GitFlow, branch naming, and what CI runs at each stage
-
Releases and versioning
Release cadence, semantic versioning, and the tags each branch type may carry
-
Testing
The kinds of tests we write, who writes them, and what a good assertion looks like
Platform
Standards for a specific technology, applying across everything we build on it.
WordPress
-
WordPress support matrix
The WordPress, PHP and browser versions our products must work on
-
WordPress PHP
PHPCS setup, namespacing, bootstrapping and the defensive habits we expect in PHP
-
WordPress JavaScript
How JavaScript in WordPress differs from a standard build, and how to work with it
-
WordPress security
Authentication, nonces, escaping, sanitization and safe database access
-
WordPress assets
Registering and enqueuing scripts and styles so other codebases can override them
-
WordPress hooks
When to add custom actions and filters, and how to pick arguments and priorities
-
Hook naming
The newfold/context/type/name convention for custom action and filter hooks
-
WordPress interfaces
Building admin UI that coexists with core, other plugins and every color scheme
-
WordPress performance
Query, option, cron and caching habits that matter at our install count
-
Internationalization
Making every user-facing string translatable, and the files that carry the translations
-
WP-CLI
Running WP-CLI commands safely against installations we do not own
-
Tools and services
Recommended development plugins and local environments, none of them required
Artifacts
Standards for a specific kind of thing we ship.
Plugins
-
Plugin structure
How a brand plugin is laid out, and why distribution files decide the layout
Themes
-
Theme structure
Placeholder for theme standards, which have never been written down
Modules
-
Module structure
The directory layout every module shares, and what ends up in the distributed zip
-
Module development
What module owners are responsible for, and the flow from feature branch to plugin PR
-
Module testing
Playwright conventions that let a module's tests run from any brand plugin
Workers
-
Cloudflare Workers
KV, Workers AI and the Vitest setup we use for edge workers
Process
How we work together. Judgement and coordination, not lintable rules.
-
Code review and release restrictions
Who reviews what, who is allowed to release, and the bar a PR must clear to merge
-
Release runbook
The step by step a release lead follows, from Jira planning to posting in Teams
-
Architectural review
What an architectural review covers and what to prepare before requesting one
-
Organization teams
How repository access is granted through GitHub teams rather than individuals
-
Token management
Setting up a personal access token for private packages, and why runners never get one from the repo
-
Crowdin translation workflow
Uploading source strings to Crowdin and getting translations back as a pull request
-
AI translation workflow
Automating po and json translation through Azure AI Translator and a central workflow
Meta
How this repository itself works.
-
Front matter schema
Every field a standards document carries, what it means, and what CI checks
-
Contributing and the RFC process
How to fix a typo, propose a new standard, and resolve disagreement without stalling
-
Standard lifecycle
What draft, active, deprecated and superseded mean, and why nothing is ever deleted
-
Versioning this repository
What a major, minor and patch release of the standards themselves mean
-
Rule definitions
The shape of the machine-readable rules that connect a standard to a check
-
Migration map from how-we-work
Where every page of the old repository ended up, and what changed on the way
-
Resources
Standards guides, WordPress handbooks and references we lean on
By artifact type
Tagging every document with applies_to is what makes it possible to pull just
the standards binding one kind of repository. Documents marked any apply to all
of them and are listed under each.
Plugins
General — Introduction, Philosophy, Naming, Naming projects, Naming files and directories, Naming code, Naming in global namespaces, Frontend best practices, Git and branching, Releases and versioning, Testing
Platform — WordPress support matrix, WordPress PHP, WordPress JavaScript, WordPress security, WordPress assets, WordPress hooks, Hook naming, WordPress interfaces, WordPress performance, Internationalization, WP-CLI, Tools and services
Artifacts — Plugin structure
Process — Code review and release restrictions, Release runbook, Architectural review, Organization teams, Token management, Crowdin translation workflow, AI translation workflow
Meta — Front matter schema, Contributing and the RFC process, Standard lifecycle, Versioning this repository, Rule definitions, Migration map from how-we-work, Resources
Themes
General — Introduction, Philosophy, Naming, Naming projects, Naming files and directories, Naming code, Naming in global namespaces, Frontend best practices, Git and branching, Releases and versioning, Testing
Platform — WordPress support matrix, WordPress PHP, WordPress JavaScript, WordPress security, WordPress assets, WordPress hooks, Hook naming, WordPress interfaces, WordPress performance, Internationalization, Tools and services
Artifacts — Theme structure
Process — Code review and release restrictions, Architectural review, Organization teams, Token management
Meta — Front matter schema, Contributing and the RFC process, Standard lifecycle, Versioning this repository, Rule definitions, Migration map from how-we-work, Resources
Modules
General — Introduction, Philosophy, Naming, Naming projects, Naming files and directories, Naming code, Naming in global namespaces, Frontend best practices, Git and branching, Releases and versioning, Testing
Platform — WordPress support matrix, WordPress PHP, WordPress JavaScript, WordPress security, WordPress assets, WordPress hooks, Hook naming, WordPress interfaces, WordPress performance, Internationalization, WP-CLI, Tools and services
Artifacts — Module structure, Module development, Module testing
Process — Code review and release restrictions, Release runbook, Architectural review, Organization teams, Token management, Crowdin translation workflow, AI translation workflow
Meta — Front matter schema, Contributing and the RFC process, Standard lifecycle, Versioning this repository, Rule definitions, Migration map from how-we-work, Resources
Workers
General — Introduction, Philosophy, Naming, Naming projects, Naming files and directories, Naming code, Naming in global namespaces, Frontend best practices, Git and branching, Releases and versioning, Testing
Artifacts — Cloudflare Workers
Process — Code review and release restrictions, Architectural review, Organization teams, Token management
Meta — Front matter schema, Contributing and the RFC process, Standard lifecycle, Versioning this repository, Rule definitions, Migration map from how-we-work, Resources
Services
General — Introduction, Philosophy, Naming, Naming projects, Naming files and directories, Naming code, Naming in global namespaces, Frontend best practices, Git and branching, Releases and versioning, Testing
Process — Code review and release restrictions, Architectural review, Organization teams, Token management
Meta — Front matter schema, Contributing and the RFC process, Standard lifecycle, Versioning this repository, Rule definitions, Migration map from how-we-work, Resources