Build · Engineering

WordPress plugin development that stays maintainable.

We have shipped plugins used by more than a million sites, so we build yours the same way we build our own: core APIs, coding standards, proper versioning and documentation — code that outlives whoever wrote it.

  • Built on hooks and core APIs, never by editing core files
  • Documented and versioned so any developer can maintain it
  • You own the code outright, with no licence tied to us

The problem

What usually brings people here.

No plugin does quite what you need

You have tried four. Each does roughly seventy percent of the job, none does the last thirty, and you are maintaining workarounds around all of them.

Five plugins faking one feature

A form plugin, an automation plugin, a webhook plugin and two connectors, chained together to do something a single purpose-built plugin would do in a tenth of the weight.

The custom code lives in the theme

Business logic sitting in functions.php means it dies the day you redesign. Functionality belongs in a plugin so it survives the theme it was born under.

The developer who built it vanished

A custom plugin nobody can safely update, with no documentation, no version control and a fatal error waiting behind the next PHP upgrade.

What we build

The work, specifically.

Discuss your plugin ↗︎

Custom plugins

Purpose-built functionality designed around your workflow, with a settings interface your team can actually use and sensible defaults so it works before anyone configures it.

Extending existing plugins

Often the right answer is not a new plugin but a clean extension of one you already run — using its hooks and filters, so updates do not undo the work.

Third-party integrations

Connecting WordPress to CRMs, ERPs, payment providers and internal systems, with authentication, rate limiting, retries and logs you can read when something fails.

Automation & scheduled jobs

Background processing built on Action Scheduler rather than WP-Cron, so long-running imports and syncs finish reliably instead of timing out silently.

Admin interfaces

Settings screens, dashboards and custom list tables built with native WordPress components, so they feel like part of the admin rather than a bolted-on iframe.

Plugin rescue & audits

Inheriting a plugin somebody else wrote: security review, standards cleanup, dependency updates and documentation, so it becomes maintainable instead of load-bearing and untouchable.

How it works

Specify it properly, then build it once.

  1. Spec

    What it must do, what it must not do, and every edge case we can find upfront.

  2. Architecture

    Data model, hooks and where responsibility sits, agreed before code.

  3. Build

    Written to WordPress Coding Standards with version control from day one.

  4. Test

    Unit tests, PHPCS and real-data testing on staging against your setup.

  5. Ship

    Versioned release, update mechanism and documentation for your team.

  6. Maintain

    Compatibility with new WordPress and PHP releases as they land.

Results

What the work produced.

Integration

An ERP connector that stopped the manual exports

A distributor was exporting orders to CSV every morning and importing stock by hand every evening. We built a two-way connector with queued jobs, retries and a readable failure log.

2 hrs/day of manual work removed
99.8% sync success rate

Product

A plugin used by six figures of sites

We build and maintain our own plugins on the WordPress.org repository, which is where a lot of our standards come from — public code gets reviewed by strangers, and that keeps it honest.

1.5M+ total plugin users
5 plugins actively maintained

Capabilities

The plugin stack we work in.

Core APIs

  • Hooks & filters
  • WP REST API
  • Settings API
  • Options API
  • Transients
  • Custom tables
  • Capabilities & roles

Languages & tooling

  • PHP 8
  • JavaScript / React
  • Composer
  • npm
  • WP-CLI
  • Git
  • Semantic versioning

Integration

  • Action Scheduler
  • Webhooks
  • OAuth 2
  • REST clients
  • Rate limiting
  • Retry & backoff
  • Structured logging

Quality

  • WordPress Coding Standards
  • PHPCS
  • PHPUnit
  • Security review
  • Nonces & sanitisation
  • Update mechanism

Engagement

Three ways this usually runs.

Spec sprint

Fixed fee

A written specification and technical architecture you can build from — with us or with anyone else. Often the cheapest way to discover a plugin is not what you needed.

  • 1–2 weeks
  • No obligation to continue
  • Yours to take elsewhere

Plugin maintenance

Monthly

Keeping a plugin compatible as WordPress, PHP and its dependencies move — plus small feature work as your requirements change.

  • Rolling monthly
  • Compatibility guaranteed
  • Cancel any time

Questions

Plugin questions, answered plainly.

If your situation isn't covered here, send us the details and we'll reply with a straight answer.

Should this be a plugin or code in our theme?

If it is functionality, it belongs in a plugin. If it is presentation, it belongs in the theme. The test is simple: would you still need this if you redesigned the site tomorrow? Business logic in functions.php is one of the most common reasons a redesign becomes far more expensive than it needed to be.

Will a custom plugin survive WordPress updates?

Yes, when it is built on documented hooks and APIs rather than on assumptions about core internals. We never edit core files and we avoid depending on undocumented behaviour. We also test against WordPress beta releases, so compatibility issues surface before your site meets them.

Do we own the code?

Completely. You get the full source, in your own repository, with no licence key, no phone-home and no dependency on us continuing to exist. WordPress plugins inherit the GPL, and we hand over everything needed for another developer to take it forward.

Can you fix a plugin somebody else built?

Yes, and it is a large part of what we do. We start with a review covering security, standards and how it will behave on current PHP and WordPress versions, then give you an honest recommendation: repair, refactor or replace. Sometimes rewriting is genuinely cheaper than untangling.

Do you publish plugins to the WordPress.org repository?

We do, both our own and client plugins where that makes sense commercially. Public repository plugins go through review and get scrutinised by strangers, which is a useful discipline. For internal or commercial plugins we set up private updates instead, so your sites still get versioned releases.

How do updates and versioning work?

Semantic versioning and a proper update mechanism, whether the plugin is public or private. Every release has a changelog, breaking changes are flagged clearly, and updates can be staged before they touch production. You are never in the position of guessing what a version changed.

Off the shelf

Prefer a ready-made plugin?

Browse our plugins ↗︎

We also publish our own WordPress plugins, built to the same standard. If one of them already solves your problem, it is the fastest and cheapest route — no custom build required.

Start here

Tell us what you're dealing with.

The more you can tell us, the more useful our first reply will be. No sales sequence — one of the people who would actually do the work reads this.

  • We read it and look at your site
  • You get a written reply with our honest read
  • If it fits, we scope it properly

Prefer email? hello@dotance.com

We reply within one business day.