For Next.js developers

Make your site visible
to AI, not just Google.

Grndwerk is a shadcn-style installable kit that drops structured data, llms.txt, and AEO signals into any Next.js project. Edit one file. Everything updates.

One-time payment · You own the code · No lock-in

lib/constants.ts
export const SITE: SiteConstants = {
  deploymentModel: "client-owned",
  businessModel:   "localService",
  identity: {
    name: "Apex Plumbing",
    description: "Fast, reliable plumbing...",
  },
  org:  { type: "Plumber" },
  urls: { canonical: "https://apexplumbing.com" },
  // ↑ Change this. Everything updates.
}

↑ The only file you edit. Schemas, metadata, llms.txt — all derived from this.

The shift

Search is changing.
Most sites aren't ready.

40%
GoogleChatGPT, Perplexity, Claude

of searches now happen in AI assistants — and most sites are invisible to them.

0
KeywordsContext & entities

structured data signals = your site is a mystery to any LLM trying to understand it.

llms.txt
RankingBeing cited

is the emerging standard for AI crawlers. Most sites don't have one.

The fix is mostly infrastructure. Correct JSON-LD schemas, a well-formed llms.txt, and proper metadata signals — none of it is rocket science, but it's tedious to wire up correctly for every project. That's what Grndwerk handles.

What's included

Everything wired up.
Nothing to configure twice.

{}16 archetypes

Schema.org JSON-LD

Organization, WebSite, WebPage, Article, FAQ, Service, Product, Person, Breadcrumb — correct types automatically selected per page archetype.

~Auto-generated

llms.txt + llms-full.txt

Auto-generated from your constants and served as static routes. AI crawlers can read and understand your site in one pass.

</>App Router

Next.js Metadata

generateMetadata() and generateRootMetadata() with correct OG, Twitter, canonical, and verification tags. Drop in and forget.

Pre-flight checks

Validator

Checks your constants before schemas are built. Catches missing addresses, bad phone formats, placeholder values, 24hr conflicts.

Dev only

Debug Dashboard

Health overview, constants viewer, schema inspector per archetype. Dev-only — 404 in production. First-class, not an afterthought.

Unique to Grndwerk

Deployment Modes

client-owned for real businesses. owned-asset for rank-and-rent sites — Person schemas suppressed, minimal footprint. A genuine differentiator.

shadcn-style installation — you own the code.

Files copy directly into your project. No npm package to update, no dependency to trust. Read it, modify it, ship it. It's your code now.

How it works

Four steps.
Done in an afternoon.

01

Copy the kit into your project

Drop lib/, components/seo/, and the app routes into your Next.js project. No npm install needed.

cp -r grndwerk/lib ./lib
cp -r grndwerk/components/seo ./components/seo
02

Edit lib/constants.ts

One file. Replace the Apex Plumbing demo with your real business data. Heavily commented — takes ~10 minutes.

// lib/constants.ts
export const SITE: SiteConstants = {
  identity: { name: "Your Business" },
  urls: { canonical: "https://yourdomain.com" },
  org: { type: "LocalBusiness" },
  // ...
}
03

Add JsonLd to each page

One component, one prop. The factory handles which schemas to generate for that archetype.

import { JsonLd } from "@/components/seo/json-ld"

export default function Page() {
  return (
    <>
      <JsonLd archetype="serviceDetail" page={pageData} />
      {/* your content */}
    </>
  )
}
04

Open /debug and verify

The debug dashboard shows validation status, schema health, and a live preview of your llms.txt. Fix any warnings before deploying.

localhost:3000/debug
# → Health dashboard
# → Schema inspector per archetype
# → Constants viewer
# → llms.txt preview

16 page archetypes

Right schemas,
right page, every time.

Pass an archetype to JsonLd and the factory selects every applicable schema automatically. No guessing which types apply where.

ArchetypeSchemas generated
home
OrganizationWebSiteWebPageBreadcrumbFAQPage?
about
AboutPageBreadcrumbPerson[]
serviceList
WebPageOfferCatalogBreadcrumb
serviceDetail
WebPageServiceBreadcrumbFAQPage?
location
OrganizationWebPageBreadcrumb
article
WebPageArticleBreadcrumb
faq
WebPageFAQPageBreadcrumb
contact
ContactPageOrganizationBreadcrumb
policy
WebPageBreadcrumb
landing
WebPageFAQPage?Breadcrumb
team
AboutPagePerson[]Breadcrumb
product
ItemPageProductBreadcrumb
category
CollectionPageItemListBreadcrumb
listingDetail
ItemPageBreadcrumb
portfolio
CollectionPageBreadcrumb
listingList
CollectionPageBreadcrumb
[] = one per person defined? = included when data provided

Pricing

One price.
Own it forever.

grndwerk kitv1.0 · one-time
$169USD

One-time. No subscription. No license keys.

  • All source files — lib/, components/seo/, app routes
  • 16 page archetypes with correct schema mappings
  • Schema.org JSON-LD builders (9 schema types)
  • llms.txt + llms-full.txt auto-generation
  • Next.js Metadata helpers (OG, Twitter, canonical)
  • Site validator with pre-flight checks
  • Debug dashboard — health, constants, schema inspector
  • owned-asset deployment mode for rank-and-rent sites
  • Apex Plumbing demo config — ready to customise
  • HOWTO.md — clear setup guide
  • Private GitHub repo access
  • Free updates forever
Buy Grndwerk — $169 →

Delivery via private GitHub repo · Instant access

Building for clients or running rank-and-rent sites? The owned-asset deployment mode suppresses Person schemas and reduces footprint — built specifically for that workflow. One purchase covers all your projects.

FAQ

Questions.