WordPress, without the console.
PHP-FPM and a managed database run on a dedicated instance, backed up every night with your uploads. Once the site is here, CodeHerder ships theme and content changes as pull requests.
When this isn't the right fit A brochure install with no plugins and rare content changes can cost less as a one-time static export. If that sounds like your site, ask on the quote form.
What it needs to run
The shape of the workload, before any hosting decision gets made.
- Runtime
- PHP-FPM, long-running
- Build step
- None for core; plugin or theme builds if you use one
- Standing process?
- Yes: PHP-FPM with a web server in front of it
- Data store
- MySQL or Postgres-compatible, plus the uploads directory
- Verdict
- Dedicated, almost always
How it runs here
The same management as every other tier we run, written in WordPress's own terms.
Provisioning
A dedicated instance with PHP-FPM and a web server set up. We size it to the plugins you run.
Deploys
Theme and plugin code deploys when you push to main. Our pipeline ships it, so nobody uploads to production by FTP.
Data + backups
The database and the uploads directory back up together every night. A restore is one operation, not a database dump plus a media folder.
TLS / DNS / monitoring
Certificates renew on their own and we manage DNS end to end. Monitoring restarts a crashed PHP-FPM pool and alerts a person.
What a visitor sees during a restart →
Moving it in
Already running somewhere else? The full migration playbook covers the general steps. Below is what is specific to WordPress.
- 1
Point us at it
We need read access to the current host, or a database export and the uploads directory.
- 2
We stand up a copy
We move the database, uploads and active plugins as one unit onto a staging copy. You click through it first.
- 3
Cutover on your schedule
DNS and TLS switch over with little-to-no downtime. A rollback stays ready if anything looks wrong.
- The uploads directory and the database must move together. Move only the database and every image on the site breaks.
- Absolute URLs hard-coded in posts or serialized theme options need a search-and-replace during the move. A DNS switch alone does not fix them.
- Plugins that check a license server sometimes need to be activated again once the domain changes hosts.
- WordPress's own mail function usually calls the operating system's mail command, and that command cannot send from here. Point it at an authenticated relay instead. See Email for the path, and for a way to wire it with no plugin.
The loop, on WordPress
A WordPress site rarely needs a rebuild. It needs the steady trickle of theme tweaks, new pages and plugin updates that used to wait in an inbox.
- 01Build
CustomLabs
Bring a WordPress install you already run. Or CustomLabs builds or themes the first version.
- 02Iterate
CodeHerder
Brief a theme change, a new page template or a WP-CLI redirect map in plain language. An agent opens a pull request against the real theme code.
- 03Run
CustomHosted
PHP-FPM and the database on a dedicated instance. We back it up every night with the uploads directory, and patch it on a schedule.
- The brief
- A WP-CLI redirect map for a set of retired blog URLs, plus a seasonal swap of the homepage hero image.
- What the pull request holds
- The redirect rules and the theme change, in one pull request the agent opens against the real repo.
- What happens next
- A human reviews and merges. It ships through the same pipeline.
- A real one
- The site is blinding at night (+751 −258 · 19 files · merged 2026-07-31).
The plugin tax, and who pays it
Shared WordPress hosting hides a real cost behind a low price. This is where that cost goes on a dedicated instance.
Every plugin on a WordPress site adds its own database queries and admin-ajax calls. Some add a cron job too. The changelog does not show this. PHP-FPM's memory use and MySQL's query log do. Shared hosting hides it by packing hundreds of sites onto one box and hoping most of them stay idle. A dedicated instance shares nothing, so a heavy plugin set becomes a sizing conversation. It does not become a mystery slowdown during a traffic spike.
That is why WordPress starts at Dedicated M on the register, not the smaller S tier. Take a real install with a page builder, an SEO plugin, a caching layer and a form plugin. It runs four to six extra processes' worth of PHP before your own content loads. A bare brochure site with two or three plugins can often run on Dedicated S. We tell you that on the quote instead of picking a bigger tier to be safe.
Off shared hosting, you also get headroom, and a slow plugin becomes a problem we can profile. The instance is yours alone, so no noisy neighbour hides the cause behind a support ticket.
A starting configuration
A production WordPress site: a dedicated instance, and the iteration add-on for ongoing theme and content work.
- Base plan
- Dedicated M
- Iteration — CodeHerder loop
- +$25/mo
- Estimated total
- $84/mo
WordPress questions
The questions this stack raises on its own. General hosting questions live on the homepage.
01Do you manage WordPress core and plugin updates?
Every dedicated tier includes security patching. A core or plugin version bump that could break the site goes through the loop instead. Someone reviews it before it goes live.
02Can you move a site with a lot of plugins?
Yes. The database, uploads and active plugins move as one unit. We look at anything unusual before we quote the move.
03Do we get wp-admin access?
Yes, wp-admin is yours as normal. "No console" means no hosting dashboard. It does not mean no WordPress admin.
04Can CodeHerder edit theme PHP and templates?
Yes. A brief can target theme files, custom blocks or WP-CLI commands. The agent opens a pull request against the real theme repository.
05What about WooCommerce or membership plugins?
They run the same way. A heavier plugin set usually means a tier above Dedicated M. We flag that on the quote so the site does not struggle.
Keep exploring
- Dedicated compute
A fixed-price instance sized to the workload, with a static IP and full control.
- Databases
Managed database tiers, backed up every night with the rest of your stack.
- For: no dev team
Did the original developer move on? The loop stands in for the hire you never made.
- Email
Why WordPress's own mail function needs a relay here, and the DNS records that go with it.
- Content
The three kinds of content change, and where content lives when a database holds it.
Ready to start?
Tell us what you're running — one fixed monthly rate, within a business day.