# A typo, a price, a page — the words on your site, and who changes them.

> A static site has no admin screen. Fixing a typo or swapping a picture is a briefed change. See how it goes live and what it costs.

Source: https://customhosted.com/content/

№ 01 Content

This site names the stuck typo and the page that waits forever more than once, with nowhere to send you. This page is that place: how a word actually changes, on a site with no admin screen to log into.

№ 02 Three kinds of content change

## A word, a picture, a page

Almost every request to change a site is one of these three.

1. 1 — A word — A typo, a price, a sentence rewritten. The smallest kind of change, and by far the most common one.
2. 2 — A picture — A photo swapped, a logo updated, or an image replaced with a lighter one — along with the alt text a screen reader speaks for it.
3. 3 — A whole new page — A page that does not exist yet, added to the site and linked from somewhere a visitor actually reaches.

№ 03 Where content actually lives

## By hosting shape

A repository, a database, or an outside service — never all three at once.

- A static build — Every word and picture lives in the repository, as a file. Changing one is a change to that file, reviewed the same way as any other line of code. See [Repository](https://customhosted.com/repository).
- A CMS-driven app — Words and pictures live as rows a database holds, not files in the repository. Changing one is a row update, made through whatever admin screen the app itself provides. See [Databases](https://customhosted.com/databases).
- A headless CMS — Content sits in an outside service, and the site's build or app fetches it from there rather than holding it. A record lives there permanently, not just passed through on a single call. See [Outside services](https://customhosted.com/outside-services).

A briefed picture, and an uploaded one

A picture you brief into the site is committed with the build. Every hosting shape holds one, Static included. Swapping a hero image needs no disk at all.

The table below answers the other case: a picture a visitor or an editor uploads while the site runs. That one needs a writable disk, which is why Static reads "None". See [Files](https://customhosted.com/files) for that case in full.

| Shape | Plan | Disk | Detail |
| --- | --- | --- | --- |
| Static | Static Starter | None | A static site has no writable disk. There is nowhere to put an upload. |
| Dedicated | Dedicated S | 40 GB SSD | The instance's own disk, sized into the tier's flat rate. Not a metered add-on. |
| Dedicated | Dedicated M | 60 GB SSD | The instance's own disk, sized into the tier's flat rate. Not a metered add-on. |
| Dedicated | Dedicated L | 80 GB SSD | The instance's own disk, sized into the tier's flat rate. Not a metered add-on. |
| Custom | Custom | Sized to the workload | Durable storage sized and priced for what you actually keep, the same as any other Custom shape. |

№ 04 Who can change what

## Who opens it, and who merges it

Your own team decides what goes live. We can review and merge for you, if you ask. See [Access](https://customhosted.com/access) for who can touch the rest of a running system.

| Capability | Your team | CustomHosted | The pipeline | CodeHerder agent |
| --- | --- | --- | --- | --- |
| Open a pull request | Any of your own contributors can. | The same as any other contributor, reviewed the same way. | It ships a merge. It does not propose one. | Only ever on its own branch, never on the branch that ships. |
| Merge to the main branch | This is your call to make. | Only if you have asked us to review and merge for you. Most teams keep this step themselves. | It deploys after a merge. It does not decide to merge. | Never. A person approves the pull request first. |

№ 05 The path a word takes to go live

## From a wrong price to a live fix

A content change starts with a person who reads the page. Every step after the brief is the step any other change here takes. [CustomLabs](https://customlabs.io) builds the first version of a site. CodeHerder iterates on it. CustomHosted runs what ships. See [The Loop](https://customhosted.com/loop) for the whole arc.

1. 1 — You notice it — You — A wrong price, a typo, a page that is missing. Nothing here watches for this. A person reads the page and sees it.
2. 2 — You describe it in plain language — You — Say what to change and where it appears. No ticket template, and no technical wording — see Brief a change for the five parts of a good one.
3. 3 — Briefed as a change — CustomLabs — Written up the same way any other change request is. The iteration add-on is what covers it.
4. 4 — An agent opens the pull request — CodeHerder — The change 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.

№ 06 What it takes down

## The same downtime picture as any other change

- Static site — None — there is no running process to restart.
- Dedicated instance — A few seconds while the process restarts. A health check confirms it answers correctly before the window closes.
- Managed database, minor version — A brief connection blip during failover — existing connections reconnect on their own.

№ 07 Seeing it before it is live

## A private staging copy, and a way back

**Private by default.** Not linked from anywhere on your live site, not submitted to a search engine, and left out of the sitemap. Reaching it is a matter of knowing the address and being allowed in — access is controlled, not just unlisted.

- Revert the merge — The same pipeline that shipped the change redeploys the last known-good version. No data touched, because none was.
- Promote the previous deploy — On static hosting, the last deploy is already built and kept. Going back is a request through the usual channel, a straight promotion of it rather than a rebuild.
- A data problem is a restore, not a rollback — If the thing that's wrong is data rather than code, that's the other procedure entirely — see Recovery for the backup and point-in-time paths, and where that boundary actually sits.

№ 08 What it costs

## A briefed change, not a new project

- A word or a picture is a briefed change — Agentic iteration — CodeHerder ($25/mo) covers it, the same as any other small change. Brief a change in plain words. An agent opens a pull request, a person reviews it, and the same pipeline ships it.
- It draws from the same iteration allowance — 3 changes a month, 2 hours each — the same allowance a config change or a new page draws from.
- A brief that needs pricing first is quoted flat — Quoted within one business day if the change itself needs pricing before anyone starts on it.

№ 09 Worked artifact

## This site's own content

Every number below is counted from the build, not hand-typed.

- This site is the worked example. It has 87 routes, 134 glossary terms, and 37 guide sections. Each one is a word or a page, written and shipped the same way a client's would be.
- 3 of the checks that run on every deploy here guard content directly. One confirms a page's own index still matches its bands. One confirms the machine-readable directory lists every route once. One confirms every route still carries one title, one description, and valid structured data. See [Being found](https://customhosted.com/being-found).

The checks that guard it

- check:anchors — Every hub page's "On this page" index still matches its own numbered bands, in order.
- check:llms — The machine-readable site directory lists every route exactly once, and every link actually resolves.
- check:seo — Every route carries one canonical URL, one title, one description, and valid structured data — and nothing meant to stay out of the index does.

№ 10 Four ways it goes wrong

## And the route out of each

- A picture too heavy for the page budget — Owner: You, briefed through CodeHerder — A large image can push a page past its own published weight budget. Resizing it before it ships is part of the same briefed change. See [Images](https://customhosted.com/images).
- A new page nobody linked to — Owner: You — A page that exists but is linked from nowhere is hard for a visitor, and a crawler, to ever find. Brief where it should be linked from, not just the page itself. See [Being found](https://customhosted.com/being-found).
- A word changed in one place, and not the other three — Owner: You — The same price or the same name printed on more than one page drifts the moment only one copy is updated. Brief every place a word appears, not just the one you noticed. See [Brief a change](https://customhosted.com/brief).
- A change went live before you saw it — Owner: You — Merging a pull request is the step that ships it, not opening one. Click the staging link first, the same way any other change gets checked before it merges. See [Review](https://customhosted.com/review).

№ 11 Said plainly

## The honest limits

- No admin screen to log into — 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 — 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.
- 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.
- A redesign — 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.

№ 12 Answers

## Content questions

A typo or an out-of-date price has been wrong for months. How do we fix it?

Brief it in a sentence — the word or the price to change, and where it appears. An agent opens a pull request, the checks run, and a person approves it before it merges.

There is no login for our site. How do we add a page?

The same way as any other change: brief what the page should say and where it should link from. See the worked artifact above for what that path actually ships.

Is there a content management screen we can log into?

No, on a static build. See the honest limits above — every word or picture ships as a briefed pull request, not a dashboard.

What is a headless CMS, and do you support one?

A service that holds your content and hands it to your site's build or app over its own API, rather than storing it in the repository. See "Where content actually lives" above for how it differs from a static build or a database-backed app.

Does changing a word take the site down?

No. See "What it takes down" above — the same downtime picture as any other change, by hosting shape.

Can I see a content change before it goes live?

Yes. It stands on a private staging copy first — see "Seeing it before it is live" above for the address and how to go back if it is wrong.

What does fixing a typo cost?

Nothing extra on its own — it draws from the same 3-changes-a-month allowance as any other small change, under Agentic iteration — CodeHerder ($25/mo). See "What it costs" above.

Can CodeHerder redesign our site?

No. 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.

№ 13 Keep reading

## What content connects to

- [Brief a change How to write the brief that describes a content change, before an agent ever opens a branch.](https://customhosted.com/brief)
- [Review The approval decision once the pull request for a content change arrives.](https://customhosted.com/review)
- [Deploys What actually happens between a merged word and it serving real traffic.](https://customhosted.com/deploys)
- [Repository The one copy of the code a static build's words and pictures live in.](https://customhosted.com/repository)
- [Files A file your app writes while it runs — a different thing from a picture checked into the repository.](https://customhosted.com/files)
- [Being found Whether a machine reader can find a page once it exists — the other half of a new page shipping well.](https://customhosted.com/being-found)
- [In flight What happens once a content change like this one is briefed — why one runs at a time, and what sets the order.](https://customhosted.com/in-flight)

## Got a word, a picture, or a page to change?

Brief it, and it comes back as a pull request — one fixed monthly rate, in writing.

[Get a quote →](https://customhosted.com/contact)
