Introduction

Create (multiple) WordPress plugins that use React, TypeScript, and object-oriented PHP in a fully customizable Docker development environment, commited in a monorepo.
Wow, I didn't know the WordPress plugin development could look like this!
🚀 Instant no-config plugin creation with create-wp-react-app 🔥
🤗 Why WordPress plugin development is fun with WP React Starter
Everyone tells us: WordPress plugins are a mess. Our answer is always: Let’s take this opportunity to make the system that powers every third website on the Internet better.
With WP React Starter we have created a modern WordPress development boilerplate which contains everything you are used to from modern web development projects:
React Frontend for reactive user interfaces (with PHP fallback for server-side rendering) - React is a part of WordPress since the Gutenberg release
TypeScript for typesafe frontend development
PHP in an object-oriented style with namespaces for better backend code
Docker development environment to develop all you plugins without manual setup steps
CI/CD integration for automated code quality checks and release management (publish on wordpress.org or wherever you want)
Does that sound like crappy WordPress plugin development or what you really have been looking for for your plugins for a long time? Let's start today with your first WordPress plugin! Create it within 5 minutes, thanks to our CLI create-wp-react-app
Client-Side Features
Familiar React API & patterns (ES6) with TypeScript
React with Babel
envpreset + HooksMobX for state management
webpack build for assets
core-js puts automatically needed polyfills to your distribution files
Sourcemap generation for debugging purposes (CSS and TypeScript files)
SASS stylesheets compiler (
.scssfiles) for next-gen CSSPostCSS for transforming SCSS (including autoprefixing) to CSS
Minified sources automatically generated for production (JS, CSS)
Grunt for automation tasks (build the installable plugin)
ESLint predefined configuration for proper linting
TypeDoc for JavaScript Documentation
WP HookDoc for Filters & Actions Documentation
Translation (i18n) with automatic generation of
.potfilesAdd-On Development (multiple WordPress plugins), based on a predefined
utilspackage that allows you to share TypeScript types across plugins.Admin backend components, in this case an own page with a button (
admin.ts)Frontend components, in this case a simple widget (
widget.ts)
Server-Side Features
OOP-style for building a high-quality PHP development
PHP >= 5.6 required: An admin notice is showed when not available
WordPress >= 5.2 required: An admin notice is showed when not available with a link to the updater
PHP CodeSniffer predefined configuration for proper linting
Namespace support
Autloading classes in connection with namespaces
WP REST API v2 for API programming, no longer use
admin-ajax.phpfor CRUD operationsSCRIPT_DEBUGenables not-minified sources for debug sources (use in connection withyarn build:js:development)Cachebuster for public resources
Automatic generation of
.potfiles for translating (i18n) the backend pluginphpDocumentor for PHP Documentation
apiDoc for API Documentation
Automation Features
Avoid repetitive work and develop more feature
Workspace creation with end-to-end setup:
create-wp-react-app create-workspacePlugin creation with monorepo integration:
create-wp-react-app create-pluginPackage creation with monorepo integration:
create-wp-react-app create-packageScoping your PHP coding and dependencies so they are isolated (avoid dependency version conflicts)
Packaging and publishing of you plugin wordpress.org (read more)
license-checker for automated 3th-party-code license scanning and compliance check
Developer Experience Features
Providing the right development environment for high quality plugins
Built on top of Visual Studio Code (extensions are automatically installed)
All your plugins within yarn workspaces
Prettier for automatic JavaScript / TypeScript code formatting on save (VSCode required)
PHP CodeSniffer's cbf for automatic PHP code formatting on save (VSCode required)
Husky integration for code formatting before Git commit - never have ugly code in your repository
Husky is also used for commitlint to become a common commit message style in your repository
lerna for semantic versioning and changelog generation
webpackbar so you can get a real progress bar while development
Docker for a local development environment
Predefined WordPress Stubs so you get autocompletion for WordPress classes and functions, e. g.
add_actionWithin the Docker environment you have WP-CLI available
Predefined Review Apps example for branch deployment, read more here
Predefined VSCode PHP debugging environment
Testing Features
Cover your source code with test code to to guarantee the last piece quality
PHPUnit for PHP unit testing
Jest for TypeScript unit- and snapshot testing
Collect code coverage reports with a single command in each package
Automatically push coverage reports to codecov.io
Cypress for End-To-End (E2E) tests
Gherkin syntax to write E2E features (combined with Cypress)
Automatically failure a GitLab CI pipeline if a coverage percent is not reached (threshold)
🚀 The complete test suite is integrated in GitLab CI
Documentation
You want to dive deep into the documentation of WP React Starter? Check, we convinced another developer to write high quality WordPress plugins. 🚀
Usage
PHP development
TypeScript development
Advanced
GitLab integration
Licensing
Thank you for your interest in WP React Starter. This boilerplate was developed organically over years and we at devowl.io bring all our experience from best-selling WordPress plugins like WordPress Real Media Library as well as customer web development orders to this project. With WP React Starter you get dozens of hundred working hours compressed into one easy-to-use solution.
We would like to share our knowledge and solution with you to make the development of WordPress plugins more professional. But we are even happier if you also share your knowledge to make this project even better.
WP React Starter is licensed partly under GPL-3.0-or-later and partly under our WP React Starter Licence Agreement. Therefore you have to get a license to develop high-quality WordPress plugins at light speed with WP React Starter in real projects. But don't worry, it's free to use for all non-commercial WordPress plugins and we've done our best to create a fair license fee model whereby you only pay something if your WordPress plugin already generates a good revenue for you.
Last updated
Was this helpful?