Setup Blog Module
Greenfield workflow for a new OpenBlog instance. Use when the user does not have an existing product site to integrate, or explicitly wants a local demo before INTEGRATION.
Agent: confirm with the user
If unclear, ask:
Do you want to mount
/blogon an existing product site (→ INTEGRATION.md), or run a local demo first (→create-openblog)?
Only use this skill after they choose greenfield / try-first.
When to use
- User wants a new blog from zero (standalone, subdirectory, or subdomain)
- User needs
openblog.config.ts, env, theme, orfeaturesconfigured - User asks to verify the project builds before first deploy
Steps
1. Scaffold
npx create-openblog my-blog
# or from monorepo root:
npm run create-openblog -- my-blog
Options: --dir <name>, --preset vercel-geist, --no-install. See packages/create-openblog/README.md.
2. Configure openblog.config.ts
At repo root, set:
site— name, description, locale,urlcontent— adapter and content dir (defaulttemplates/next/content/blog)theme— preset id or custom; runtheme:syncafter changesfeatures— toggle categories, tags, authors, RSS (seedocs/features.mdin monorepo, orFEATURES.mdin scaffolded projects)components.optional— Blog Chrome toggles (TOC, share bar, etc.)
3. Deploy environment
Copy templates/next/.env.example → .env.local:
SITE_URL=https://yourdomain.com
DEPLOY_MODE=subdirectory # subdirectory | subdomain | standalone
BLOG_BASE_PATH=/blog # subdirectory only
# ASSET_PREFIX=/blog # if static assets 404 behind reverse proxy
See templates/next/docs/DEPLOY-ROUTING.md for mode details.
4. Theme sync
npm run theme:sync # writes templates/next/src/app/theme.generated.css
dev and build run theme:sync automatically. See docs/theming.md. Optional: npm run theme:infer -- --url https://… for draft palette hints.
5. Features
Edit features in openblog.config.ts to disable taxonomy/feeds the site does not need. Validation rules follow enabled flags — see docs/features.md (or FEATURES.md in scaffolded projects).
6. Validate and build
From repo root:
npm install
npm run validate:posts
npm run build
npm run dev # → http://localhost:3000/blog
Fix any frontmatter or config errors before handing off to content skills.
Related skills
- Not sure which path? Start with
blog-cms. - Existing product site? Use
integrate-product-siteinstead. - Writing posts? Use
create-post(user provides body/brief). - Pre-publish checks? Use
validate-blog-seo.
Out of scope
Do not use this skill for:
- Keyword research, content calendars, or GEO strategy → use marketing-skills
- Marketing landing pages, product homepage, or docs site
- Site-wide SEO audit (llms.txt, homepage meta, GSC) → host site responsibility
- Autonomous AI content generation at scale → user provides content; OpenBlog validates structure