Files
hanzo.ai/app/(marketing)/status/layout.tsx
zeekay 4e2984acca the last twelve pages that had no title of their own
page-meta.ts records this class at 33 of 53 URLs in August. Measured against
the live site today it is 12 of 136, and they are not one problem but two —
which is why they get two answers rather than a title each.

Six only forward the reader: /defi to /blockchain, /fintech to /payments,
/soc2 to /trust, /sentry to /sentinel, /docs and /status to their own hosts.
Left pointing at itself each is a second empty URL competing with the page
that holds the words, so each names its destination as canonical and
consolidates into it.

Six sit behind a sign-in, where a crawler sees the signed-out shell and never
the account. Those are kept out of the index, links still followed.

Two needed more than a layout. /status carried the go-import tag and nothing
else, so a Go module path had no title; it now carries both, and the canonical
says nothing to `go get`, which reads the tag. /account's layout is itself a
client component and can export no metadata at all — the frame moves to
_frame.tsx with every word intact and the server half holds only the metadata.

pageMeta gains exactly the two facts these need. They are documented as
mutually exclusive: one says consolidate, the other says forget, and a crawler
handed both honours neither.
2026-08-21 14:23:11 -07:00

25 lines
988 B
TypeScript

import type { Metadata } from 'next'
import { goImport } from '@/lib/go-modules'
import { pageMeta } from '@/lib/page-meta'
// This path is two things at once: the import path of a Go module, and a page
// that forwards a reader to the live status board. The page is a client
// component and can carry neither fact, so the segment's layout carries both.
//
// It used to carry only the go-import tag, which is invisible to a reader — so
// the page had no title of its own and served the root's. The canonical names
// status.hanzo.ai because that is where the availability actually is; it says
// nothing to `go get`, which reads the tag below and not the canonical.
export const metadata: Metadata = pageMeta({
title: 'Status',
description: 'Live availability for every Hanzo service.',
path: '/status',
canonical: 'https://status.hanzo.ai',
other: goImport('status'),
})
export default function Layout({ children }: { children: React.ReactNode }) {
return children
}