CanopusSoftware & Engineering
WordPress Development

A WordPress development company that treats WordPress as software.

Most WordPress sites we inherit were edited straight onto production, have the CRM sync buried in the theme, and hold premium licences registered to an agency nobody has spoken to since 2023. That's a delivery practice problem, not a WordPress problem.

Your repository from commit one4–14 weeksLicences in your nameRunbook at handover
What WordPress development means here

WordPress development is custom engineering on top of WordPress core — content modelling, block or ACF-driven templates, and business logic written as plugins. It is not theme installation. Canopus builds WordPress the way we build software: in Git, reviewed by a second engineer before merge, released through staging, handed over documented.

Signature

Where your code actually lives — and what survives a redesign

One WordPress site has four places code can sit. Which layer a feature goes into decides whether it still works after the next theme change — and nobody asks it at quote stage.

ONE SITE · FOUR PLACES CODE CAN LIVE LAYER SURVIVES A THEME SWITCH? 01 · Content and custom fields Posts, custom post types, taxonomies, ACF field values — in the database Yes — content is independent of design This is why we model fields instead of pasting HTML into one blob 02 · Must-use plugin (mu-plugin) Loads before everything else and cannot be switched off in the admin Yes — and it cannot be deactivated by accident Where redirects, security headers and environment config belong 03 · Your business plugin CRM sync, pricing rules, custom REST endpoints, quote workflow Yes — namespaced to you, activated separately A redesign by any agency, including one that isn't us, leaves it intact 04 · Theme and block templates Templates, block styles, CSS — how the site looks, and nothing more No — and that is correct A theme is disposable by design. Only presentation belongs in it. The failure mode we inherit most: all four layers collapsed into functions.php The CRM sync, the pricing rule and 200 redirects sit in the active theme. The next redesign deletes them, and nobody finds out until a quarter of the leads stop arriving.

Scroll the diagram sideways to see the verdict column.

The rule is simple: content lives in fields, behaviour lives in plugins, appearance lives in the theme. We apply it on every build — which is why a Canopus WordPress site can be redesigned by somebody else without losing its integrations.

Scope

What we build on WordPress

Six kinds of work, one engineering practice underneath all of them.

Themes

Custom themes and block libraries

We model your content types first, then build the blocks an editor composes pages from, with rules about what may sit beside what. Block theme or classic, plus ACF Pro where blocks fit badly.

Plugins

Business-logic plugins

Anything that isn't presentation goes into a plugin namespaced to you. Capability checks, nonces and escaped output are part of the build, not a hardening pass afterwards.

Commerce

WooCommerce development

Stores that outgrew what plugins can express: B2B price lists, quote-to-order approval, subscriptions, stock reconciled against an ERP. We work with High-Performance Order Storage rather than around it.

WooCommerce development
Integrations

API and CRM integration

Custom REST endpoints, authenticated webhooks and syncs to HubSpot, Salesforce, Zoho CRM or an ERP. Every link gets an idempotency key, retry with backoff, and a visible failure rather than a silent one.

Performance

Core Web Vitals work

Profile with Query Monitor first, then fix what it shows — the unindexed meta_query, the autoloaded options table nobody has opened since 2019, the plugin loading assets on all 400 pages. Redis comes after.

Rescue

Hacked site recovery

Injected redirects, pharma spam, fake administrator accounts, cron-based reinfection three days after the clean. We remove the payload, then find the entry point and close it — a clean-up that skips step two is a scheduled repeat.

WordPress rescue & security
Honest scoping

When WordPress is right, and when it is the wrong answer

We build in Next.js and Laravel too, so there's no commercial reason for us to push you onto WordPress. This is the test we apply.

Choose WordPress when

  • Marketing publishes without asking a developer, most weeks
  • The content model is editorial — pages, resources, people, locations
  • You want to hire your own developer later, cheaply and anywhere
  • WooCommerce covers the commerce requirement, or there isn't one

Choose something else when

  • Roles, permissions and workflow are the product — that's custom software
  • The database schema is the thing you're really building
  • Front-end speed is a commercial weapon and nobody edits weekly — Next.js earns its cost
  • Sensitive data would sit behind a public /wp-admin login

