Stillpress
An open-source, full-featured Wordpress Static Site plugin
Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/brian-maloney/stillpress/archive/refs/heads/main.zipPublish your WordPress site as fast, secure static files. Every feature is free.
Description
Stillpress turns your WordPress site into plain HTML, CSS and images that any web host can serve, without PHP or a database. You keep writing in WordPress; visitors get a static copy that is fast, cheap to host and hard to break.
- Works with your theme and plugins. Pages are rendered by your own site, exactly as a visitor sees them, so block themes, classic themes and page builders all work.
- Only what changed is rebuilt. While a page renders, Stillpress records which posts, terms, authors and settings it used. Edit a post, and only the pages that show it are rebuilt and redeployed.
- One choice to get started. Activate, pick where the static site goes (a folder on your server or a ZIP file), and publish.
- Feels like WordPress. A "Publish to static" button in the editor, a status in the admin bar, a Site Health check, and a WP-CLI command for everything.
- No upsells. There is no premium version, no license key and no tracking. The plugin never contacts any outside service.
Links, images, srcset, stylesheets, scripts, structured data, feeds and sitemaps are all rewritten to your public address. A 404 page and a _redirects file are generated for you.
For developers
Every stage has actions and filters (see docs/HOOKS.md), and deploy targets are pluggable through a small interface. All features are available from WP-CLI: wp stillpress build, status, why, deploy, zip, settings, doctor and more.
Installation
- Install and activate the plugin.
- Go to Static Site in the admin menu.
- Choose where the static site should go and click Publish my site.
Your site needs pretty permalinks (anything but "Plain" under Settings → Permalinks).
If your server can't reach its own address (common behind proxies and in containers), set define( 'STILLPRESS_CONNECT_TO', '127.0.0.1:80' ); in wp-config.php to an address that reaches the web server.
Frequently Asked Questions
Do I need to pay for anything?
No. Every feature is free and stays free.
Does the plugin send data anywhere?
No. It only makes requests to your own site, to render pages. Remote deploy targets, when added, contact only the host you configure.
What about forms, comments and search?
They need a server, so on the static copy they don't work yet. Static search and a form receiver are planned.
Which pages are left out?
Drafts, private posts and password-protected posts are never published. You can leave out more addresses in Settings.
Changelog
0.1.0
- First release: loopback renderer, URL rewriting, folder and ZIP deploys, dependency-tracked incremental builds, editor and admin bar integration, Site Health, WP-CLI.
Privacy
The plugin doesn't collect, store or transmit personal data. It contacts no outside service on its own: the only remote requests go to deploy targets you configure (Amazon S3 or another S3-compatible service, CloudFront, an SFTP server, a Git repository, Netlify, or Cloudflare), and they carry your built site and the credentials you entered for that target.
Third-party libraries
- Action Scheduler by Automattic (GPL-3.0-or-later), used to run builds in the background.
- phpseclib (MIT), with paragonie/constant_time_encoding and paragonie/random_compat (MIT), used for SFTP deploys.