№ 01 Built in the open

The site that ships itself

This page is not a testimonial about the loop — it's the loop's own paper trail. CustomLabs designed this site, CodeHerder's agents have been iterating on it in the open ever since, and CustomHosted is what's serving it to you right now. Below is the real ledger, not a mock-up.

№ 02 The loop, on ourselves

Same three roles, same site

The loop we sell isn't hypothetical — it's how this site you're reading got built and keeps getting built.

  1. 01Build

    CustomLabs

    Designed and built this marketing site — the component system, the design tokens, the copy voice.

  2. 02Iterate

    CodeHerder

    Every row in the ledger below started as a plain-language brief. An agent implemented it on its own branch and opened a pull request.

  3. 03Run

    CustomHosted

    This page loaded from the same global edge network we sell — the loop closes on the site you're reading.

№ 03 The ledger

Every row is a merged pull request

Drawn from this repo's real history — the plain-language brief on the left, what actually shipped on the right, and the branch it shipped on. The date under each branch comes from that merge commit itself, not a hand-typed one. No invented figures.

LG-01

“Explain how the consultancy, the hosting, and the automation piece all fit together.”

Added the homepage section walking through Build → Iterate → Run.

New sectiontask/746f2aeff6c77 July 2026
LG-05

“Add an FAQ so search engines can surface our answers directly, not just the page title.”

Added a structured FAQ section with search-engine answer markup.

New sectiontask/aa858bc96ffb8 July 2026
LG-04

“The navigation breaks on phones — fix it properly, not with a squeeze.”

Added a proper mobile navigation drawer.

Refactortask/c94c4dc84c309 July 2026
LG-02

“Stop hand-maintaining the same set of links in the header, the footer, and the sitemap.”

Centralised every route into one typed navigation module every other component reads from.

Refactortask/44176f9589a610 July 2026
LG-03

“Every new page keeps reinventing its own header banner and closing call-to-action.”

Built a shared set of page-header and call-to-action components for interior pages to reuse.

Refactortask/2bc86d3386c010 July 2026
LG-06

“Give people one page that lays out the whole platform before they dig into specifics.”

Added a platform overview page and a reusable related-links component.

New pagetask/61549ad70cae10 July 2026
LG-07

“Explain what static-site hosting actually includes, in depth.”

Added a deep-dive page for static-site hosting.

New pagetask/248e61bdc9b110 July 2026
LG-08

“Same again, but for dedicated servers.”

Added a deep-dive page for dedicated compute.

New pagetask/33c172b4487b10 July 2026
LG-09

“People want real numbers before they'll fill out a form.”

Added a full pricing page with the rate card, add-ons, and a self-serve estimator.

New pagetask/b3a0a796f01610 July 2026
LG-10

“Prospects keep asking about backups and patching before they will sign — put it in writing.”

Added a security page covering backups, patching, TLS/DNS, and portability.

New pagetask/22753bfbca3310 July 2026
LG-11

“We need real terms, privacy, SLA, and acceptable-use pages, not placeholders.”

Added terms, privacy, SLA, and acceptable-use pages.

Contenttask/51906724e29610 July 2026
LG-12

“The homepage loop section is good, but give it a full page of its own.”

Added a dedicated deep-dive page for the Build → Iterate → Run loop.

New pagetask/99cde7731c4010 July 2026
LG-13

“Show what we actually run day to day, not just what we could run.”

Added a register of representative, anonymised deployments.

New pagetask/705a6eb1f69413 July 2026
LG-14

“Make it obvious how we're different from a plain infrastructure bill or a generic dev shop.”

Added a homepage comparison section.

New sectiontask/b828969c205714 July 2026
LG-26

“Don't just claim you ship fast — show me a running record of every change you've made.”

Added this public iteration ledger, a running record of every change shipped to the site.

New pagetask/9b13159f4a7b15 July 2026
LG-25

“Explain what actually changes when a prototype needs to go live for real.”

Added a Field Manual guide on taking a prototype to production.

Contenttask/5bef1e2d772b16 July 2026
LG-24

“When someone shares one of our pages, it should look right — not a generic thumbnail.”

Added dedicated social-share preview cards so every page previews correctly when shared.

New sectiontask/6b40495c893517 July 2026
LG-21

