Skip to content
Conduit

skill

landforge

Static landing-page generation system built on Claude Code skills — SEO, A/B testing, analytics, deploy and change-audit built in.

monthu56/landforgecommunitylistedunreviewed

Set up

Skills are installed by placing their folder where your agent loads skills.

The download comes from github.com/monthu56/landforge itself, not from our server, so what you get is exactly what its author published.

Install instructions come from the README

Skills do not use an MCP config. Follow the steps in the README below.

README

synced Oct 17, 2026

Landforge

Generate, A/B-test, deploy, and audit static landing pages — as Claude Code skills.

License: MIT Stars PRs welcome Built for Claude Code

📖 English · Русский

Landforge is a small system of Claude Code skills that take a landing page from a brief to a deployed, measurable page — with SEO, analytics, A/B testing, and a change-audit trail built in. Landings stay static HTML (content in the markup, zero JS on the critical path), so they're fast and fully indexable. No bundler, no backend, no heavy tooling.

Why Landforge

  • Static-first, indexable by design. Content lives in the HTML — crawlers and social previews see real content, not an empty <div id="root">.
  • Brief → page. Describe the offer; the generator produces a contract-compliant landing (SEO tags, JSON-LD, analytics, A/B scaffold) and self-checks it.
  • A/B on a single URL. Inline split, no cloaking, variant piped into analytics — safe for SEO.
  • Audit trail. Every change is recorded (append-only journal + git) — "memory of changes".
  • Portable. Drop the whole system into any existing project with one skill.
  • Works with any agent. The toolbox is also exposed as an MCP server — call it from Cursor, Claude Desktop or your own agent, not only Claude Code.
  • No build step. What you edit is what ships.

Skills

SkillWhat it does
/new-landinga landing from a brief — contract + skeleton + check_landing.py validator
/landing-experimentan A/B test on one URL (inline split), variant tracking, experiment card
/landing-journalaudit journal of every change (experiments/journal.jsonl + git)
/landing-adsad materials (UTM, copy, keywords, editor exports) — artifacts, no spend
/init-landing-systemdeploy this whole system into another existing project

The generator's input is a brief — a single format plus an interviewer prompt you can paste into any LLM (see .claude/skills/new-landing/reference/).

Use from any agent (MCP)

Beyond Claude Code, the deterministic toolbox (validators, audit journal, UTM) is exposed as an MCP server, so Cursor, Claude Desktop or your own agent can call it too. Tools wrap the same scripts — one source of logic — and the contract, brief schema and skeleton are served as resources. Generative workflows (brief interview, landing generation, A/B checklist) are exposed as prompts; the generation itself stays with the host's model.

pip install -e mcp     # then point your MCP client at the `landforge-mcp` stdio server

See mcp/README.md and ADR-0002. The static-HTML invariant is untouched — the server is an optional dev tool, never part of a landing's runtime.

Quick start

A. Use the system in this repo

# in Claude Code:
/new-landing          # generate a landing from a brief

B. Install the system into your own existing project

bash .claude/skills/init-landing-system/scripts/sync_templates.sh
bash .claude/skills/init-landing-system/scripts/install_user.sh
# then, in your project (Claude Code):
/init-landing-system  # asks for brand/domains/slug, deploys the system (merge-aware)

How it works

brief ──▶ /new-landing ──▶ static HTML (SEO + analytics + A/B scaffold)
              │                     │  self-check: check_landing.py
              ▼                     ▼
        git branch ─────▶ preview URL ─────▶ review ─────▶ prod
                                                  every step → audit journal

Requirements

  • Claude Code (the skills run inside it).
  • (optional) Any MCP host (Claude Desktop, Cursor, custom agents) — to drive the toolbox via the bundled MCP server (mcp/, needs Python ≥ 3.10) instead of / alongside Claude Code.
  • For deployment: a server with Docker + Traefik and two nginx containers (prod/staging), deployed via GitHub Actions over SSH. CI and nginx configs are included as templates.

Deployment

.github/workflows/deploy.yml routes by branch:

BranchTargetIndex
mainproductionindexable
devstagingnoindex
any otherpreview at …/{branch}noindex

Infra values (domains, containers, dirs) are {{placeholders}} resolved by init-landing-system or by hand (.claude/skills/init-landing-system/reference/placeholders.md). Only production is indexed — staging and previews are closed with X-Robots-Tag: noindex at the nginx layer.

Project structure

.claude/skills/   the skills (new-landing, landing-experiment, landing-journal, landing-ads, init-landing-system)
mcp/              optional MCP server — exposes the toolbox to any MCP host (ADR-0002)
.github/workflows/ CI: deploy.yml (branch-routed), cleanup-preview.yml
deploy/           nginx.{prod,staging}.conf (IaC templates)
docs/adr/         architecture decision records
experiments/      A/B experiments + audit journal
CLAUDE.md         notes for Claude Code

Contributing

PRs welcome — see CONTRIBUTING.md and the Code of Conduct. The one rule that must never break: a landing stays static HTML with content in the markup and zero JS on the critical path (see ADR-0001).

License

MIT © Александр Перебоев

↑↓ navigate openesc close