// Landing page for the {{projectName}} project. Pre-rendered at build time
// by `voltro build` (renderMode='static'), then served straight from the
// file system by `voltro start`. `interactive='none'` strips ALL framework
// JS from the wire — each locale is plain, pre-rendered HTML + CSS.
//
// Bilingual (Strategy B): mounted at `/` (default locale) and mirrored at
// `/de` by src/pages/[locale]/index.tsx. `meta` is a FUNCTION of `{ locale }`
// so each variant's
/ is localised in the emitted HTML.
import type { ReactNode } from 'react'
import type { PageMeta } from '@voltro/web'
import { T } from '@voltro/i18n'
import { getCatalog } from '../lib/locale'
// Pre-render at build time. Removes the runtime dependency entirely
// for plain-content pages — no rpc client, no react hydration. If you
// later add a sign-up form or anything interactive, switch to
// `interactive: 'islands'` and mark the form component as an island.
export const renderMode = 'static' as const
export const interactive = 'none' as const
export const meta = ({ locale }: { locale: string }): PageMeta => {
const c = getCatalog(locale)
return {
title: c['meta.home.title'],
description: c['meta.home.description'],
}
}
// Rich-text tag handlers — each `` used inside a message needs a
// matching value function so react-intl injects the real element.
const strong = (chunks: ReactNode): ReactNode => {chunks}
const code = (chunks: ReactNode): ReactNode => {chunks}
export default function Index(): ReactNode {
return (
)
}