Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
Open-source template that runs WordPress in serverless functions on Vercel, Netlify, or AWS Lambda, with a SQLite database stored in Vercel Blob or S3.

Open source, self-hostable form backend for headless form handling and lead routing, built with Next.js and PostgreSQL.
ServerlessWP is an open-source deployment template that runs WordPress inside serverless functions on Vercel, Netlify, or AWS Lambda, keeping its SQLite database in Vercel Blob or an S3-compatible bucket instead of a always-on server.
ServerlessWP is a GitHub-hosted hosting setup that executes WordPress on demand in serverless functions rather than on a server running around the clock. It takes a site-owned wp/ directory (WordPress core, plugins, themes, mu-plugins) plus environment variables that select a database backend, and produces a live WordPress site served from Vercel, Netlify, or AWS Lambda with CDN delivery and automatic HTTPS. Database selection follows a fixed order: MySQL when all four connection variables are set, then SQLite in S3 when SQLITE_S3_BUCKET is set, then SQLite in Vercel Blob when BLOB_STORE_ID, SQLITE_BLOB_STORE_ID, or SQLITE_BLOB_READ_WRITE_TOKEN is set, otherwise the setup page appears. Runtime behavior lives in the serverlesswp-node npm package, which api/index.js imports; routing is configured in vercel.json or netlify.toml. The project is maintained by mitchmac and licensed under GPL v3.
SERVERLESSWP_STREAM_PROVIDER to vercel-blob or s3; private uploads are served through the function and cached at the edge, and .php, .log, .sqlite, and .htaccess files are never routed.s-maxage enable edge caching (Vercel Edge Caching or Netlify cache headers), with a default served-file header of public, max-age=3600, s-maxage=86400.DATABASE, USERNAME, PASSWORD, and HOST (plus an optional TABLE_PREFIX) and wp-config.php connects automatically; TiDB is named as one hosted option.npm run wp:update -- --dry-run, --plugins --dry-run, and --themes report available updates without changing files.s-maxage cache headers so WordPress renders rarely and the CDN serves most requests.wp/wp-content/plugins/ or wp/wp-content/themes/ and push to redeploy on the serverless host.SERVERLESSWP_STREAM_PROVIDER = vercel-blob and SERVERLESSWP_STREAM_VERCEL_ACCESS = private, unchanged to enable media uploads), or use Netlify's start link, or run npm install && serverless deploy for AWS Lambda with the Serverless Framework.serverlesswp npm dependency, while wp-config.php stays entirely site-owned.ServerlessWP itself is free and open source under GPL v3; only your hosting provider's plan costs apply. Vercel's free Hobby plan covers personal, non-commercial projects, and features and usage limits vary by plan, while Netlify and AWS Lambda are supported alternatives with their own billing.
Yes. ServerlessWP is open-source software released under GPL v3, so there is no license fee. Costs come from the hosting platform you deploy to, and Vercel's free Hobby plan is restricted to personal, non-commercial projects.
It supports MySQL/MariaDB and a SQLite database stored in Vercel Blob or an S3-compatible bucket such as Cloudflare R2. MySQL takes precedence when all four connection variables are set, followed by SQLite in S3, then SQLite in Vercel Blob.
No. The project states that some plugins are incompatible with SQLite, and competing database writes can fail. For multiple active editors, frequent form submissions, ecommerce, membership sites, or forums, the documentation recommends switching to the MySQL/MariaDB option.
Uploads and supported plugin-generated files persist in S3 or Vercel Blob through the stream wrapper, because local file writes do not survive redeploys. Private uploads are served through the function and cached at the edge; plugins, themes, mu-plugins, and language files stay local.
Yes. Netlify deployment lets you bring your own SQLite plus S3 or MySQL database, and AWS Lambda deployment uses the Serverless Framework. Vercel also supports an S3 demo database that expires after a few days for testing.
