create-lacspace-seo
v1.0.0
Published
Scaffold a complete, production-ready SEO setup into a Next.js App Router app in seconds — defineSite() config plus ready-made robots.txt, sitemap.xml, feed.xml, llms.txt and a dynamic OG-image route. Zero config, zero copywriting.
Maintainers
Readme
create-lacspace-seo
Scaffold a complete, production-ready SEO setup into a Next.js app in one command.
One command drops in a
defineSite()config plus ready-maderobots.txt,sitemap.xml,feed.xml,llms.txtand a dynamic OG-image route — all wired to a single source of truth. No copywriting, no boilerplate, no fragile hand-written structured data.
Use it
npm create lacspace-seo@latest
# or
npx create-lacspace-seoRun it inside a Next.js App Router project. It auto-detects app/ or src/app/, asks a few questions (or take flags), and writes:
lib/site.ts ← one defineSite() config, used everywhere
app/robots.txt/route.ts ← robots.txt (auto sitemap ref, optional AI blocking)
app/sitemap.xml/route.ts ← sitemap.xml from bare paths
app/feed.xml/route.ts ← RSS feed, prefilled from the site config
app/llms.txt/route.ts ← llms.txt map for LLMs (llmstxt.org)
app/og/route.tsx ← dynamic Open Graph images (/og?title=…)Then install the packages it uses and you're done:
npm i @lacspace/seo @lacspace/robots @lacspace/sitemap @lacspace/rss @lacspace/llms-txtNon-interactive (CI / scripts)
npx create-lacspace-seo --yes \
--name "Acme" \
--url "https://acme.com" \
--description "We build things" \
--twitter acmehq \
--logo /logo.png| Flag | Meaning |
| --- | --- |
| --name <name> | Site / brand name |
| --url <url> | Absolute site URL |
| --description <text> | Default meta description |
| --twitter <handle> | Twitter/X handle |
| --logo <path> | Logo path (e.g. /logo.png) |
| --no-og | Skip the dynamic OG-image route |
| -y, --yes | No prompts (needs --name & --url) |
| --force | Overwrite existing files |
Existing files are never overwritten unless you pass --force — safe to re-run.
What you get
Every page becomes a one-liner, powered by the file it generated:
import { site } from "@/lib/site";
export const metadata = site.meta({ title: "Pricing", path: "/pricing" });
// → title template, canonical, Open Graph, Twitter card, dynamic OG image — all filled inThe Lacspace SEO Kit
| Package | For |
| --- | --- |
| @lacspace/seo | Metadata, JSON-LD & the defineSite() engine |
| @lacspace/sitemap | sitemap.xml |
| @lacspace/robots | robots.txt |
| @lacspace/llms-txt | llms.txt / llms-full.txt |
| @lacspace/rss | RSS / Atom / JSON feeds |
| create-lacspace-seo | Scaffolder (this package) |
Licensing
This package is free under the Lacspace Free Licence — MIT-equivalent freedoms. Use it in personal and commercial projects at no cost; just keep the notice.
Not every Lacspace package is free. We also offer Commercial (paid), Client-specific, and Private (proprietary) packages under separate terms. See the full Lacspace Licence Centre.
Part of the Lacspace ecosystem — zero-dependency, isomorphic TypeScript packages.
