astro-conversion-kit skill
Agent skills that rebuild a WordPress site as static Astro and check URLs, SEO tags and layout at three screen widths.
- 120 ★ on the repository
- Last commit
Extended access
Why this level
- The agent crawls a public site, runs scripts and creates a repository and staging deploy under your account.
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add skills/astro-conversion-kitDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The agent crawls a public site, runs scripts and creates a repository and staging deploy under your account.
This is third-party code. Review the repository files before installing.
What it does
Eight skills take an agent from a live site address to a pull request. The `convert-site` orchestrator asks one set of questions with defaults, then calls the rest: `capture-site` reads public pages, `parity-gates` checks the build against a frozen copy, `visual-review` compares screenshots at 390, 768 and 1440 px. Plain Node scripts handle every exact step. The site is built in a new repository on an `astro-rebuild` branch. The run ends with a pull request, a noindexed staging deploy on Vercel or Cloudflare Pages and a launch plan in `docs/LAUNCH.md`. WordPress is covered in most detail, but any site served over HTTP works.
Who it is for. Web studios and WordPress owners who want a static copy without changing URLs or losing search rankings.
Good fit when
- A slow WordPress site needs constant security updates, and its URL structure has to stay intact.
- An agency migrates dozens of client sites and wants one repeatable, verifiable process.
- A pre-launch report on broken links, duplicate titles and heavy images is needed.
- An agent should carry a job through to a pull request and run checks after release.
Not a fit when
- The site depends on search, comments, a cart or logins that a static build cannot replace.
- You must run the process on Windows, which is not supported.
- A redesign is the goal: the default build reproduces the live site, faults included.
Example request
Convert https://example.com to Astro with https://github.com/ethanplusai/astro-conversion-kit and accept the defaults.Limitations
Requires Node 22.23.4 or newer on the 22 line, or 24.22.1 or newer, plus git and Playwright Chromium. Creating the repository and pull request automatically needs `gh` signed in to GitHub, and staging needs a Vercel or Cloudflare account. Supported on macOS and Linux. The skills refuse to touch DNS, submit forms on the live site or commit anything but the scaffold to `main`. Figures such as the 83-minute average run time come from the author's README and are not verified by the catalog.
How to disable. Delete the skills from `.agents/skills/` or `.claude/skills/` and remove the plugin with `/plugin uninstall`. The generated repository and deploy are removed separately.
FAQ
How do I install astro-conversion-kit in Claude Code?
Through the plugin marketplace: `/plugin marketplace add ethanplusai/astro-conversion-kit`, then `/plugin install astro-conversion@astro-conversion-kit`. The skills also install with `npx skills add`.
Does it need WordPress admin access?
No. Capture reads what the site serves publicly: sitemaps, the REST API and links between pages. Drafts and private content never reach the copy.
How are forms and third-party scripts handled?
Forms post to an external endpoint you name during intake. Analytics, tag managers and chat widgets are carried over by list, so nothing is dropped silently.
Does the agent launch the site itself?
No. It stops at a pull request and a staging deploy. Merging and launching stay with you, and the skills never touch DNS.
Which systems does it run on?
macOS and Linux. Windows is not supported in this version. Node 22.23.4 or newer on the 22 line, or 24.22.1 or newer, is required; the skills refuse Node 20.
Discussion
No questions or reviews yet.
Related
SkillsThe clone-website skill rebuilds a site from a URL as a clean Next.js app: screenshots, style extraction, parallel section builds and a visual diff
A skill and the pwc CLI: one clone command with a URL makes the agent rebuild a page as a Vite and React project and measure it
A skill methodology for reproducing websites, from a static page to heavy WebGL, built on real source code rather than agent-hallucinated code
The /taste skill turns a URL into design tokens and trade-off principles, with ready rules for Cursor and Claude Code
An MCP server that finds references among Awwwards winning sites and breaks down the motion and structure of any page
A skill for building premium scroll-driven websites on a real design standard: typography, rhythm, depth, motion and in-browser verification
README in short
The author reports averages over 45 conversions: an 83-minute run with design parity passed in every case. The repository includes demos built on sxsw.com, harvard.edu and angrybirds.com.
README badge
Original SKILL.md
--- name: convert-site description: Convert a live website (WordPress first; Drupal, Webflow, Squarespace, Wix and static sites too) into a static Astro site with the same URLs, content, head tags, media, redirects and look, proven by parity gates and a pixel-level visual review, ending in one pull request, a noindexed staging deploy and a launch runbook. Use when asked to convert, rebuild, migrate or clone a site to Astro, when handed a site URL with this kit's link, to resume a conversion from .conversion/state.json, or with --apply <id> to apply one suggestion as a proposal. --- # convert-site The orchestrator. It asks one message of questions, then runs every other skill in order without stopping again, and ends with a pull request the person merges and a runbook they launch from. ## The golden rules 1. **One intake message, then no stops.** Every question carries a default. Anything that later needs an account, a login or a token you do not have goes on the "needs you" list (`state.needsYou` and `docs/LAUNCH.md` section A) and the run carries on. 2. **The live site is read-only.** Only these read it, paced: the capture scripts, `shoot.mjs` and `styles.mjs` on live, `css-coverage.mjs`, `launch-audit --old-url` and `pre-launch --predecessor-url`. Analytics are blocked on their live page loads, so no visit is counted. Never submit a form on it, log in, or fetch a page by hand to fill a gap. 3. **The default build equals live, faults included.** Content is moved from captured markup, never retyped or tidied. Every oddity is a decision row that says "reproduce live by default". A forced difference is an exception; an improvement is a proposal (`PROPOSALS=on` only). 4. **Gates on every commit, never softened.** Never edit `baseline/` to pass (only the `keep` flags in `baseline/scripts.json`). A skip is not a pass; "Not covered" is never a pass. 5. **`main` gets the scaffold commit and nothing else.** On a new, empty repository init-site makes one commit on `main`, the exception to "never commit to main": the PR needs a base. Everything after it is on `astro-rebuild`, one PR. Never force-push, never merge, never touch DNS, the old host or a dashboard setting. 6. **No secrets in chat or in the repository.** Never ask the person to paste a token. Credentials come from the environment or a CLI's own login. ## Names used below `KIT` is the absolute path of this kit (the folder holding `skills/` and `package.json`). `LIVE` is the live origin. `SITE` is the absolute path of the new site repository (default `<current folder>/<slug>`); the capture and the run state are written into it from the start, and `init-site.mjs` scaffolds around them. Run every command from `SITE`. Every script prints `--help`; run that rather than reading the source. Every Node command in a fresh shell starts with `source ~/.nvm/nvm.sh && nvm use 22.23.4` (or runs in a shell that reads `.nvmrc`). ## Step 0a: a kit that can run The scripts import `parse5`, `playwright` and the rest from the kit's `node_modules`. If `$KIT/package.json` or `$KIT/node_modules` is missing (an install that copied only the skill folders has neither), clone the kit and install it, then use the clone as `KIT`: