Skip to content
AI-Assertive • MDX • Next.js

Own your narrative in the age of AI.

MikePress is the first AI-Assertive CMS. It’s not just a blog; it’s a system to broadcast your authority and control how your content is used by AI.

Content manifestsDigital notary JSON-LDPrivacy-first searchStatic-first delivery

Every MikePress interaction in one place

This kitchen sink collects the production components, JSON-LD helpers, automation scripts, and AI affordances that ship with the starter. Treat it as a living playbook when you’re onboarding teammates or extending the stack.

Search preview

Search loads the Lunr index lazily, keeps queries local, and caps results at eight entries.

AI control toolkit

Every post exposes a Content Manifest and share-ready citation so AI agents understand the rules of engagement. These interactors call the live API first and fall back to the static manifests generated during `pnpm postbuild`.

Manifest excerpt

{
  "slug": "why-mikepress",
  "title": "Why Mikepress, Why Now: The Future of Content Authority",
  "ai_instructions": {
    "attribution_preference": "REQUIRED_WITH_LINK",
    "attribution_text": "Please credit "Why Mikepress, Why Now" from MikePress with a link to https://mikepress.mikewill.co/blog/why-mikepress.",
    "usage_policy": "Content may be summarised with attribution; commercial LLM training requires prior consent."
  }
}

Theme & intake demo

Persisted theming keeps visitors in light, dark, or system mode. The contact module obfuscates email addresses, resisting scrapers while remaining copy-friendly for humans.

Toggle theme

Share your project brief and we'll respond within one business day.

hello [at] mikepress.mikewill.co

Operational dashboard

Build-time scripts aggregate Lighthouse scores, machine-readable content coverage, search index stats, and build durations into `public/metrics.json`. The dashboard below consumes the same payload that `/metrics` renders in production.

Loading build metrics…

AI-Assertive by Design

Dictate terms to machines. Our Content Manifest API instructs AI on attribution, summarization focus, and usage policy for every article you publish.

The Digital Notary

Rich JSON-LD schemas stamp your content with unambiguous authority—breadcrumbs, organisations, and authorship baked in by default.

Privacy-first local search

A Lunr-powered index builds at compile time so queries stay client-side and telemetry-free. Instant answers, zero data leakage.

Instant by default

Static-first Next.js output, optimized assets, and pre-built OG images deliver performance without runtime drift.

Automation & build artefacts

MikePress leans on deterministic scripts so static exports remain AI-friendly. The following commands run during `pnpm postbuild` and can be executed individually while iterating:

Search index

Generates `public/search-index.json` for the Lunr-powered client search.

pnpm run build:search

OG image set

Produces static Open Graph images under `public/og` for every document.

pnpm run build:og

AI manifests

Emits `/public/manifest/<slug>.json` so static hosting matches the runtime API payloads.

pnpm run build:manifests

Feeds & context

Refreshes RSS/JSON feeds plus `/public/context.txt` for AI crawlers.

pnpm run build:feeds && pnpm run build:context

Tip: run `pnpm run validate:env` before production builds to ensure `NEXT_PUBLIC_SITE_URL` is set. The guard now reads `.env.local`, `.env.production`, and `.env` automatically.

How to demo MikePress

Content workflow: Runpnpm new "AI governance checklist"to scaffold a new MDX file with frontmatter, author attribution, and manifest defaults.

Feeds & discovery: Share/feed.xmlfor RSS, /manifest/why-mikepress.json for AI ingestion, and /context.txt for platform policy alignment.

Structured data: TheJsonLdhelper composes BreadcrumbList, Article, and WebPage schema per route so search engines and AI crawlers inherit canonical metadata.

Deployment: Static hosting is first-class. `next export` ships the UI, while the generated artefacts in `public/` ensure manifests, feeds, and metrics keep working without server-side rendering.