Our most common recommendation is the boring one: WordPress for the marketing site, a separate application for anything behind a login, joined by SSO. Two systems each doing what they're good at beats one heroic install with forty plugins nobody dares update. Still choosing? Start at website and web development.

Delivery

Five stages, and what you hold at the end of each

A stage whose deliverable can't be named is a stage you can't check. Durations assume a named lead, one or two WordPress engineers and QA.

Weeks 1–2Paid discovery

Content model and integration audit

Every content type mapped to its fields, relationships and archive, and a check on whether each system you want connected has a documented API. This is where a build gets cheap or expensive.

You receive: a field map, an integration list with the risky ones flagged, and a fixed-price proposal — yours to take elsewhere.

Weeks 2–4Design & blocks

Design as a block system

Not a stack of page mockups. We design the blocks an editor composes pages from — a layout system with no rules becomes forty inconsistent pages inside a year.

You receive: the approved block inventory and a component library.

Weeks 3–10Two-week increments

Build, on a staging URL you can open

Staging runs production's PHP version, object cache and cron, or it proves nothing. Every merge is reviewed by a second engineer against the WordPress Coding Standards.

You receive: a staging URL from week one and a working demo every second week.

1–3 weeksMigration & QA

Content migration, then launch

The URL map is written before anything moves, and redirects tested against a live crawl. Then cross-browser and mobile QA, and Core Web Vitals on a throttled connection.

You receive: the URL map with single-hop 301s, a report of what didn't migrate, a QA sign-off sheet and a performance baseline.

After launch30 days free, then AMC

Defect window and handover

Thirty days in which defects traceable to our build are fixed at no charge, plus one recorded session walking your developer through the repository, the deploy and the rollback.

You receive: the handover pack below, and the recording.

Handover

We build every site so that you could fire us

Every agency claims quality. Almost none will tell you what physically lands in your hands at the end. This is ours, and it's the same list on a $4,000 site and a $60,000 one.

Repository

Your GitHub or Bitbucket organisation, full commit history — not a zip emailed on the last day. The first commit lands in week one.

README

Written for a developer who has never seen the project — install, run locally, build, deploy. If a new engineer can't get it running in an afternoon, it isn't finished.

Licence register

Every premium plugin, its renewal date and the account it belongs to — yours. Updates never stop because a relationship ended.

Environment matrix

Local, staging and production side by side — PHP version, cache layer, cron method. Parity is a written deliverable, because staging that differs from production is theatre.

Deployment runbook

How a release goes out, who approves it, how to roll one back — steps someone can follow under pressure on a Friday.

Decision records

Why the expensive choices were made — fields instead of a page builder, logic in a plugin instead of the theme. Your next developer inherits reasoning, not archaeology.

Hosting, DNS, CDN and analytics accounts are yours from day one, with us added as collaborators. Our access is removed on written request within one business day.

Before you sign anything

What usually goes wrong on WordPress projects

Three we inherit on almost every takeover, all cheaper to prevent than to unpick — and none of them WordPress's fault.

Changes made straight onto production

Edited over FTP or in the admin's theme editor. No history, no diff, no way back when the contact form stops posting on a Friday.

What we do instead: the site goes into version control before we change a line, and production is only ever written to by a deploy.

Business logic buried in the theme

The CRM sync, the shipping override and 200 redirects live in functions.php. It works fine — until the redesign replaces the theme and quietly deletes all three.

What we do instead: behaviour moves into a plugin namespaced to you, so it survives any theme change, including one made by an agency that isn't us.

Updates skipped for eighteen months

Nobody updates because nobody can test it, and nobody can test it because staging doesn't match production. Most hacked sites we're called about got there through a known vulnerability with a patch available for a year, not a clever attack.

What we do instead: environment parity first, then a documented monthly routine that makes updating a fifteen-minute job instead of a gamble.

Technology

The stack we work in, named so you can check it

If a proposal won't name its tools, there's usually a reason. Ask any agency for this list.

Core and language

WordPress corePHP 8.2 / 8.3Composer WP-CLIWordPress MultisiteMySQL / MariaDB

Content and editing

Gutenbergblock.jsonblock themes Advanced Custom Fields Procustom post types WP REST APIWPGraphQLGravity Forms

Quality and review

GitWordPress Coding StandardsPHP_CodeSniffer Query Monitorpeer review before mergestaging parity

