integrate-product-site
Skill7 starsChanged 20 days agoMITView on GitHub
Mount OpenBlog on an existing product website — chrome, deploy patterns, brand import. PRIMARY path. Use when the user already has a main site and wants /blog or blog subdomain. Ask the user to confirm before suggesting create-openblog.
In this repository7 other files it gives its agents.
- AGENTS.mdAGENTS.md
- audit-seoSkill
- blog-cmsSkill
- create-postSkill
- publishSkill
- setup-blog-moduleSkill
- validate-blog-seoSkill
The file
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 2 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 10
This is the recommended default: when the user mentions a product URL, marketing site, existing nav/footer, or “add blog to my site”.
- Very specific: line 18
If they have a site URL → proceed below.
- Very specific: line 101
Not sure which path?: Start with blog-cms.
- Very specific: line 102
Greenfield (no existing site)?: Use setup-blog-module.
- Very specific: line 103
Blog post SEO checks?: Use validate-blog-seo (frontmatter, canonical, build — not site-wide audit).
- Distinctive: line 107
Do not use this skill for:
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Integrate Product Site
OpenBlog is a blog module, not a full site builder. This skill wires the blog into an existing product domain so header/footer/logo match the main site.
This is the recommended default when the user mentions a product URL, marketing site, existing nav/footer, or “add blog to my site”.
Agent: confirm with the user
Before scaffolding, ask:
Do you already have a product site? If yes, start from INTEGRATION.md (subdirectory / subdomain / monorepo). Use
create-openblogonly for a greenfield demo.
If they have a site URL → proceed below. If greenfield only → hand off to setup-blog-module.
Start by reading INTEGRATION.md — it is the single entry point.
When to use
- User has a product site and wants
/blog, a subdomain, or monorepo merge - User needs navbar/footer/logo aligned with the main site
- User asks to run
npm run integrateor configurechrome.mode
Three layers (do not confuse)
| Layer | Where | You replace? |
| Site Chrome | templates/next/src/chrome/ | Yes — match main site |
| Blog Chrome | packages/components + config | Toggle via components.optional |
| Brand assets | public/brand/ or CDN in config | Yes |
Reuse components from the product site first. If a required navbar, footer, breadcrumb, article layout, or other named component does not exist, use Bricks component-builder for construction guidance, then implement it in the target repository. Do not copy Bricks guidance into OpenBlog.
Choose integration pattern
| Pattern | URL example | Doc |
| Subdirectory (recommended) | yourproduct.com/blog/post | integrations/patterns/subdirectory.md |
| Monorepo merge | Same deploy as main Next app | integrations/patterns/monorepo.md |
| Subdomain | blog.yourproduct.com/post | integrations/patterns/subdomain.md |
Reverse proxy / broken CSS → integrations/patterns/reverse-proxy.md
Checklist
1. openblog.config.ts → chrome
chrome: {
mode: "custom", // openblog-default | custom | inherit-monorepo
siteUrl: "https://yourproduct.com",
homeUrl: "https://yourproduct.com",
logo: "/brand/logo.svg",
logoAlt: "Your Product",
nav: [ /* header links */ ],
footer: { /* optional columns */ },
}inherit-monorepo— reuse Header/Footer from main app; wire overrides intemplates/next/src/chrome/overrides/- See
integrations/chrome/brand.manifest.example.json
2. Edit site-chrome.ts
templates/next/src/chrome/site-chrome.ts — defaults when chrome.nav / chrome.footer are not set in config. Align link labels and URLs with the product site manually.
3. Brand import (partial automation)
npm run integrate -- --site https://yourproduct.com
# → integrations/chrome/.generated/brand.manifest.jsonExtracts title, theme-color, og:image, favicon — draft only. Copy hints into config or compare with the example manifest. Nav labels from HTML parse are fragile — review manually.
4. Environment
SITE_URL=https://yourproduct.com
DEPLOY_MODE=subdirectory
BLOG_BASE_PATH=/blog5. Validate
npm run validate:posts
npm run buildSEO scope
OpenBlog covers blog module SEO — sitemap, RSS, robots for blog paths, JSON-LD per post. Site-level items (marketing pages, product homepage meta, llms.txt) belong to the host site, not this skill.
Related skills
- Not sure which path? Start with
blog-cms. - Greenfield (no existing site)? Use
setup-blog-module. - Blog post SEO checks? Use
validate-blog-seo(frontmatter, canonical, build — not site-wide audit).
Out of scope
Do not use this skill for:
- Scraping or reverse-engineering full product navbar/footer as React components → copy from main repo or use
inherit-monorepo - Product homepage SEO, docs SEO, or marketing page optimization
- Google Search Console setup or indexing submission → host site handoff (see
publishskill)
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

