Skip to content
SecurityPHP2Shell affects most WordPress sites. Am I affected? →
presscomet
NEWVersion 0.1 is out — read the changelog →

Keep WordPress.Lose the no PHP.

The same wp-admin, block editor, themes and URLs your team already knows — running without PHP or MySQL, so pages load faster and there’s no PHP to patch. Move your site over in one click. Your editors won’t notice. Your visitors will.

✓ Runs in your browser✓ Read-only: your site is never touched✓ Free and open source
GitHub(opens in a new tab)19 bundled plugins · 4 themes · self-hostedOpen the full demo →

Live demo · Click anywhere in the window to take over. Nothing is saved.

fieldnotes.example/wp-admin/index.php

Dashboard

Welcome to Presscomet!

Everything is where you left it.

At a Glance

  • 4 Pages
  • 38 Comments

Presscomet 0.1.0 running theme.

Activity

Recently Published

  • Oct 18, 4:02 pm
  • Oct 12, 8:30 am
  • Sep 30, 11:20 am
  • Sep 14, 7:05 am

Quick Draft

Title
What’s on your mind?
Save Draft

Site Health Status

Good. Your site’s health is looking good.

01 — The trade

Everything your team touches stays. Everything that breaks at 2am goes.

Stays exactly the same

KEEP
  • The wp-admin screens you know/wp-admin
  • Block editor, rebuilt in Reactblock markup
  • Your theme, captured as it renderscaptured
  • REST API, same JSON shape/wp-json/wp/v2
  • Users, roles, app passwordscaps
  • Permalinks, slugs, SEO meta301-safe
  • Custom fields & ACF valuespostmeta

Gone for good

DROP
  • Emergency PHP security patches (hello, PHP2Shell)
  • PHP version upgrades & fatal errors
  • MySQL servers, tuning, wp_options bloat
  • Caching plugins stacked on caching plugins
  • wp-cron that only runs when someone visits
  • xmlrpc.php brute-force traffic
  • Backup plugins that time out
  • Error establishing a database connection

02 — One click, three steps

Migrate before your coffee cools.

  1. 1

    Point it at your site

    Paste a URL and an application password, or drop in a WXR export or SQL dump. Hosts that block the REST API work through the companion plugin.

  2. 2

    Presscomet rebuilds it

    Posts, pages, media, menus, users, comments and custom fields land in one SQLite file. Your theme is captured as it renders today, and active plugins are mapped to bundled ones.

  3. 3

    Preview, then flip DNS

    Click through the new site next to the old one. When it matches, switch DNS. URLs keep working, and the old site is only ever read, never changed.

Read the full migration guide
~/nextpress — zsh
$ pnpm --filter @presscomet/importer exec \ tsx src/cli.ts \ --url https://fieldnotes.example \ --user admin \ --app-password "xxxx xxxx xxxx"

Prefer clicking? The same importer runs in the admin: Tools › Import › WordPress.

03 — Your visitors will notice

Same pages. Same theme. Served as static HTML.

WordPress + PHP920ms
Presscomet38ms

Time to first byte · illustrative: an uncached PHP render vs. a page from the static cache

PHP processes
0
was php-fpm pool
Speed plugins
0
was 4
Database servers
0
was MySQL
Database files
1
was a MySQL dump

04 — For whoever maintains it

Your whole site is one file.

Backups are cp

Posts, users, options, revisions — everything lives in nextpress.db. Staging is a copy. Rollback is a copy. Or let the bundled Backups plugin snapshot it on a schedule.

$ ls -lh data/
nextpress.db    184M
uploads/        2.1G

$ cp data/nextpress.db backups/2026-10-23.db
# that was the backup.

Same REST API. Same JSON.

Apps, Zapier flows and mobile clients built on /wp-json/wp/v2 keep working untouched, with application passwords for anything that writes.

// app/page.tsx — any Next.js server component
export default async function Home() {
  const res = await fetch(
    "https://yoursite.com/wp-json/wp/v2/posts?per_page=10"
  );
  return <PostList posts={await res.json()} />
}

05 — “But my plugins…”

Check yours in two seconds.