“Our infrastructure setup is one tangled definition — split it so each piece can change on its own.”

Reorganised the infrastructure definitions into separate modules per component.

Refactortask/423ffddbb05918 July 2026
LG-22

“Keep the site's tooling current so we're not stuck on an old build.”

Upgraded the site's build framework to its current major version.

Refactortask/726d272716b218 July 2026
LG-23

“Explain why our pricing is flat-rate instead of the usual pay-per-use billing.”

Added a Field Manual guide comparing flat-rate and usage-based hosting pricing.

Contenttask/2a708664519318 July 2026
LG-19

“I read guides in a feed reader, not by checking your site by hand — give me a feed.”

Added an RSS feed for the Field Manual guides.

New sectiontask/7c2e0f2c5ffb19 July 2026
LG-20

“The header has too many links now, and the mobile menu breaks under a submenu.”

Decluttered the header navigation and fixed the mobile submenu and breadcrumb behaviour.

Refactortask/043f2cb2bc6a19 July 2026
LG-18

“I don't know if I need static hosting or a dedicated box — help me work it out without a sales call.”

Added a self-serve selector tool that recommends a hosting shape from a few questions.

New pagetask/be4906a1b44a20 July 2026
LG-17

“We don't fit your static-site or dedicated-box boxes — what do you do for something bespoke?”

Added a deep-dive page for the custom-hosting tier covering arbitrary applications.

New pagetask/e3901eba539e21 July 2026
LG-16

“Don't just tell me you ship — link me straight to the receipts from the homepage.”

Added a homepage section linking directly to the iteration ledger and the deployment register.

New sectiontask/89357221a7ee22 July 2026
LG-15

“Should we just run this ourselves instead of paying someone to host it — what are the real trade-offs?”

Added a Field Manual guide weighing self-hosting against managed hosting.

Contenttask/a4c9591ce64b23 July 2026
LG-29

“Show me one of these changes followed all the way through, not just a list.”

Added the "Anatomy of a change" walkthrough to the ledger page.

New sectiontask/f581eb50aec224 July 2026
LG-28

“What does a website actually cost me over three years, all in?”

Added a Field Manual guide costing a site's build, run, and iteration over three years.

Contenttask/34dd22bbfec425 July 2026
LG-27

“I just configured a plan in your estimator — why do I have to type it all out again on the contact form?”

Made the estimator and selector configurations a shareable link that carries through to the quote form, pre-filling it instead of discarding the work.

Refactortask/a9b3e685fbaf26 July 2026
LG-30

“Your guides read like a wall of text — make them navigable.”

Turned the Field Manual into a real reading system with a contents rail and next-guide links.

New sectiontask/d28b87c824fe27 July 2026
LG-31

“On my phone the page scrolls behind the menu, and jumping to a section lands in the wrong place.”

Fixed mobile drawer scroll-locking and anchor landing positions.

Fixtask/0d456238a0ec27 July 2026
LG-32

“Something's cut off on the right on my tablet.”

Fixed horizontal overflow across the mobile and tablet layouts.

Fixtask/3e1758026e0427 July 2026
LG-33

“Make sure someone on a low-contrast display or a screen reader can actually use this.”

Fixed WCAG 2.1 AA contrast and heading-structure failures site-wide, and added an automated accessibility check.

Fixtask/32dfabec815828 July 2026
LG-34

“Agencies, founders and people with no developer all need different words.”

Added audience landing pages for each of the three.

New pagetask/6c1372af321129 July 2026
LG-35

“People keep asking 'can you host Next.js / WordPress / Laravel?' — answer it on a page.”

Added a stack-coverage register naming every stack we run, with deep pages for the five asked about most.

New pagetask/20da0c1f270f30 July 2026
LG-36

“The site is blinding at night — support dark mode.”

Added a full night theme that follows the visitor’s system preference, with a manual override.

New sectiontask/292cb6380e0831 July 2026
LG-37

“One of the theming comments says something that's no longer true — fix it before it misleads someone.”

Corrected a stale doc comment claiming the dark bookend tokens were unchanged, when night shift now gives them their own values.

Fixtask/2f14bd3318871 August 2026
LG-38

“This ledger's numbers are hand-regenerated — make them actually computed, and fail the build rather than ship a stale count.”

