@depress-org/depress
v0.1.0
Published
De-press yourself. Migrate any WordPress blog to Astro + Keystatic in minutes. Free hosting forever.
Maintainers
Readme
depress 🔓
De-press yourself. Migrate any WordPress blog to Astro + Keystatic in minutes. Free hosting forever.
Why?
Your WordPress bill is depressing. Hosting a simple blog shouldn't cost $20–50/month.
depress converts your WordPress site to a fully static site with a visual CMS — deployed for free on Cloudflare Pages, with content stored in GitHub, and edited through a beautiful Keystatic admin panel.
WordPress (expensive) Your new stack (free)
───────────────────── ─────────────────────
MySQL database → Markdown files in Git
wp-content/uploads/ → Cloudflare CDN
PHP + Apache → Static HTML (Astro build)
WP Admin → Keystatic visual editor
$20-50/month → $0/month. Forever.What gets migrated
- All posts — with frontmatter (title, date, category, tags, excerpt, cover image)
- All pages — including parent/child hierarchy
- Navigation — parsed from your WP menus, converted to working links
- Media — images copied to
/public/media/, links rewritten automatically - Categories & tags — with their own archive pages
- Keystatic config — generated with all your collections pre-wired
- Complete Astro project — ready to
npm startand see your blog in the browser
Quick start
Migrate from WordPress
# Put your export.xml in the current folder, then:
npx @depress-org/depress migrate
# Or specify paths explicitly:
npx @depress-org/depress migrate --input export.xml --wp-dir ./public_html --output ./my-blogThen:
cd my-blog
npm start # installs deps + starts dev server
# → http://localhost:4321 (your blog)
# → http://localhost:4321/keystatic (CMS admin)Start a new blog from scratch
npx @depress-org/depress initMigration workflow
Step 1 — Export your WordPress site:
- Go to
wp-admin → Tools → Export → All content → Download - (Optional) Download your WordPress
public_htmlfolder from hosting
Step 2 — Run depress:
# With only the XML (images downloaded from your live site):
npx @depress-org/depress migrate --input export.xml
# With local WP folder (images served locally, faster + works offline):
npx @depress-org/depress migrate --input export.xml --wp-dir ./public_htmlStep 3 — Start your new blog:
cd output
npm startStep 4 — Deploy for free:
- Push to GitHub
- Connect repo to Cloudflare Pages (build command:
npm run build, output:dist/) - Update
keystatic.config.tsto usekind: 'github'for production CMS
Options
depress migrate [options]
-i, --input <path> WordPress XML export file
-d, --wp-dir <path> WordPress public_html directory (for local media)
-o, --output <path> Output directory (default: ./output)
depress init Create a new blank Astro + Keystatic blog (interactive)Output structure
output/
src/
content/
articles/ ← migrated posts (Markdoc)
pages/ ← migrated pages (Markdoc)
categories/ ← category entries (YAML)
tags/ ← tag entries (YAML)
pages/
index.astro ← home page with latest articles
blog/[slug].astro ← article pages
category/[slug].astro ← category archive pages
[...slug].astro ← WP pages
components/
layouts/
data/
navigation.json ← your WP menu, ready to use
public/
media/ ← all migrated images
keystatic.config.ts ← CMS config, pre-wired
astro.config.mjs
package.json ← npm start just worksPackages
| Package | Description |
|---------|-------------|
| @depress-org/depress | Main CLI |
| @depress-org/core | Shared types |
| @depress-org/wp-migrate | Migration engine |
License
MIT © depress-org