59 plugins found

  • Yoast SEObundled
    → SEO. Per-post titles, descriptions, focus keyphrases, noindex flags and title templates.
  • Rank Mathbundled
    → SEO. Per-post titles, descriptions, focus keyphrases, noindex flags and title templates.
  • All in One SEObundled
    → SEO. Per-post titles, descriptions, focus keyphrases, noindex flags and title templates.
  • SEOPressbundled
    → SEO. Per-post titles, descriptions, focus keyphrases, noindex flags and title templates.
  • Redirectionbundled
    → Redirection. Redirect rules and hit counts from the Redirection plugin's table.
  • Safe Redirect Managerbundled
    → Redirection. Redirect rules and hit counts from the Redirection plugin's table.
  • Contact Form 7bundled
    → Forms. Contact Form 7 forms and mail templates; [contact-form-7] shortcodes keep rendering.
  • WPForms Litebundled
    → Forms. Contact Form 7 forms and mail templates; [contact-form-7] shortcodes keep rendering.
  • WP Mail SMTPbundled
    → SMTP. Mailer host, port, encryption and from-address.
  • Post SMTPbundled
    → SMTP. Mailer host, port, encryption and from-address.
  • Easy WP SMTPbundled
    → SMTP. Mailer host, port, encryption and from-address.
  • Wordfencebundled
    → Security. Lockout thresholds and durations; existing two-factor secrets.
  • Solid Securitybundled
    → Security. Lockout thresholds and durations; existing two-factor secrets.
  • Limit Login Attempts Reloadedbundled
    → Security. Lockout thresholds and durations; existing two-factor secrets.
  • Two Factorbundled
    → Security. Lockout thresholds and durations; existing two-factor secrets.
  • Akismetbundled
    → Antispam. Spam-flagged comments stay flagged.

06 — Pricing

Run it yourself, or let us run it.

Managed Presscomet hosting from $12 a month, with a 14-day free trial. The open-source version stays free to self-host, forever.

14-day free trial · no card required

Showing monthly prices

  • Starter

    One site, fully managed.
    $12/ month

    billed monthly

    • 1 site
    • 10 GB storage
    • Backups kept 14 days
    • 1 custom domain
    • ✓ 1 site with its own container
    • ✓ Daily backups kept 14 days
    • ✓ Free HTTPS on your domain
    • ✓ Self-serve WordPress migration
    Start free trial on Starter
  • RECOMMENDED

    Pro

    For businesses and busy publications.
    $29/ month

    billed monthly

    • 3 sites
    • 30 GB storage
    • Backups kept 30 days
    • 10 custom domains
    • ✓ 3 sites
    • ✓ Staging copy with push-to-live
    • ✓ Daily backups kept 30 days
    • ✓ Priority email support
    Start free trial on Pro
  • Agency

    Client sites under one roof.
    $79/ month

    billed monthly

    • 15 sites
    • 100 GB storage
    • Backups kept 60 days
    • Unlimited custom domains
    • ✓ 15 sites
    • ✓ Unlimited custom domains and team seats
    • ✓ Backups kept 60 days
    • ✓ Assisted migrations by our team
    Start free trial on Agency
Compare plans

Prices in USD. After the trial you’re invoiced monthly or yearly; card payments are coming. Bandwidth is fair use and not metered yet.

Or host it yourself, free

  • Self-host$0free forever, GPL

    The full admin, migration wizard, 19 bundled plugins and 4 themes on any Node.js host. Community support on GitHub.

    Read the docs
  • Static export$0plus your static host

    Every public URL as plain files for Netlify, Vercel, GitHub Pages or S3. Forms and comments need a hosted endpoint.

    How static export works

Questions, answered.

Do my WordPress plugins work?

PHP plugins don’t run. Instead, 19 bundled plugins replace the most-installed ones — SEO, forms, SMTP, security, redirects, custom fields, cookie consent, backups and more — and the importer maps your active plugins to them and carries their settings across. Caching is built in. The plugin checker above shows what replaces what.

Will I lose my Google rankings?

Your URLs don’t change. Permalinks, category and tag bases, feeds and sitemaps keep their paths, SEO titles and descriptions from Yoast, Rank Math, All in One SEO or SEOPress are imported, and anything that can’t keep its URL gets a 301.

Does it still run PHP somewhere?

No. The admin, the block editor (Presscomet’s own React reimplementation), the theme engine and the REST API are written in TypeScript and run on Node.js. There is no PHP runtime, no MySQL server and no hidden WordPress install behind it.

Is my site affected by PHP2Shell?

If it runs on classic WordPress, it runs on PHP, so it was on an affected runtime until your host updated PHP to 8.5.12, 8.4.27, 8.3.36, 8.2.35 or a vendor-patched build. Our PHP2Shell guide has a checker and patch steps for every host. Sites on Presscomet have no PHP runtime, so PHP2Shell doesn’t apply — though, like any software, Presscomet still needs its own updates.

Can SQLite handle a busy site?

Public pages are served from the incremental static cache, so the database mostly sees writes and cache misses, and it runs in WAL mode so reads never wait on writes. If you’d rather have no server at all, static export turns every public URL into plain files for a CDN.

What if I want to go back?

Export a standard WXR file from Tools › Export at any time and import it into regular WordPress. Migration only reads your old site, so until you switch DNS nothing about it changes.

Does it do e-commerce?

No. WooCommerce stores are out of scope. Presscomet is for content sites: blogs, publications, marketing sites, documentation and portfolios.

Keep WordPress.
Lose the PHP.

Check your site from the browser, then move it with the wizard. Free, open source, and your live site is never touched.

Free · Open source · Export to WXR whenever you like