Deploy New Product Version with Freemius
There are two main reasons why Freemius manages its own repository and deployment process:
- To securely serve paid plugin or theme downloads and updates to customers who own a valid license.
- To simplify code management by enabling developers to maintain one codebase that contains both free and premium functionality. When you deploy a WordPress product in the Freemius Developer Dashboard, Freemius can automatically generate a free, WordPress.org-compatible version from that codebase. To learn how the generated free and premium packages are created, see the WordPress deployment process.
ZIP File Creation
Before you can deploy a new version of your product, you need to create a ZIP file of your plugin or theme. The ZIP file should contain the root folder of your plugin or theme, which includes all the necessary files and subfolders.
We recommend the following methods for creating ZIP files for deployment.
Windows & macOS
Create the ZIP file using your system's native ZIP tool to ensure compatibility with our deployment system.
- Windows: Select the files or folders you want to compress, right-click, and choose Compress to... → ZIP File.
- macOS: Select the files or folders, right-click, and choose Compress.
On Windows, avoid using PowerShell or other PowerShell-based ZIP tools, as they may produce incompatible files.
Linux
Use the zip command in the terminal to create your ZIP archive and ensure compatibility with our deployment system.
# Create a ZIP archive
zip -r archive_name.zip folder_to_compress/
Deploying to Freemius
Manual Deployment
- Zip your plugin or theme root folder on your local machine. If you are using Windows or Windows-based archiving tools (e.g., PowerShell), please review these important notes when creating the ZIP file.
- Log in to your Freemius Dashboard.
- Navigate to the Deployment page.
- Click the + Add New Version button to browse and upload the product ZIP.
Deployment Automation
- deploy-on-freemius: a GitHub Action for deploying and releasing a new product version via Freemius. Created & maintained by Jasper Vriends / Buttonizer
- freemius-suite: a Python-based Bash library for packaging, deploying, and releasing a new product version via Freemius. Created & maintained by Daniele Scasciafratte
- gulp-freemius-deploy: a Gulp NPM library for packaging and deploying a new product version via Freemius. Created & maintained by James Kemp
- Freemius API: a PHP example of how to deploy programmatically using the Freemius REST API.
Release the Deployed Version
When you're ready to make the new version available to your customers for downloads and updates, change the release status from Unreleased to Released.
You can also deploy the new version as a Beta Release. This release will only be available to users who signed up for the beta program.
The paid version will not be available for download or update for your customers until you change the release status to Released. If you have a beta program, you can also flag the release as Beta release to make it only available for customers who are part of the beta program.
Once a deployment is done, you can test the generated zips to ensure everything is working correctly. You can use the Testing documentation to generate a license key for testing purposes and activate the premium features of your product.
Free and Premium Version Generation
When you deploy a new version of your WordPress product, Freemius automatically generates both the free and premium versions of your plugin or theme.
The free version is generated by removing premium-only code from the codebase, while the premium version retains all features. More information can be found in the WordPress Deployment Process.