WordPress Theme to EmDash
SkillMediaConverts a WordPress theme into a matching theme for the EmDash CMS.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the WordPress Theme to EmDash skill
About this capability
Port WordPress themes to EmDash CMS. Use when asked to convert, migrate, or port a WordPress theme to EmDash, or when creating an EmDash site that should match an existing WordPress site's design. Handles design extraction, template conversion, and EmDash-specific features like menus, taxonomies, an
What this skill tells your AI
The instructions your AI receives, as published by emdash-cms/emdash in skills/wordpress-theme-to-emdash/SKILL.md and read by ahel’s review.
Port WordPress themes to EmDash in six phases. Read the phase file before starting each phase.
Critical Rules
- Copy scaffold first - Start every theme by copying
scaffold/from this skill - Take screenshots of demo - Identify the demo URL and capture all page types using agent-browser before starting work
- No hard-coded content - Use
getSiteSettings()for title/tagline,getMenu()for navigation - Server-rendered pages - Never use
getStaticPaths()for EmDash content - Astro 6 - Use
ClientRouternotViewTransitions, Zod 4 syntax, Node 22+ - Use emdash Image component - For all images, import Image from "emdash/ui"
Phases
| Phase | File | Summary |
|---|---|---|
| 1 | phases/1-discovery.md | Download theme, screenshot demo, capture images |
| 2 | phases/2-design.md | Extract CSS variables, fonts, colors |
| 3 | phases/3-templates.md | Convert PHP templates to Astro |
| 4 | phases/4-dynamic.md | Site settings, menus, taxonomies, widgets |
| 5 | phases/5-seed.md | Create seed file with demo content |
| 6 | phases/6-verify.md | Screenshot, compare, iterate, build |
Checklist
Setup
- Copy
scaffold/to new theme directory. Unless otherwise specified by the user, make this a subdirectory ofthemes/and name it after the WordPress theme (e.g.,themes/twentytwentyfour/). - Rename folder, update
package.json - Verify build:
pnpm build
Phase 1: Discovery
- Theme source downloaded
- Demo site identified
-
discovery/folder created withscreenshots/,images/,notes.md - All page types screenshotted
- Sample images downloaded
Phase 2: Design
- CSS variables in
global.css - Fonts loading
- Colors match demo
Phase 3: Templates
- Homepage, single post, archive, category, tag, page, 404
- Components extracted (PostCard, etc.)
Phase 4: Dynamic
- Site settings (title, tagline, logo from CMS)
- Navigation menus (from CMS, not hard-coded)
- Taxonomies
- Widget areas (if applicable)
Phase 5: Seed
- Seed file created with demo images at
.emdash/seed.json(or wired up viapackage.json#emdash.seed)
Phase 6: Verify
- Dev server applied seed cleanly on first request (no validation errors in logs)
- Output screenshots captured
- Visual comparison done
- Build succeeds:
pnpm build - LICENSE file downloaded (GPL-2.0 in most cases)
- README credits original theme
Reference Documents
references/astro-essentials.md- Astro 6 patternsreferences/template-patterns.md- PHP → Astro conversionreferences/concept-mapping.md- WP → EmDash conceptsreferences/emdash-api.md- Full API referencereferences/design-extraction.md- CSS extraction techniques
Signals
- GitHub stars
- 12k
- Forks
- 1k
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
wordpress-theme-to-emdash- Source
- github.com/emdash-cms/emdash