Trellis vs Managed WordPress Hosting: When to Own Your Infrastructure
Every agency and development team running WordPress sites eventually faces a fundamental choice: run your own servers with Trellis, or use a managed WordPress host like Kinsta, WP Engine, Pantheon, or Cloudways. It’s not a question with a universal answer. Both approaches solve the problem of “run a professional WordPress site” well. They make different tradeoffs — on cost, control, operational burden, and learning curve — and the right choice depends on the context of your team, your clients, and your growth trajectory.
This post is an honest comparison of Trellis vs managed WordPress hosting. We’ll cover the costs, the operational differences, what you get (and give up) with each, and a decision framework for picking between them. The goal isn’t to crown a winner — it’s to help you make the choice deliberately instead of by default.
What Each Approach Actually Is
Trellis (Self-Hosted)
You rent a VPS from DigitalOcean, Hetzner, Linode, AWS, or a similar provider. You run Trellis to provision the server (nginx, PHP, MariaDB, Redis, SSL, fail2ban, the whole stack). You run Trellis to deploy your Bedrock sites. You’re responsible for backups, monitoring, security patches beyond automatic updates, and any infrastructure-level incident that happens.
What you own: the server, the OS, the stack configuration, the deploy process, the monitoring.
Managed WordPress Hosting
You pay a monthly fee to a host who provides a WordPress-optimized environment. The host manages the server OS, web server, PHP, MariaDB, caching, SSL, backups, security patches, and infrastructure monitoring. You deploy code through their deploy workflow (Git push, SFTP, or a dashboard). If something breaks at the infrastructure level, it’s the host’s problem.
What you own: the application code, the content, the business logic. Everything else is managed.
Cost Comparison (2026)
Hard numbers as of April 2026, for roughly equivalent capacity:
Trellis on a VPS
- Hetzner Cloud: 4 vCPU / 8 GB RAM / 80 GB disk — ~$12/month
- DigitalOcean: similar specs — ~$24/month
- Linode / Vultr / AWS Lightsail: $20–30/month range
One server can run dozens of WordPress sites if they’re moderate-traffic. The incremental cost of adding a site to a Trellis server is effectively zero — as long as you have capacity.
Managed Hosting (per site)
- Kinsta: Single-site “Starter” plan — ~$30/month. Higher tiers scale by visits, sites, and disk space.
- WP Engine: Startup plan — ~$25/month for one site.
- Pantheon: Performance plans start around $30/month for the first site, tiered by environments and usage.
- Cloudways: Managed hosting on top of various cloud providers, starting around $14/month.
Managed hosts typically charge per site. Running 10 sites on Kinsta’s Starter tier would cost ~$300/month; running the same 10 sites on a single Trellis VPS would cost ~$25/month (plus your time).
But the raw server cost is only part of the picture. The harder-to-measure cost is operational time.
Operational Burden Comparison
Trellis
You are responsible for:
- Initial provisioning — 30 minutes per server, one-time.
- Security updates beyond automatic patching — Trellis does automatic security patches, but major OS upgrades (Ubuntu 24.04 → 26.04) are manual.
- Backup strategy — Trellis doesn’t include backups. You set up database + uploads backups to off-server storage.
- Monitoring and alerting — uptime, disk space, memory, request errors. You configure these (UptimeRobot, Netdata, Prometheus).
- Incident response — when something breaks, you SSH in and debug.
- Scaling — when traffic outgrows one server, you provision a second, configure shared media storage, set up load balancing.
- Compliance — PCI-DSS, HIPAA, SOC2 — if a site needs any of these, you’re implementing them.
Realistic ongoing overhead for a small team running 5–20 Trellis sites: 2–5 hours per week of infrastructure work, plus occasional incident response.
Managed Hosting
The host handles:
- OS, nginx, PHP, MariaDB — fully managed.
- Daily automatic backups with 14–30 day retention.
- Uptime monitoring and alerting.
- Major version upgrades (PHP 8.3 → 8.4).
- Infrastructure-level incident response.
- DDoS protection, WAF rules, rate limiting.
- Scaling — up-tier the plan when traffic grows.
- Compliance certifications (most managed hosts are SOC2, PCI-DSS compliant).
Your ongoing overhead is the site itself — updates, deploys, code. Infrastructure is someone else’s job.
Performance Comparison
Both approaches can deliver excellent performance. The differences are at the margins:
- Trellis on a well-provisioned VPS (dedicated CPU, SSD, well-tuned PHP-FPM pool) matches or beats most managed hosts in raw benchmarks. You control every layer and can tune without limits.
- Managed hosts often have better global CDN integration, more aggressive caching at the edge, and anycast DNS. Harder to replicate without building it yourself.
- Managed hosts manage bursts better — if your site goes viral, Kinsta or WP Engine absorbs the traffic spike (within plan limits). A Trellis VPS tips over when it runs out of resources.
- Trellis gives you native access to caching layers — Redis for object cache, nginx FastCGI cache. Managed hosts abstract this, which is simpler but less tunable.
For most sites at most traffic levels, the performance difference is imperceptible. Pick on other criteria.
Control and Flexibility
This is where the approaches diverge sharply.
Trellis Gives You Full Control
- SSH access with full root (well, sudo) privileges.
- Custom nginx config, PHP settings, MySQL tuning.
- Additional services — Elasticsearch, custom cron jobs, non-WordPress applications, internal APIs.
- Custom firewall rules, VPN setup, static IPs.
- Any PHP version, any database, any Redis configuration.
Managed Hosting Trades Control for Simplicity
- No SSH on some hosts (WP Engine has SSH, Kinsta has SSH, Pantheon has SFTP only on lower tiers).
- No custom nginx or PHP-FPM tweaks.
- Restricted plugin lists on some hosts (caching plugins are often banned because the host provides caching).
- Can’t run non-WordPress services on the same infrastructure.
- Customizations require opening support tickets.
If your sites are vanilla WordPress, these restrictions don’t matter. If you have unusual requirements (a long-running background worker, a custom SSL certificate chain, a specific Redis configuration), managed hosts may not support them.
Which Managed Hosts Support Roots?
One historical friction with managed hosting was that they assumed vanilla WordPress directory structure. Bedrock’s web/app/ structure broke things. As of 2026:
- Kinsta officially supports Bedrock, Sage, and Radicle. They have dedicated documentation, and their DevKinsta local dev tool works well with Roots.
- WP Engine supports Sage with some configuration — post-deploy hooks for
wp acorn view:cache. Bedrock is doable but less native. - Cloudways — supports Bedrock with some manual setup since their default Composer flow isn’t Bedrock-aware.
- Pantheon — historically the hardest. Their upstream-based workflow doesn’t fit Bedrock well. Not recommended for Roots projects.
- SiteGround, Flywheel, Rocket.net — vanilla WordPress only in most cases.
If you’re set on managed hosting and want to use Roots, Kinsta is the path of least resistance.
When Trellis Is the Right Choice
- You manage many sites. Running 20 sites on a single $25/month Trellis server vs $600/month across 20 managed plans is a big cost gap.
- You have in-house DevOps skills — someone on the team is comfortable with Linux, nginx, and Ansible.
- You have unusual technical requirements — custom services, specific PHP extensions, non-WordPress apps on the same server.
- You want maximum performance tuning control.
- You value infrastructure-as-code discipline — Trellis’s Ansible-based provisioning is genuinely cleaner than clicking through host dashboards.
- You need on-premise or specific-region hosting for compliance.
When Managed Hosting Is the Right Choice
- Your team doesn’t have DevOps expertise and doesn’t want to build it.
- You run a small number of sites where per-site managed pricing isn’t crushing.
- You have compliance requirements you don’t want to implement yourself (SOC2, PCI-DSS).
- You hand off sites to non-technical clients who need the host’s support team rather than yours.
- You value strong SLAs with guaranteed uptime and response times.
- You’re running a high-traffic site where the managed host’s auto-scaling is genuinely valuable.
- You’re bootstrapping and want to focus 100% of your time on product/content, not infrastructure.
A Common Hybrid Approach
Many agencies split by project:
- Internal sites, low-stakes client sites, experiments: Trellis on an agency VPS.
- Flagship client sites with strict SLAs: Kinsta or WP Engine, billed to the client.
- Enterprise clients with their own IT requirements: Trellis on infrastructure the client provides.
This splits the risk. Your own experiments run on cheap Trellis servers. Client sites that need guaranteed uptime run on managed infrastructure the client indirectly pays for.
Frequently Asked Questions
Is Trellis cheaper than managed hosting?
On raw hosting cost, yes — dramatically so for multiple sites. On total cost including your time, it depends. At small scale (1–3 sites) and no DevOps expertise, managed hosting is usually cheaper when you account for time. At scale (20+ sites) with DevOps expertise, Trellis is clearly cheaper.
Can I migrate from Trellis to a managed host, or vice versa?
Yes, both directions. Trellis sites are standard Bedrock + WordPress, which managed hosts like Kinsta accept natively. Moving from a managed host to Trellis involves converting to Bedrock first — see our Bedrock migration guide.
Does Trellis include the security features managed hosts advertise?
Most of them. Trellis configures fail2ban, UFW firewall, strong TLS, HSTS, SSL, SSH key auth, automatic security patches, and rate limiting via nginx. What it doesn’t include: managed WAF, DDoS absorption (you can add Cloudflare), SOC2 certification (that’s a process audit, not a technical feature).
What about AWS, Google Cloud, Azure?
Trellis runs fine on their VMs (EC2, Compute Engine, Azure VMs). It doesn’t integrate with their PaaS offerings (Lambda, Cloud Run). If you want to run WordPress seriously on AWS, Trellis on an EC2 instance is a reasonable choice. For hyperscale architectures, custom setups tend to win.
Who handles updates in each model?
Managed hosts handle OS, web server, PHP, and database updates. You handle WordPress core, plugins, and themes regardless of model (though managed hosts may do WordPress core security releases for you). Trellis does automatic security patches for the OS; major version upgrades are your call.
Pick Based on Where Your Attention Should Live
The best framing of the Trellis-vs-managed decision isn’t cost, performance, or control. It’s where do you want your team’s attention?
If the answer is “building great WordPress sites, and infrastructure is a necessary evil we don’t want to think about” — managed hosting is the right answer, even at higher cost. If the answer is “we care about infrastructure, we want to understand it, and we’ll use the knowledge across many sites” — Trellis rewards that investment.
At Emnes, we run Trellis for all 18 of our sites because we genuinely enjoy the control and the discipline of infrastructure-as-code. If we had two sites and no DevOps interest, we’d be on Kinsta. Match the tool to the team.
Related reading: Trellis zero-downtime deployments, provisioning a production server in 30 minutes, and the Bedrock complete guide.