Added the generator that derives the ledger's counts from this repo's own merge history, ran it in CI, and made missing git history a hard build failure instead of a silently stale snapshot.

Refactortask/8274a63d719c1 August 2026
LG-39

“Answer engines should be able to read the whole site, not just the pages we remembered to list.”

Added a generated site directory and a machine-readable llms.txt, both rendered from one route manifest so neither can fall out of sync.

New pagetask/90a657e129062 August 2026
LG-40

“People keep hitting jargon on this site with no plain-English definition — give them one page for all of it.”

Added a glossary defining every hosting term used on the site, plus a same-week fix for clipped deep links and section eyebrows reading as headings.

New pagetask/9c542c8ad0273 August 2026
LG-41

“Stop telling people we iterate quickly and show them three changes that actually shipped.”

Added a case-files page pairing three real changes with the diff stats from this repo’s own history, so no figure on it is hand-typed.

New pagetask/aca3cf452bb54 August 2026
LG-42

“A poisoned package release is the thing most likely to bite us — make it harder to pull one in.”

Locked installs to reviewed, exact versions with a week-long cooldown on brand-new releases, pinned the build image by content digest, and added a guard that fails the build if any of it is quietly relaxed.

Refactortask/b0fa98bf81f34 August 2026
LG-43

“One of those new install controls is in a folder the tool never reads — it is doing nothing.”

Moved the package-manager config to the only directory the tool reads it from, proved it takes effect, and taught the guard to fail if someone tidies it back.

Fixtask/b0fa98bf81f3-npmrc4 August 2026
LG-44

“When someone prices a setup, they need something they can send to their boss or print out.”

Added a shareable, printable spec sheet for any configuration, built from the same link the estimator already produces.

New pagetask/41cd9d5f6dd25 August 2026
LG-45

“The site is big enough now that browsing it is not the same as finding an answer.”

Added real search across every page, running in the visitor’s browser with no third-party service involved.

New pagetask/568bcfbe69306 August 2026
LG-46

“People are weighing us against rolling it themselves or a self-serve platform — help them do that fairly.”

Added a comparison page setting us next to the four options a buyer is really choosing between, with the cases where one of them is the better pick.

New pagetask/71ffd61a77af7 August 2026
LG-47

“The desktop header looks cramped, and one nav item is styled differently from the rest.”

Rebalanced the desktop header spacing and brought the odd navigation item back in line with its neighbours.

Fixtask/e0caa2b8c7d07 August 2026
LG-48

“Before signing, people want to know what the first week actually asks of them.”

Added an onboarding page laying out the move-in week step by step, with the minutes each step costs the customer rather than us.

New pagetask/d4420f303c4c8 August 2026
LG-49

“Customers do not know what to write when they ask for a change — teach them.”

Added a page on the five parts of a change brief that gets a good result first time, plus a composer that assembles one to send.

New pagetask/b22263372dd49 August 2026
LG-50

“We say there is no lock-in on every other page. Prove it.”

Published the exit procedure — what is in the handover pack, who does what, and how long leaving takes.

New pagetask/20ad8d9cc09810 August 2026
LG-51

“The estimator prices the invoice. Price the other thing this costs someone: their own hours.”

Added a page that estimates the time a self-run stack takes each month against the same setup run by us, with every assumption stated.

New pagetask/818e4787024611 August 2026
LG-52

“"Fast on the edge" is a claim, not evidence. Back it with numbers from our own site.”

Added a performance page reporting measurements taken from this site’s real pages at build time, including the routes that come out worst.

New pagetask/9e5a7e79727912 August 2026
LG-53

“We promise daily backups and tested restores everywhere. Say what a restore actually involves.”

Published the recovery procedure: what a backup holds, how far back it reaches, how a restore goes, and what one cannot fix.

New pagetask/f542d94668f013 August 2026
LG-54

“This page is meant to show what we ship, and it has fallen behind what we actually shipped.”

Caught the iteration ledger up with every merge it had fallen behind, so the page lists the real history instead of a stale slice of it.

Contenttask/f542d94668f0-ledger13 August 2026
LG-55

“You say someone is watching. What are you actually watching, and who gets woken when it breaks?”

Published the watch list: what is checked, what fixes itself without anyone hearing about it, and the escalation ladder for everything that does not.

