Editing page content#
Change what the site publishes — copy, metadata, or structured data — and keep the rendered-HTML contract intact.
Before you start#
- A running development server (Local setup).
- An understanding of which claims the site is allowed to make. The test suite enforces this and will fail your change if you cross it; see Verifying a change.
Where content lives#
| What you want to change | File |
|---|---|
| Headline, sections, FAQ, calls to action | app/page.tsx |
| Page title, description, canonical URL, Open Graph and Twitter cards, robots policy | app/layout.tsx |
| Colours, type, spacing | app/globals.css |
| Crawler directives | app/robots.ts |
| URL list for search engines | app/sitemap.ts |
| Social preview image | public/og.png |
The page is a single server-rendered document. Its sections are ordinary
headings within app/page.tsx — the platform workspace, the three-command
workflow, the host section, the editions comparison, the FAQ, and the closing
call to action.
Change copy#
- Edit the relevant section in
app/page.tsx. - Watch the browser update.
- Run the verification commands before you commit.
Change metadata#
Site metadata is declared once in app/layout.tsx against the canonical site
URL https://deployatmidnight.com. Change it there rather than adding
per-section tags.
The Open Graph image is declared with explicit dimensions matching the shipped
file. If you replace public/og.png with an image of a different size, update
those dimensions in the same change or social previews will letterbox.
Change structured data#
The page emits a JSON-LD block. The production-build test asserts that a block
of type application/ld+json is present, so a change that removes it fails.
Edit the block's contents rather than deleting it.
Claims you must not reintroduce#
The test asserts that several phrases stay out of the rendered HTML, because the product could not support them when they were removed:
midnight install --vmmidnight deploy ./my-appHTTPS by default
It also asserts that template scaffolding — placeholder skeleton text and preview artefacts — never reaches production.
If a future Midnight release genuinely supports one of those claims, change the assertion and the copy together in one commit, so the reason the claim became true is recorded alongside it.
Verify#
Run both commands and expect them to pass:
npm run lint
npm test
If it does not work#
A failing assertion names the phrase it expected or forbade. Match the copy to the assertion, or change the assertion deliberately — do not delete it to make a build pass.