1.0.0
First stable release.
- addedSixteen routes composed from reusable sections.
- addedSEO foundation with structured data on every page.
A CMS-ready marketing site with the SEO foundation already built and verified.
A marketing site where every string lives in a typed content module rather than inside a component, so swapping in a headless CMS replaces the module bodies and nothing else. The SEO surface — canonicals, structured data, sitemap, RSS, llms.txt — is complete rather than sketched.
Home page in light theme
Canonicals, Product and FAQ schema, breadcrumbs, sitemap, RSS and llms.txt.
No copy inside components. Migration is replacing module bodies.
One h1 per page, no skipped heading levels, skip link first in tab order.
Pages are ordered lists of sections. Sections own their internals, a Section wrapper owns vertical rhythm, and the content layer owns every word. Reordering a page is reordering elements.
app/
(marketing)/ layout + routes
components/
sections/ reusable blocks
content/ every string on the site
lib/ seo · routes · iconsThe archive contains the full source. There is no installer and no post-install script.
unzip marketing-site-template.zip
cd marketing-site-templatepnpm installCopy the example file and fill in the variables listed under Environment variables.
cp .env.example .envpnpm devRuns formatting, lint, type-check, tests and a production build.
pnpm check| Variable | Required | Description |
|---|---|---|
NEXT_PUBLIC_APP_URL | Required | Absolute origin of the deployment. Used for canonical URLs and metadata.https://app.example.com |
Navbar, footer and mobile drawer render from one array, so they cannot disagree.
content/site.tsZero-config. Set the environment variables listed above and connect the repository.
A multi-stage Dockerfile is included, producing a standalone image with no build toolchain.
Builds to a standard Node server. Nothing depends on a platform-specific runtime.
| Technology | Versions | Status |
|---|---|---|
| Next.js | ≥ 15 | Supported |
First stable release.
First stable release.
Frontmatter validation and link checking at build.
None, deliberately. The content layer is typed modules; a CMS adapter satisfies the same types. Picking one for you would be the decision most likely to be wrong.
Curated by us, not inferred — these are the ones that genuinely pair with it.
Other products solving a similar problem.
Products that share a framework with this one.