Performance and hosting

NginxPHP-FPMOPcache Redis object cacheCloudflareCore Web Vitals

Commerce and integrations

WooCommerceHigh-Performance Order StorageStripe PayPalRazorpayHubSpotSalesforce Zoho CRMGA4Google Tag Manager
Commercials

What actually moves the price

Two WordPress sites with the same page count are rarely the same job. These four things are why.

Content modelFive page templates is a fortnight; products, events, locations and people — each with fields, relationships and an archive — is the build.
IntegrationsA documented REST API with a sandbox is days. An undocumented endpoint or a nightly CSV drop is weeks, and that risk sits on their side.
MigrationEighty pages moved by hand is a week. Four thousand posts with broken media references needs a script, a review and a report of what didn't survive.
Editing modelBlocks and ACF field groups cost more to build than a page builder and far less to live with. Decided before design starts.

We don't take WordPress projects under $3,000

Below that, a well-chosen commercial theme configured by a competent freelancer will genuinely serve you better than we will — you'd be paying us for coordination overhead rather than engineering. We say so on the first call. It costs us a project and saves you a bad one.

We decline two other briefs outright: reskinning a marketplace theme and calling it custom, and work where the code can't go into version control.

Three ways to engage: a fixed-price project after paid discovery; a named WordPress engineer billed monthly; or white-label delivery under your NDA. Once the site is live, content and technical SEO sit under digital marketing and SEO — separate, because it's continuous rather than a build task.

Questions

Cost, timeline, ownership and platform choice

What does a custom WordPress build cost?

Three things move the number: how many content types need modelling, whether the systems you want connected expose a documented API, and how much content is migrating. Page count barely matters. We quote a fixed price after a short paid discovery, and you keep the field map and the written estimate either way. Nothing under $3,000.

How long does a custom WordPress build take?

Four to seven weeks for a custom-theme marketing site once content is ready, eight to fourteen when the content model spans several types or two systems need integrating, plus three to six weeks for a migration above a few hundred URLs. Projects slip on content and sign-off, not on code.

Who works on the project, and does the lead change?

A named technical lead who stays from the first commit through handover, one or two WordPress engineers, and QA. The lead doesn't rotate mid-project. Every merge is reviewed by a second engineer, so your site is never something only one person understands.

Do we own the code, the licences and the hosting?

Yes, and it isn't a transfer we have to remember to make. Code lives in your repository from the first commit; IP assigns to you on payment for the milestone it was written in. Premium licences such as ACF Pro are bought in your name, and hosting, DNS and analytics accounts are yours from day one.

What happens after launch, and can our own developer take over?

A 30-day defect warranty at no cost covers bugs in what we built. After that, updates, backups, monitoring and a monthly patch routine are a retainer, priced separately. Taking the site in-house is a supported outcome — that's what the handover pack is for, and we run a recorded walkthrough with your developer.

WordPress, Next.js or Laravel — how do you choose?

WordPress when a marketing team publishes without a developer and the content model is editorial. Next.js when front-end speed matters commercially and nobody edits weekly. Laravel when roles, permissions and workflow are the product — at that point it's custom software with a public front door. We build all three, so the recommendation costs us nothing either way.

Do you work with Elementor, WPBakery or Divi?

We'll maintain a site that already uses one, and we'll tell you when a builder is genuinely right: a small marketing site, weekly publishing, no integrations, no developer on retainer. We won't start a new custom project on one — the layouts become shortcodes only that plugin can render, so they die with it.

Will a WordPress site pass Core Web Vitals?

Yes, with discipline — WordPress is rarely the reason a site is slow. WordPress builds carry the same budget as every other build: LCP under 2.5 seconds, INP under 200 milliseconds, CLS under 0.1, on a mid-range Android over throttled 4G. That budget is what rejects the four-slide hero carousel at design stage.

Last updated: Written by the Canopus web team

Get a Free Quote

Tell us what the site has to do that a theme can't.

Bring the integration you're worried about, or the site you inherited and can't safely change. Where you give us a URL, we run a real Core Web Vitals check and a plugin audit before replying.

Scope a WordPress build

One business day, from an engineer — with an audit attached where you gave us a URL.
Call WhatsApp Get a Quote