agentleFS
kostja94kostja94/openblog/skills/integrate-product-site/SKILL.md

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.

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
  1. Distinctive:

    This is the recommended default: when the user mentions a product URL, marketing site, existing nav/footer, or “add blog to my site”.

    line 10
  2. Very specific:

    If they have a site URL → proceed below.

    line 18
  3. Very specific:

    Not sure which path?: Start with blog-cms.

    line 101
  4. Very specific:

    Greenfield (no existing site)?: Use setup-blog-module.

    line 102
  5. Very specific:

    Blog post SEO checks?: Use validate-blog-seo (frontmatter, canonical, build — not site-wide audit).

    line 103
  6. Distinctive:

    Do not use this skill for:

    line 107

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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-openblog only 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 integrate or configure chrome.mode

Three layers (do not confuse)

LayerWhereYou replace?
Site Chrometemplates/next/src/chrome/Yes — match main site
Blog Chromepackages/components + configToggle via components.optional
Brand assetspublic/brand/ or CDN in configYes

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

PatternURL exampleDoc
Subdirectory (recommended)yourproduct.com/blog/postintegrations/patterns/subdirectory.md
Monorepo mergeSame deploy as main Next appintegrations/patterns/monorepo.md
Subdomainblog.yourproduct.com/postintegrations/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 in templates/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.json

Extracts 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=/blog

5. Validate

npm run validate:posts
npm run build

SEO 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 publish skill)

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.