Build modern web applications on WordPress with routing, admin bar integration, and theme isolation.
Scaffold a new plugin with one command:
composer create-project akirk/create-wp-app my-appWhich gives you this little wizard:
Creating WpApp plugin: my-app
----------------------------------------
Plugin name [My App]:
Namespace [MyApp]:
Author name []:
URL path [my-app]:
Setup type:
[m] Minimal - simple WpApp setup
[f] Full - with BaseApp structure
Choose [f]:
✓ Updated plugin-name.php
✓ Updated templates/index.php
✓ Updated src/App.php
✓ Renamed plugin-name.php to my-app.php
✓ Created .gitignore
✓ Updated composer.json
✓ Regenerated autoloader
✓ Updated README.md
✓ Cleaned up setup scripts
Done! Your plugin is ready.
Next steps:
Option A: Run locally with WordPress Playground
npx @wp-playground/cli@latest server --auto-mount=my-app --login
Option B: Install in WordPress
1. Move this folder to wp-content/plugins/
2. Activate the plugin in WordPress
3. Visit /my-app/ to see your app
Which gives you something like this:
Try the examples instantly in your browser with WordPress Playground:
- Minimal App - The simplest possible WpApp
- Community App - Full-featured example with database, REST API, and admin integration
WordPress isn't just for blogs. It's a powerful foundation for web applications.
For developers:
- Built-in User Management - Authentication, roles, and permissions out of the box
- Admin Interface - Professional backend without building from scratch
- Security & Updates - Automatic security patches and proven practices
- Global Ready - Built-in i18n and multisite support
For users:
- Universal Hosting - Deploy anywhere WordPress runs, from shared hosting to cloud
- Familiar Environment - Manage your app alongside your existing WordPress site
- URL Routing - Pattern-based routing with WordPress rewrite rules
- Theme Isolation - Clean HTML output separate from your WordPress theme
- Admin Bar Integration - WordPress-style navigation for your app
- Admin Color Scheme Tokens - CSS variables from each user's WordPress admin color profile
- Access Control - WordPress capability-based authentication
- BaseApp Pattern - Structured architecture for complex applications
- BaseStorage Pattern - Database abstraction with schema management using
dbDelta
Run your plugin locally without a full WordPress installation:
npx @wp-playground/cli@latest server --auto-mount --loginThis starts a local WordPress instance with your plugin mounted and activated.
| Topic | Description |
|---|---|
| Getting Started | Installation, quick start, template functions |
| Configuration | All configuration options |
| Routing | URL patterns, parameters, templates |
| Masterbar | Admin bar customization |
| Access Control | Capabilities, roles, permissions |
| BaseApp Pattern | Structured architecture for larger apps |
| Tutorial | Step-by-step guide from minimal to full-featured |
Get AI assistance for WpApp development in Claude Code:
/plugin marketplace add akirk/wp-app
/plugin install wpapp@wp-appSee examples/minimal-app/ - The simplest possible WpApp (3 lines of code)
See examples/community-app/ - Full BaseApp pattern demonstration with:
- BaseStorage with schema management
- User progress tracking
- REST API endpoints
- Admin integration
composer require akirk/wp-appThe simplest possible WpApp requires just 3 lines:
<?php
/**
* Plugin Name: Minimal App
*/
require_once __DIR__ . '/vendor/autoload.php';
use WpApp\WpApp;
$app = new WpApp( __DIR__ . '/templates', 'minimal' );
$app->init();Create templates/index.php:
<!DOCTYPE html>
<html <?php echo wp_app_language_attributes(); ?>>
<head>
<title><?php echo wp_app_title( 'My App' ); ?></title>
<?php wp_app_head(); ?>
</head>
<body>
<?php wp_app_body_open(); ?>
<h1>Welcome to My App!</h1>
<?php wp_app_body_close(); ?>
</body>
</html>Your app is now available at /minimal!
- PHP 7.4 or higher
- WordPress 5.0 or higher
Run the test suite and WordPress coding standards checks:
composer test
composer phpcsGPL-2.0-or-later