Midnight MarketingDocs

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#

  1. Edit the relevant section in app/page.tsx.
  2. Watch the browser update.
  3. 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 --vm
  • midnight deploy ./my-app
  • HTTPS by default

It also asserts that template scaffolding — placeholder skeleton text and preview artefacts — never reaches production.

Important

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.