Plans
A plan is what you sell. It bundles resource limits, feature flags and one or more prices, and every subscription is an instance of a plan in force for one customer.
Create and edit plans under Admin → Plans, or POST/PATCH /api/v1/plans. A plan belongs to a
node pool (which servers its sites may be placed on) and, optionally, a database pool.
Limits
Section titled “Limits”| Limit | Controls |
|---|---|
maxSites |
Sites the subscription may have (0 = unlimited) |
maxDomainsPerSite |
Domains and aliases per site |
maxDatabases |
Databases per subscription |
maxCronJobs |
Cron jobs per subscription |
diskMB |
Disk quota, enforced as a filesystem project quota |
inodes |
Inode quota |
bandwidthGB |
Monthly bandwidth (0 = unmetered) |
pooledResources |
Whether CPU/memory/tasks are shared across the subscription’s sites or set per site |
cpuPercent |
CPU quota, in percent of one core (cgroup CPUQuota) |
memoryMB |
Memory ceiling (cgroup MemoryHigh/MemoryMax) |
tasks |
Process/thread ceiling (cgroup TasksMax) |
ioWeight |
Relative disk I/O priority |
phpWorkers |
Maximum PHP-FPM worker processes |
phpMemoryLimitMB |
Ceiling for the site’s own memory_limit |
maxUploadMB |
Ceiling for PHP upload size |
maxExecutionSeconds |
Ceiling for PHP execution time |
phpSleepMinutes |
Default PHP sleep time; 0 = platform default (15 min), -1 = always on |
cacheMB |
Valkey cache size; 0 = no cache |
maxDBConnections |
Concurrent database connections |
cronMinIntervalMinutes |
Shortest interval allowed between a site’s cron runs |
Sensible defaults (used for a new plan): 10 sites, 20 domains per site, 20 databases, 20 cron jobs, 20 GB disk, 500,000 inodes, unmetered bandwidth, pooled resources on, 200% CPU, 2 GB memory, 256 tasks, I/O weight 100, 8 PHP workers, 512 MB PHP memory limit, 256 MB uploads, 120-second execution limit, the platform’s default PHP sleep, 128 MB cache, 40 database connections, 5-minute cron interval floor.
Features
Section titled “Features”| Feature | Enables |
|---|---|
sshShell |
SSH/SFTP shell access, not just SFTP |
databaseTunnel |
SSH tunnel access to the site’s database |
wordpressTools |
Managed WordPress updates and the WordPress tools page |
customCertificates |
Uploading a custom TLS certificate for the site’s domains |
wafControl |
Letting the customer change their own site’s WAF mode |
phpAlwaysOn |
Letting the customer keep their site’s PHP always on, and set a shorter sleep time than the plan default |
backups |
Whether the plan includes backups at all |
backupRetentionDays |
Outer bound on snapshot retention (0–3650 days) |
phpVersions |
Which PHP branches the plan’s sites may choose (empty = every supported branch) |
Pricing
Section titled “Pricing”Add one price per billing interval:
| Field | Value |
|---|---|
interval |
month or year |
amount / currency |
Shown in the storefront |
providerPriceId |
The matching Stripe price_... ID |
A plan can only be bought online for intervals that have a Stripe price ID attached; see
Billing for connecting Stripe. A trialDays value on the plan is
applied automatically at checkout.
Status and visibility
Section titled “Status and visibility”A plan is active (sold on the storefront), hidden (bought only by staff, for grandfathered or
custom deals), or retired (kept for existing subscriptions, no longer sold). sortOrder controls
where it appears relative to other plans. A plan can only be deleted once no subscription — active
or terminated — still references it; retire it instead to stop selling it.
WordPress update policy
Section titled “WordPress update policy”Plans with the WordPress tools feature get a default WordPress update policy (minor core releases only, daily, spread over a window). Plans can set their own — see WordPress.
Brands and plans
Section titled “Brands and plans”A reseller brand’s own staff create and price their own plans, on the platform’s default node pool unless platform staff assign another; only platform staff choose node and database pools for a brand’s plans directly, and only platform staff set prices for plans that bill through the platform’s own Stripe account. See Brands.