Requirements
To contribute to this plugin, you need the following tools installed on your computer:Core Dependencies
PHP
Version 7.2 or higher, preferably installed via Homebrew
Composer
Version 2.3 or higher, to install PHP dependencies
Node.js
Current LTS version (Node 22+), to install JavaScript dependencies
WordPress
To run the actual plugin
Development Tools
- Docker Desktop and Docker Compose - for using the local environment
- nvm - recommended for managing Node.js versions
You should be running a Node version matching the current active LTS release or newer for this plugin to work correctly. You can check your Node.js version by typing
node -v in the Terminal.Node.js Version Management
If you have an incompatible version of Node in your development environment, you can use nvm to change node versions:Using
nvm is recommended, as it makes it easier to stay up-to-date with any Node.js version requirement changes in the project.Initial Setup
Install Composer
Install Composer by following the installation instructions.Make sure to add
composer to your $PATH if it is not already there. The local environment won’t run unless composer is in your $PATH.WSL users may also need to install make:Development Workflow
PHP Development
Whether you use the pre-existing local environment or a custom one, any PHP code changes will be directly visible during development. No build process is required for PHP. PHP source files are located in:includes/- Core PHP classes and functionality- Plugin root files like
web-stories.php
JavaScript Development
JavaScript requires a build process. Choose one of the following workflows:Development Mode Options
Development Build with Watch:The
npm run serve command is recommended for the best development experience with automatic browser refresh.JavaScript Package Structure
The project uses a monorepo structure with packages inpackages/:
story-editor/- Main story editor UIdashboard/- Stories dashboarddesign-system/- Shared UI componentsanimation/- Animation utilitieselements/- Story element componentsmedia/- Media handlinge2e-tests/- End-to-end testse2e-test-utils/- E2E testing utilities
Next Steps
Local Environment
Set up your local WordPress environment
Project Architecture
Understand the project structure
Running Tests
Learn how to run and write tests
Contributing
Start contributing to the project