New pagetask/3f96d002097314 August 2026
LG-56

“Security patching is on every plan page. Say when it happens and whether it takes my app down.”

Published the patching cadence layer by layer, what a standing window actually does, and where a dependency upgrade becomes a reviewed code change instead.

New pagetask/4eab6690b0a415 August 2026
LG-57

“If I point my domain at you, who owns the records — and will my email break?”

Published the domain record sheet: who owns what, which records are carried over untouched, the certificate lifecycle, and the propagation window a cutover opens.

New pagetask/76afe2b21ee216 August 2026
LG-58

“We need to know which pages people actually read, without turning the site into a tracker farm.”

Added one analytics script, disclosed it on the privacy page, and made the build fail if any other third-party script is ever added without the same disclosure.

Refactortask/3643463cb31c17 August 2026
LG-59

“You sell a staging environment. What is it, who can see it, and what data is sitting in it?”

Published what a staging environment is here: its address, who can reach it, the data it holds, how a change is promoted out of it, and how to go back.

New pagetask/b3973472a0d817 August 2026
LG-60

“Show me what a month actually looks like on an invoice, and what can move the number.”

Published the billing month end to end — a specimen invoice, what moves the total, what never does, and the fair-use allowances in real numbers.

New pagetask/ecb192d02c5818 August 2026
LG-61

“Who can touch my production — including the agent that writes our changes?”

Published every party that can reach production, what each one can and cannot do, how secrets are handled, and the things the automation is deliberately not allowed to do.

New pagetask/550685552c3a19 August 2026
LG-62

“Our own working files are being committed into the product repository. They are not part of the product.”

Stopped tracking the agent session scaffolding and added it to the ignore list, so a working file cannot land in the repository again.

Refactortask/45f94309e20319 August 2026
LG-63

“What happens when we outgrow the plan we are on — do you just move us, and do visitors notice?”

Published the tier ladder, how a capacity signal becomes a scheduled move, what a visitor sees while it happens, and when a bigger machine is the wrong answer.

New pagetask/5590154d267520 August 2026
LG-64

“What happens to a request between my domain resolving and my page appearing?”

Published the rules a request meets on the way in — redirects, trailing slashes, a real 404, the cache, and the response headers every page gets by default.

New pagetask/9e1e7be452f321 August 2026
LG-65

“If someone attacks the site, what actually stops them — and where does that stop?”

Published the perimeter layer by layer, the four different things people mean by an attack, what junk traffic does to the bill, and the honest line where a code change takes over.

New pagetask/ac6dafeab43822 August 2026
LG-66

“Our app sends password resets and receipts. Will they still work once you host it?”

Published the outbound mail path: the records a sending domain adds alongside the ones it already has, why an app calling the machine’s own mail command stops working, and the limits nobody can promise past.

New pagetask/7450183ff17f23 August 2026
№ 04 Anatomy of a change

One ledger row, followed end to end

Take LG-01 from the ledger above and rewind it — the five hops from a plain-language brief to a live merge, on this very page.

  1. 01

    Brief

    "Explain how the consultancy, the hosting, and the automation piece all fit together." — that's the whole ask, in a human's words. No ticket, no code, no spec.

  2. 02

    Agent picks it up

    CodeHerder spins up on its own branch (task/746f2aeff6c7), reads this codebase as it stands, and implements the change.

  3. 03

    Pull request

    The agent opens a pull request against the default branch — a scoped, reviewable diff, same as any other change.

  4. 04

    Human review

    A person reads the diff and approves it — or sends it back with notes. Nothing merges itself.

  5. 05

    Merge → live

    Merging ships through the same pipeline that already runs this site. Added the homepage section walking through Build → Iterate → Run. — live on the global edge network in minutes.

№ 05 The tally

Honest, not impressive

The whole point is that these are real counts, not a demo — small enough to be true.

Changes shipped
96
Every one a reviewed pull request — the ledger above shows a curated slice.
Shipping since
2026-07-07 → 2026-08-27
The right-hand date is the last merge that shipped this page — both numbers are read from this repo at build time, not hand-typed.
Chatbots added
0
Content is the pitch. This page is content.

Want the same loop on your own project?

Host with us and CodeHerder's agents can iterate on your codebase the same way — brief a change, review the pull request, ship the merge.

Get a quote