# Everything we don't do.

> Every limit this site publishes, in one list. Each row comes from the page that owns it and links back to that page.

Source: https://customhosted.com/limits/

№ 01 Limits

Most pages on this site publish their own honest limits. This page collects every one of them in a single list, so you can read the whole no list in a minute instead of a week.

№ 02 Why a no list exists

## A limit is a spec, not a surprise

- Read before you buy, a limit is a spec — Read after you buy, the same fact is a surprise. This page moves every limit to before the quote.
- It qualifies you out in a minute — Not in a week. A prospect we can't serve finds out here, instead of after a quote, a call, and a wasted brief.
- Nothing here is retyped — Every row is the same wording as the page that owns it, imported once and shown here — never a second copy to drift from the first.

131

Unique limits

36

Owning pages

25

Shared between pages

13

Carry a route out

№ 03 The whole list

## 131 limits, grouped the way the site is

The same sections the site directory uses — every group here is a real part of the site, not a category invented for this page.

Start here

- A target, not an SLA clause [The quote →](https://customhosted.com/quote) — Within one business day is what we hold ourselves to for a reply. It is not a term in the binding document, which covers availability rather than reply speed. See [the SLA](https://customhosted.com/legal/sla).
- A complicated app can need a question first [The quote →](https://customhosted.com/quote) — Most quotes need nothing further. An undocumented or unusual workload can need one round of questions before the number is final.
- The number assumes the workload you described [The quote →](https://customhosted.com/quote) — A different workload — more traffic, a different shape — gets a different number.
- Not a software build quote [The quote →](https://customhosted.com/quote) — This number prices hosting — the plan, add-ons, and database. Designing or building the app itself is priced separately, by CustomLabs.
- Costs owed elsewhere are not in it [The quote →](https://customhosted.com/quote) — The number covers what we run. Anything a third party bills you directly sits outside it — see "What the number doesn't cover" above.

Platform

- No read replicas today [Databases →](https://customhosted.com/databases) — When read traffic alone is the bottleneck, a second database built for reads is a rebuild, not a resize. See [Scaling](https://customhosted.com/scaling).
- No automatic failover to a second machine [Databases →](https://customhosted.com/databases) — One instance is one instance. Losing it triggers a restore, the same procedure as any other data-loss event. There is no silent switch to a standby. See [Recovery](https://customhosted.com/recovery).
- Query tuning is consulting work, not a managed feature [Databases →](https://customhosted.com/databases) — A slow query needs a person to read it and rewrite it. That is real engineering, not a setting anyone flips. It is CustomLabs work, quoted like any other change.
- Postgres today, another engine on request [Databases →](https://customhosted.com/databases) — This page prices Postgres. A different engine is a custom quote, sized and reviewed the same way as any other bespoke shape. See [Custom](https://customhosted.com/custom).
- Field Core Web Vitals [Performance →](https://customhosted.com/performance) — The numbers above are a lab measurement of the build itself — bytes over the wire, not what a real visitor's device and connection actually experienced. We don't run the traffic yet to publish that honestly. See [Analytics](https://customhosted.com/analytics). — Also on [Being found](https://customhosted.com/being-found) [Analytics](https://customhosted.com/analytics)
- A time-to-first-byte promise [Performance →](https://customhosted.com/performance) — How fast a server answers depends on the visitor, the route, and the day — a single promised number would be true for nobody in particular.
- An "N% faster than X" comparison [Performance →](https://customhosted.com/performance) — That claim needs someone else's site measured the same way, on the same day, under the same load — a comparison we have no honest way to run.
- No history before the import [Repository →](https://customhosted.com/repository) — Code pulled off a running server starts its history on the day it is imported.
- We do not write your test coverage [Repository →](https://customhosted.com/repository) — A briefed change can add a missing README, a lockfile, or a first test harness. It cannot decide what your tests should assert. That needs your own knowledge of the domain.
- A committed secret can't be un-committed [Repository →](https://customhosted.com/repository) — Rotating the value stops it from working. The commit that once held it stays in the repository's history.
- Anything past the retention window [Recovery →](https://customhosted.com/recovery) — Once a backup ages out, it's gone. Ask before the window closes, not after.
- A compliance archive [Recovery →](https://customhosted.com/recovery) — A backup is built to restore a broken system, not to satisfy a multi-year audit requirement — that's a separate, deliberate arrangement, not something a nightly backup happens to double as.
- Data held in a third-party service [Recovery →](https://customhosted.com/recovery) — Anything living in a service we don't run — a payment processor, an email platform, an analytics tool — backs up on that service's own schedule, not ours. — Also on [Outside services](https://customhosted.com/outside-services)
- A change you asked for and regret [Recovery →](https://customhosted.com/recovery) — That's a revert, not an incident — the first failure mode above, not this one.
- Not a 24/7 operations centre [Monitoring →](https://customhosted.com/monitoring) — The watching and the automatic responses run continuously. The humans behind tiers two and three work business hours, with priority handling on an outage and best effort outside them. — Also on [Incidents](https://customhosted.com/incidents) [Under attack](https://customhosted.com/under-attack)
- No public live dashboard [Monitoring →](https://customhosted.com/monitoring) — Status is posted by hand, on purpose — see the page that explains why — not a real-time feed anyone can watch tick over. — Also on [Incidents](https://customhosted.com/incidents)
- Third-party services aren't watched by us [Monitoring →](https://customhosted.com/monitoring) — Anything living in a service we don’t run watches itself on its own schedule, not ours. — Also on [Incidents](https://customhosted.com/incidents) [Outside services](https://customhosted.com/outside-services)
- Not your business metrics [Monitoring →](https://customhosted.com/monitoring) — Uptime, error rate, and capacity, not signups, revenue, or conversion. Those stay yours to watch. — Also on [Incidents](https://customhosted.com/incidents)
- A healthy HTTP 200 with wrong data [Monitoring →](https://customhosted.com/monitoring) — Nothing on the watch list above catches wrong output that looks like success. That one arrives as a report from you, and becomes a briefed change instead of an alert. — Also on [Incidents](https://customhosted.com/incidents)
- No public incident history yet [Incidents →](https://customhosted.com/incidents) — Nothing here is posted publicly after the fact. What you get is the written note above.
- No root-cause report to a fixed deadline [Incidents →](https://customhosted.com/incidents) — A closing note says what broke and what we did. A formal, timed root-cause report is not something this page commits to.
- Third-party outages, we cannot fix [Incidents →](https://customhosted.com/incidents) — A dependency living in a service we do not run goes down on its own schedule, not ours. — Also on [Outside services](https://customhosted.com/outside-services) [Support](https://customhosted.com/support)
- No staffed round-the-clock desk [Incidents →](https://customhosted.com/incidents) — The automated watching runs continuously. The people behind an escalation work business hours, with priority on an outage and best effort outside them. — Also on [Without us](https://customhosted.com/without-us) [Support](https://customhosted.com/support) [Security](https://customhosted.com/security)
- No console to log into [Logs →](https://customhosted.com/logs) — There is no dashboard to click through. An extract is a request, sent through the quote channel, not a click.
- Retention is a window, not an archive [Logs →](https://customhosted.com/logs) — Every record class above ages out on its own schedule. Nothing here is kept forever, and nothing here is a permanent record.
- A log is not a backup [Logs →](https://customhosted.com/logs) — A log is a record of what happened. It is not a copy of your data, and it cannot restore anything that is gone. See [Recovery](https://customhosted.com/recovery).
- No request tracing or per-transaction profiling [Logs →](https://customhosted.com/logs) — A single request's full path through every layer it touched is not rebuilt automatically. This page's own request log narrows a window. It does not trace one transaction end to end.
- A line your code never wrote cannot be recovered afterwards [Logs →](https://customhosted.com/logs) — If your app did not write it down, it does not exist later. No request log, deploy record, or change record can recreate a line your own code chose not to write.
- An end-of-life runtime can't be patched, only replaced [Patching →](https://customhosted.com/patching) — Once a runtime stops receiving security updates upstream, there is no patch left to apply. We tell you ahead of time and quote the upgrade — we don't leave it running unpatched and quiet.
- A zero-day with no fix yet gets mitigated, not patched [Patching →](https://customhosted.com/patching) — When a vulnerability is known before a fix exists, we reduce the exposure we can — the actual patch still waits on whoever maintains the affected software.
- Anything you've pinned stays pinned [Patching →](https://customhosted.com/patching) — If you've deliberately pinned a version for compatibility, it stays there until you say otherwise — this page's automation never overrides a decision you made on purpose.
- A patch that needs an app change becomes a briefed change, not a surprise [Patching →](https://customhosted.com/patching) — The same rule as the framework-major row above: if applying it could break your app, it goes through review before it ships, not around it.
- We don't issue compliance attestations [Patching →](https://customhosted.com/patching) — This page describes real practice, in writing. It isn't a substitute for a formal compliance certificate if your situation specifically requires one.
- No autoscaling [Background jobs →](https://customhosted.com/background-jobs) — A flat rate means fixed, known capacity. Nothing on this platform grows itself in the background and bills you for it afterwards. — Also on [Files](https://customhosted.com/files) [Under load](https://customhosted.com/under-load) [Deploys](https://customhosted.com/deploys) [Scaling](https://customhosted.com/scaling) [What visitors see](https://customhosted.com/what-visitors-see)
- No per-job console [Background jobs →](https://customhosted.com/background-jobs) — There is no dashboard to click through to watch a job run. An extract is a request, sent through the quote channel, the same as a log extract. See [Logs](https://customhosted.com/logs).
- At-least-once, not exactly-once [Background jobs →](https://customhosted.com/background-jobs) — A retry can run a job again after a failure. We cannot make your job safe to run twice. That is your half of "Who owns what" above.
- A static-only plan cannot run a job [Background jobs →](https://customhosted.com/background-jobs) — There is no process to run it on. See the hosting-shape table above for the reason.
- One instance means one clock [Background jobs →](https://customhosted.com/background-jobs) — A single dedicated instance runs one scheduler. Running the same job from two clocks at once is a Custom quote, not a default.
- No image resizing or transform service [Files →](https://customhosted.com/files) — A file is stored and served as sent. Resizing or transcoding one is application code, not a platform feature.
- No file-level version history [Files →](https://customhosted.com/files) — Beyond the nightly backup, there is no per-file undo. Overwriting a file replaces it; the previous copy only survives if last night's backup still has it.
- A static site cannot accept an upload [Files →](https://customhosted.com/files) — There is no writable disk to put it on. See the hosting-shape table above for the reason.
- Upload size is your call, not ours [Files →](https://customhosted.com/files) — Decided by your app and whatever proxy sits in front of it, not by a platform-wide cap.
- We're not a registrar [Domains →](https://customhosted.com/domains) — Registration and its renewal stay between you and whoever you registered the domain with. No record we manage can save a domain that lapses at the registrar.
- We route mail, we don't run mailboxes [Domains →](https://customhosted.com/domains) — Mail records are pointed at whatever provider you use and carried over untouched. Hosting the inboxes themselves is a separate service we do not provide.
- DNS-level geo-routing or traffic-splitting is a custom quote [Domains →](https://customhosted.com/domains) — Standard plans point a domain at one place. Splitting traffic by region or condition at the DNS layer is a real thing we can build — just not something a standard plan includes by default. — Also on [Delivery](https://customhosted.com/delivery)
- Propagation depends on resolvers nobody controls [Domains →](https://customhosted.com/domains) — Lowering TTLs ahead of a change shrinks the window, but a resolver that ignores TTLs and caches longer than asked is outside anyone's control, ours included.
- Transfer locks and auth codes live at your registrar [Domains →](https://customhosted.com/domains) — Moving a domain to a different registrar entirely needs a code only your registrar can issue — that step never runs through us.
- No web-application firewall or rate limiting as standard [Delivery →](https://customhosted.com/delivery) — A standard plan checks the rules on this page and nothing more. Filtering traffic by pattern or capping request rates is a real thing we can build — just not something included by default. — Also on [Under attack](https://customhosted.com/under-attack) [Security](https://customhosted.com/security)
- No per-request compute beyond resolving the address [Delivery →](https://customhosted.com/delivery) — The check that matches a URL to a rule runs at the edge. It doesn't run your code. Anything that computes an answer per request needs an instance behind it.
- A browser's own cache, or a proxy in between, isn't ours to purge [Delivery →](https://customhosted.com/delivery) — Clearing our own cache on every deploy is real and automatic. What a visitor's own browser, or a network in between, decides to hold onto afterwards is outside anyone's control, ours included.
- We won't write a Content-Security-Policy blind [Delivery →](https://customhosted.com/delivery) — A policy written without seeing what a real page actually loads breaks it more often than it protects it. This is why it's a briefed change, not a default.
- On a dedicated instance, the app sets its own headers [Delivery →](https://customhosted.com/delivery) — The rows above are what a static site gets by default. On a dedicated instance, your app or its own reverse proxy is what actually sets response headers — we help set that up rather than guessing at it from outside.
- We don't fix your app's own security holes for free [Under attack →](https://customhosted.com/under-attack) — A real vulnerability in your own code is a briefed change, or a piece of CustomLabs work for something too big for one pull request — not something patched silently on your behalf.
- No certification to hand you [Under attack →](https://customhosted.com/under-attack) — No SOC 2 report, no ISO 27001 certificate, no PCI scope. If your work needs one of these, you need to know that now. — Also on [Your data](https://customhosted.com/your-data) [Security](https://customhosted.com/security)
- We cannot stop someone who already has your credentials [Under attack →](https://customhosted.com/under-attack) — A perimeter is a wall around the outside. A leaked password or key gets in the front door — see Access for who holds a key and how one is revoked. — Also on [Security](https://customhosted.com/security)
- Pattern-based filtering, geo-blocking, and rate limits are real work, not a default [Under attack →](https://customhosted.com/under-attack) — Blocking traffic by pattern, by country, or by request rate is something we can build — quoted flat, the same as any other custom infrastructure request, not something switched on by asking.
- No published requests-per-second figure [Under load →](https://customhosted.com/under-load) — How much one tier holds depends entirely on the app running on it. A number that ignored that would be true for nobody in particular — see the rehearsal above for how to find your own.
- No surge capacity held in reserve [Under load →](https://customhosted.com/under-load) — Capacity does not appear on the day. A flat rate buys the headroom already sized into the tier, not a reserve that switches on when a crowd shows up.
- No queueing guarantee [Under load →](https://customhosted.com/under-load) — A request that waits too long ends as an error handed back to the visitor, not a queue that holds it indefinitely.
- No load balancing across instances [Under load →](https://customhosted.com/under-load) — A single dedicated instance is one instance. Splitting a workload across more than one is a Custom quote, not a setting to switch on. — Also on [Scaling](https://customhosted.com/scaling)
- No named successor, no dated wind-down plan [Without us →](https://customhosted.com/without-us) — There is no named backup operator standing by, and no published date by which a wind-down completes. The termination clause above is the only binding commitment on this.
- No source-code escrow [Without us →](https://customhosted.com/without-us) — Nothing here is held by a third party for release if we fail. You already hold the repository yourself, which is the reason there is nothing to escrow.
- No standby provider agreement [Without us →](https://customhosted.com/without-us) — There is no arrangement with another host to take over your account if this one stops. A handover, not a handoff, is what the pack above is for.
- Third-party integrations rarely behave the same way twice [Outside services →](https://customhosted.com/outside-services) — A payment gateway or a customer-messaging tool usually needs its own sandbox mode, or isn't wired into staging at all — check per integration rather than assuming. — Also on [Environments](https://customhosted.com/environments)
- No uptime number for a service we do not run [Outside services →](https://customhosted.com/outside-services) — We publish our own 99.9% target because we can measure it. Nobody here holds an uptime figure for a service we don't run or control.
- No named vendor [Outside services →](https://customhosted.com/outside-services) — This page never names a vendor. It describes a category only: a payment provider, a mail sender, a customer-messaging tool.
- A copy can't reproduce real traffic [Environments →](https://customhosted.com/environments) — Load, concurrency, and the exact mix of requests production sees don't show up in a check run by one or two people clicking through.
- A copy goes stale [Environments →](https://customhosted.com/environments) — Seeded or backed-up data reflects the moment it was taken, not this morning. Re-pull it before trusting it for anything time-sensitive.
- One standing environment per site, unless quoted otherwise [Environments →](https://customhosted.com/environments) — There's no unlimited fleet of per-branch preview URLs on dedicated compute by default — a second standing copy beyond the one is a custom quote, same as any other non-standard shape.
- Outbound mail and messaging are pointed at a sink or disabled [Environments →](https://customhosted.com/environments) — The classic staging mistake is a test run that emails or texts real customers. Anything a staging copy would otherwise send outward is caught or turned off, not delivered.
- The uptime commitment covers the live service [Environments →](https://customhosted.com/environments) — The 99.9% monthly uptime target on the SLA is measured on production. Staging has no separate availability commitment.
- A dedicated release restarts — it does not swap [Deploys →](https://customhosted.com/deploys) — A single dedicated instance has no second copy standing by to take traffic while the new version starts. A release is a short, health-checked restart, not an instant handoff between two running copies. — Also on [What visitors see](https://customhosted.com/what-visitors-see)
- No canary or partial rollout [Deploys →](https://customhosted.com/deploys) — A deploy ships to everyone at once, once it passes its health check. There is no percentage of traffic held back to watch first.
- No build log handed over [Deploys →](https://customhosted.com/deploys) — You are told whether a build passed or failed, and what changed. Handing over the raw build output is not part of the standard note — ask through the quote channel if you need it for a specific change.
- A passing check is not the same as a correct change [Checks →](https://customhosted.com/checks) — The pipeline confirms the code builds and behaves as tested. It cannot confirm the change is what you actually wanted — that read is still yours. — Also on [Review](https://customhosted.com/review)
- A check proves only what it was written to prove [Checks →](https://customhosted.com/checks) — A green build means every check that exists passed. It says nothing about the ones nobody wrote.
- No coverage figure, published or implied [Checks →](https://customhosted.com/checks) — This page names what runs and why. It publishes no coverage percentage, no pass rate, and no bug-reduction claim — this site holds no artifact for any of them.
- A flaky test in your repository is yours to fix [Checks →](https://customhosted.com/checks) — A test that fails on and off, for no code reason, blocks a deploy the same as a real failure. Fixing or removing it is a briefed change like any other.
- Nothing merges itself [Review →](https://customhosted.com/review) — There is no setting that lets an agent merge its own pull request. A person approves every change, including when you would prefer that it did not. — Also on [Content](https://customhosted.com/content)
- No one reviews it for you [Review →](https://customhosted.com/review) — An agent can act on your feedback and update its own pull request. It cannot stand in for your approval of it.
- A closed pull request leaves nothing behind [Review →](https://customhosted.com/review) — Closing one drops the branch entirely. If the need behind it is still real, it starts over as a fresh brief.
- No self-serve console [Configuration →](https://customhosted.com/configuration) — There is nowhere to click a value in or out yourself. Every change goes through the quote channel, the same as any other request on this site.
- A build-time value in a static bundle is public [Configuration →](https://customhosted.com/configuration) — Said plainly, not buried: baking a secret into a static build ships it to every visitor's browser. Use a run-time value on a standing process instead.
- We can read a value back [Configuration →](https://customhosted.com/configuration) — Named accounts only, to service or rotate a value. A named account, never a shared login.
- No per-branch configuration sets [Configuration →](https://customhosted.com/configuration) — Production and staging each hold their own values. There is no wider fleet of per-branch value sets on a standard plan.
- No feature-flag service [Configuration →](https://customhosted.com/configuration) — A setting can toggle behaviour, but there is no separate flag service here to turn one on or off per visitor. That is application code, not a platform feature.
- No mailboxes [Email →](https://customhosted.com/email) — We route and sign mail your app sends. We do not run a mailbox service — mail addressed to your domain stays with your own mail provider, untouched.
- No bulk or marketing sending [Email →](https://customhosted.com/email) — Unsolicited bulk email is a prohibited use on every plan, not a paid tier away. See [Acceptable Use](https://customhosted.com/legal/acceptable-use).
- Deliverability is never guaranteed [Email →](https://customhosted.com/email) — Whether a message lands in an inbox, a spam folder, or nowhere at all depends on the receiving side's own filtering and your own sending reputation. Inbox placement is not something measurable from here, and nobody can promise it. — Also on [Forms](https://customhosted.com/forms) [Logins](https://customhosted.com/logins)
- A dedicated sending address or IP is quoted work, not a switch [Email →](https://customhosted.com/email) — A shared sending identity covers almost every app. A dedicated one is real work we can build — quoted flat, the same as any other custom infrastructure request, not something switched on by asking.
- We cannot read the contents of your mail [Email →](https://customhosted.com/email) — The relay moves and signs a message; what is inside it is between your app and the person it is addressed to.
- No drag-and-drop form builder [Forms →](https://customhosted.com/forms) — A field, a destination, or a check is a briefed change to the endpoint's own code, not a setting in a dashboard.
- This site's own form posts with JavaScript [Forms →](https://customhosted.com/forms) — With JavaScript off, this site's own quote form does nothing at all when the button is pressed. A form that also posts without JavaScript is quoted work, briefed like any other change — not a setting to switch on.
- No file upload by default [Forms →](https://customhosted.com/forms) — A field that accepts an attachment is real work we can build — quoted flat, the same as any other custom infrastructure request, not something switched on by asking.
- A session held in memory does not survive a release [Logins →](https://customhosted.com/logins) — A single dedicated instance has no second copy standing by to take traffic while the new version starts. A release is a short, health-checked restart, not an instant handoff between two running copies. See [Deploys](https://customhosted.com/deploys).
- We run no identity service [Logins →](https://customhosted.com/logins) — We do not run a login, single-sign-on, or social-login service on your behalf, and we do not set your app's cookie flags. Your application owns the login end to end; hosting only supplies what it stands on.
- We cannot recover a user's account [Logins →](https://customhosted.com/logins) — A forgotten password, a lost second factor, or a locked-out user is your application's own recovery flow to build. We hold no backdoor into any account your app protects.
- No sticky sessions [Logins →](https://customhosted.com/logins) — A single dedicated instance is the only copy of your app running, so there is no second copy to keep a signed-in visitor pinned to. "No autoscaling" is the rule underneath that — see Scaling for it in full. See [Scaling](https://customhosted.com/scaling).
- A backup outlives a delete [Your data →](https://customhosted.com/your-data) — A row you delete from the live store still exists in every backup taken before the delete. It leaves only when that backup's own retention window rolls past it. See [Recovery](https://customhosted.com/recovery). — Also on [Security](https://customhosted.com/security)
- We publish no region list and no residency guarantee [Your data →](https://customhosted.com/your-data) — This site runs from one region, in the United States. Ask which region a workload can sit in before you sign, not after — the honest answer may be that we are not the right host for your obligations. — Also on [Security](https://customhosted.com/security)
- We are not your data protection officer [Your data →](https://customhosted.com/your-data) — We tell you how the platform behaves. We do not tell you what your own legal obligations are, and a data processing agreement is a contract conversation, not a page on this site — start it through the quote form. See [Get a quote](https://customhosted.com/contact).
- No admin screen to log into [Content →](https://customhosted.com/content) — A static build has no dashboard, no login, and no button that edits a live page. Every word or picture ships as a briefed pull request instead.
- No keyword research or content strategy [Content →](https://customhosted.com/content) — Choosing what to write about, and which words to use, is your call. We keep the technical side clear; we do not plan your content. — Also on [Being found](https://customhosted.com/being-found)
- A redesign [Content →](https://customhosted.com/content) — Changing the visual system before there is anything to react to needs a plan, not a diff. Start that as a build with CustomLabs, then bring the iterations here.
- No image resizing service [Images →](https://customhosted.com/images) — A picture is not resized, converted, or compressed for you at the moment a visitor requests it. Every change to a picture ships as a briefed pull request.
- No format conversion at request time [Images →](https://customhosted.com/images) — The format a picture ships in is the format it was briefed and built with, not one chosen per visitor.
- No media library or asset browser [Images →](https://customhosted.com/images) — There is no screen to log into and pick a picture from. Every picture is a file in the repository.
- No stock photography [Images →](https://customhosted.com/images) — We host and ship the pictures you brief us. Sourcing a picture to use is yours.
- No ranking, position, or traffic promise [Being found →](https://customhosted.com/being-found) — A crawlable, fast, correctly marked-up site is what we can prove. Where it ranks depends on your content, your market, and a search engine's own algorithm — none of which we run.
- No backlink building [Being found →](https://customhosted.com/being-found) — Earning links from other sites is an outreach effort, not a hosting one. We do not run that campaign for you.
- Compute lives in one place [Scaling →](https://customhosted.com/scaling) — The edge network is everywhere; the dedicated instance behind it is not. Putting compute itself in more than one place is architecture — see "When a bigger box is the wrong answer" above.
- No throttling as a first response [Scaling →](https://customhosted.com/scaling) — A workload getting close to its headroom gets a conversation, not a rate limit switched on quietly. We talk to you before anything changes.
- No origin, no page [What visitors see →](https://customhosted.com/what-visitors-see) — When a dedicated instance is not answering at all, there is nothing left to serve your holding page. The visitor gets a browser-level connection error, not your artwork.
- No uptime or recovery-time figure printed here [What visitors see →](https://customhosted.com/what-visitors-see) — This page describes what a visitor sees, not a measured availability number. See the SLA for the binding figures this site does publish. See [SLA](https://customhosted.com/legal/sla).
- A static site has no error page of its own [What visitors see →](https://customhosted.com/what-visitors-see) — There is no origin to answer wrong, so there is nothing for an error page to catch. Its only failure surface is the not-found page above.
- No console [Analytics →](https://customhosted.com/analytics) — There is nowhere to click into a report. Every number above is read from an invoice, a request-log extract, or a tool you added yourself.
- No dashboard [Analytics →](https://customhosted.com/analytics) — Nothing on this platform draws a chart of your traffic. A visitor-analytics tool you add has its own.
- No usage report [Analytics →](https://customhosted.com/analytics) — There is no periodic summary sent to you. Ask through the quote channel for an extract of what the platform meters.
- We do not watch your visitor-analytics tool [Analytics →](https://customhosted.com/analytics) — A tool you add reports to you, not to us. It is not on the watch list a fault would page someone from.

The loop

- No posted per-change turnaround [In flight →](https://customhosted.com/in-flight) — There is no promised number of hours or days for one change. We have not measured a delivery time we would stand behind, so we do not post one.
- One change in the air at a time [In flight →](https://customhosted.com/in-flight) — There is no second lane. Two changes that touch the same files cannot both be in flight, so one finishes — reviewed, merged, and shipped — before the next one starts. — Also on [Support](https://customhosted.com/support)
- No backlog tool run on your behalf [In flight →](https://customhosted.com/in-flight) — We hold the order you give us. We do not run a project-management board, a ticket queue, or a prioritisation meeting for you — that stays yours. — Also on [Support](https://customhosted.com/support)

Company

- One channel in [Support →](https://customhosted.com/support) — The quote form is the only door. There is no phone line, no chat window, and no email address.
- Self-assessed, not audited [Accessibility →](https://customhosted.com/accessibility) — This is a self-assessment against WCAG 2.1 AA, run by the team that built the site — not an independent third-party audit.
- No formal VPAT [Accessibility →](https://customhosted.com/accessibility) — There is no formal VPAT (Voluntary Product Accessibility Template) yet.
- Automated tooling has gaps [Accessibility →](https://customhosted.com/accessibility) — Automated tooling catches a wide slice of issues but not everything a manual audit or real assistive-technology use would surface.

№ 04 A hard no, or a quote?

## Three kinds of "no"

Not every limit means the same thing. Here is how to tell which one you're reading.

- Architecture — a Custom quote — No autoscaling. A flat rate means fixed, known capacity. Nothing on this platform grows itself in the background and bills you for it afterwards. Changing the shape of what runs is a design conversation, priced as Custom work — not a setting on an existing plan.
- A change to your app — brief it — Some limits are a gap in what your own application does, not in what the platform runs. That's briefed as a change, the same way a flagged dependency is: written up, opened as a pull request, reviewed by a person, then shipped through the same pipeline as anything else.
- By design — never — Nothing merges itself. There is no setting that lets an agent merge its own pull request. A person approves every change, including when you would prefer that it did not. No plan, add-on, or Custom quote changes this one.

A change to your app, worked through

1. 1 — A routine scan flags a dependency — CustomHosted — The same kind of check that watches the infrastructure layers above, run against your application’s own dependency list.
2. 2 — It's triaged as application-level, not infrastructure — CustomHosted — A library your own code imports isn't ours to patch silently — it can change how the app behaves.
3. 3 — Briefed as a change — CustomLabs — Written up the same way any other change request is — this is what the Agentic iteration — CodeHerder add-on covers.
4. 4 — An agent opens the pull request — CodeHerder — The upgrade lands as a real pull request against the repository, with the test suite run against it.
5. 5 — A human reviews and merges — CustomLabs — Someone reads the diff before it goes anywhere near production — nothing here is auto-applied blind.
6. 6 — It ships through the same pipeline — CustomHosted — The same pipeline that deploys everything else on your stack ships this too — no separate process to babysit.
7. 7 — You're told it's done — CustomHosted — A note confirming what changed and that it merged, in the same shape as every other note on this site.

№ 05 What we won't publish

## A number we refuse to invent is a limit too

- Field Core Web Vitals — The numbers above are a lab measurement of the build itself — bytes over the wire, not what a real visitor's device and connection actually experienced. We don't run the traffic yet to publish that honestly. See [Analytics](https://customhosted.com/analytics).
- A time-to-first-byte promise — How fast a server answers depends on the visitor, the route, and the day — a single promised number would be true for nobody in particular.
- An "N% faster than X" comparison — That claim needs someone else's site measured the same way, on the same day, under the same load — a comparison we have no honest way to run.
- A brief-to-merge duration — Agents in this repo commit once at the end of a session, so a measured first-commit-to-merge time would describe that bookkeeping, not how long the work actually took.
- An agent-authorship count — The Co-Authored-By trailer is only present on a fraction of these merges, so a count would understate and mislead.
- No ranking, position, or traffic promise — A crawlable, fast, correctly marked-up site is what we can prove. Where it ranks depends on your content, your market, and a search engine's own algorithm — none of which we run.

№ 06 When we are the wrong answer

## Sometimes the honest answer is "pick something else"

- You need round-the-clock, sub-minute incident response with dedicated on-call staff — support here runs in business hours, with priority handling on outages, not a 24/7 operations centre.
- You need infrastructure and code changes merged with no human review step at all — the loop’s plain-language brief still goes through a reviewed pull request before anything ships, by design.
- Your traffic is so rare or bursty that a usage-billed free tier would cost less than any flat monthly rate — that’s a real trade-off in the self-serve platform’s favour, not ours.
- Deepening your team’s own in-house operations skill — not just keeping a site running — is the actual goal — handing that work to us doesn’t build the muscle you’re after.

- Rolling it yourself on a cloud account — Pick this instead if your team already has that operations skill in-house and keeping it there is itself a goal, not just a means to an end.
- A self-serve deploy platform — Pick this instead if the project is a prototype, a weekend build, or something you’re genuinely happy to watch the meter on.
- A traditional web host or control-panel plan — Pick this instead if the site is genuinely finished — a brochure that won’t change again — and clicking through a console yourself doesn’t bother you.
- An agency or freelancer on retainer — Pick this instead if what you actually need is design and product decisions, not infrastructure — that’s different work, and a good agency earns a retainer for it.

See the full matrix on [Compare](https://customhosted.com/compare).

№ 07 Worked artifact

## This page, checked against the source it collects

131

rows rendered above — `check:limits` reads the built page and fails the build if that count ever disagrees with what actually renders. It also fails the build the day any data module gains a new limits array and this page hasn't picked it up yet.

№ 08 Answers

## Limit questions

Is this list complete?

Yes for what's already published. Every row here is imported from the page that owns it — 131 unique limits across 36 pages. A new limit lands on its own subject page first, and this page picks it up automatically.

A limit says "Custom quote" — what does that mean?

It means the fix is a change to the architecture itself, not a setting on an existing plan. Brief it the same way, and it comes back priced.

Why doesn't this page just say what you can't host?

Because that's a different question. This page collects what the platform itself does not do — not a list of unsupported frameworks. See What we host for that.

Some limits show up on more than one page — why?

Because the same fact is true in more than one place, and each of those pages reuses the exact same wording rather than writing a second copy. The "also on" chip shows where else it appears.

№ 09 Keep reading

## What limits connects to

- [Compare The full option matrix this page's "wrong answer" band is drawn from.](https://customhosted.com/compare)
- [Patching The dependency-patch path this page reuses for "a change to your app".](https://customhosted.com/patching)
- [Review The human approval step behind this page's "nothing merges itself" example.](https://customhosted.com/review)
- [Scaling The fixed-capacity rule behind this page's "no autoscaling" architecture example.](https://customhosted.com/scaling)
- [The quote Ask a question this page raised, and get a number back in writing.](https://customhosted.com/quote)

## Found the limit that matters to you?

Brief what you need against it. Most turn out to be a quote, not a no.

[The quote →](https://customhosted.com/quote)
