Linchpin is a boutique WordPress agency. We build, integrate and support WordPress for higher education, nonprofits and B2B organizations, often working as an extension of their own teams. Along the way we build and maintain our own plugins and tooling, and we share what we can here.
Tip
Looking for a WordPress partner? Start at linchpin.com or email sayhi@linchpin.com.
- 🏗️ Build. Block themes, custom Gutenberg blocks and plugins on current WordPress, built to WCAG 2.2 AA.
- 🔌 Integrate. WordPress connected to commerce, CRM, forms and the other systems an organization already runs on.
- 🤝 Support. Long-term care and maintenance for the sites we build.
- 📚 Document and train. Documentation and training are part of every project, not an afterthought.
- 🛠️ Make our own products. Plugins and tooling we maintain and use across our work. Some of it is below.
Note
Most client work lives in private repositories. What you'll find here is the tooling and the products we share. For the client work itself, see linchpin.com.
Press . on any repository below to browse it in GitHub's web editor, no clone needed.
| Project | What it does | Latest |
|---|---|---|
| psst | One-time, expiring secrets for WordPress. Encrypted in the browser, so the server only ever holds ciphertext. Try it at psst.linchpin.com. | |
| skills | Our library of AI agent skills for WordPress, React and Cloudflare Workers projects. Works in Claude Code, GitHub Copilot, Codex and Cursor. | |
| cli | Git worktrees and local environment switching for WordPress (Studio, LocalWP, wp-env), with commands an agent can run. | |
| ui | The admin chrome every Linchpin plugin shares, built on @wordpress/admin-ui. |
|
| docspress | Our fork of DocsPress. Markdown docs from many repositories, published to one WordPress site and synced back as pull requests. | |
| actions | Reusable GitHub workflows that build, deploy and maintain WordPress sites, plus our Renovate presets. | |
| coding-standards | PHPCS rules layered on the WordPress and VIP standards. | |
| commitlint-config | The commit convention every Linchpin repository follows. |
| Plugin | What it does | Latest |
|---|---|---|
| Toggle wpautop | Turn off WordPress's automatic paragraphs one post at a time. Active on |
|
| Courier Notices | Site-wide notices and alerts, managed from the admin. | |
| Post Type Spotlight | A "featured" checkbox for any post type, queryable as a taxonomy. |
Older plugins we still keep around
| Plugin | What it does |
|---|---|
| Mesh | Our page builder from the classic-editor era: content sections within pages, posts or custom post types. |
| Simple Subtitles | A subtitle field for posts, pages and custom post types. |
| Prev/Next Page | Previous and next links between pages, the way posts have them. |
| More Below | A small block that tells readers there is more below the fold. |
Four utilities at linchpin.tools, free and open to anyone: an IP address lookup, a logo lookup, a site crawler and a Whois lookup.
Caution
Never paste a password into an issue, an email or a chat. Send it with psst instead. The link works once, then the secret is gone.
The process of a much larger shop, at the size of a small one:
- Every change goes through a pull request, with linting, static analysis and tests in CI
- Conventional commits, so release-please writes the changelog and cuts the version
- Dependencies update continuously, into a reviewed maintenance branch rather than straight to production
- Documentation lives in the repository as Markdown, and publishes itself
- Your pull request: issues and PRs are welcome on any of our public repositories
A commit message is a release note, so we write them like one:
- fixed stuff
+ fix(LINCHPIN-1234): keep the focus ring visible on the sign-in buttonUse our tooling in your own projects
# Linchpin's agent skills, for every project on this machine
npx @linchpinagency/skills --global
# Worktrees and local environments for WordPress
npm install -g @linchpinagency/cli
# Our PHP coding standards
composer require --dev linchpin/coding-standards# Build and deploy a WordPress site with our reusable workflows
jobs:
deploy:
uses: linchpin/actions/.github/workflows/deploy.yml@v4
secrets: inherit
with:
environment: stagingWarning
Our Renovate presets merge non-major updates automatically. Read what a preset enables before you extend it from your own repository.
Important
WCAG 2.2 AA is the floor on everything we ship, our own sites included. If you hit a barrier on one of them, tell us at sayhi@linchpin.com.
