Skip to main content

Overview

The WordPress Developer Showcase is built on modern technologies and requires specific versions of WordPress, PHP, and Node.js to function correctly. This page details all requirements for both development and production environments.
Both the Bifrost Noise theme and Bifrost Music plugin require PHP 8.1 or higher. Using older PHP versions will result in fatal errors.

Core Requirements

WordPress Version

Minimum Version

WordPress 6.9 or higher

Recommended

Latest stable release of WordPress
The showcase leverages features introduced in WordPress 6.9, including:
  • Block Bindings API - Connect custom data sources to block attributes
  • Theme.json v3 - Enhanced theme configuration schema
  • Block Hooks API - Programmatically modify block registration
  • Pattern Overrides - Enhanced pattern customization capabilities
  • Interactivity API - New frontend interactivity framework

PHP Requirements

ComponentMinimum VersionRecommended Version
Bifrost Noise ThemePHP 8.1PHP 8.3
Bifrost Music PluginPHP 8.1PHP 8.3
Both the theme and plugin specify "php": ">=8.1" in their composer.json files. This is enforced by WordPress when activating the theme or plugin.

Required PHP Extensions

The following PHP extensions are required:
  • json - JSON encoding/decoding (required by WordPress core)
  • mbstring - Multibyte string handling
  • mysqli or pdo_mysql - Database connectivity
  • curl - HTTP requests (for WordPress HTTP API)
  • openssl - Secure connections
  • zip - Handling zip archives (for plugin/theme installation)
  • gd or imagick - Image processing
  • intl - Internationalization support
  • opcache - Performance optimization
  • apcu - Object caching (for production)

Node.js Requirements

PurposeMinimum VersionRecommended Version
Asset BuildingNode.js 18.xNode.js 20.x (LTS)
Package Managernpm 9.xnpm 10.x
The build process uses @wordpress/scripts which requires Node.js 18 or higher. Older versions are not supported.

Composer Requirements

ComponentMinimum Version
Composer2.0 or higher

Development Dependencies

Theme Development (Bifrost Noise)

PHP Dependencies (via Composer)

{
  "require": {
    "php": ">=8.1"
  },
  "require-dev": {
    "wp-coding-standards/wpcs": "^3.0",
    "phpcompatibility/phpcompatibility-wp": "*",
    "symfony/var-dumper": "^6.4",
    "dealerdirect/phpcodesniffer-composer-installer": "^1.0"
  }
}

WPCS

WordPress Coding Standards for PHP_CodeSniffer - enforces WordPress coding style

PHPCompatibility

Checks PHP version compatibility for WordPress environments

VarDumper

Symfony’s debugging component for enhanced var_dump() functionality

CodeSniffer Installer

Automatically configures PHP_CodeSniffer with WordPress standards

Node.js Dependencies (via npm)

{
  "dependencies": {
    "@wordpress/blocks": "^15.12.0",
    "@wordpress/i18n": "^6.12.0",
    "@wordpress/scripts": "^31.4.0",
    "copy-webpack-plugin": "^13.0.1",
    "glob": "^13.0.3",
    "path": "^0.12.7",
    "webpack-remove-empty-scripts": "^1.1.1"
  }
}

@wordpress/scripts

WordPress-maintained webpack configuration and build tools

@wordpress/blocks

Block Editor block registration and manipulation APIs

@wordpress/i18n

Internationalization functions for JavaScript

Webpack Plugins

Custom webpack plugins for optimized asset compilation

Plugin Development (Bifrost Music)

PHP Dependencies (via Composer)

Same as theme requirements (see above).

Node.js Dependencies (via npm)

{
  "scripts": {
    "build": "wp-scripts build",
    "start": "wp-scripts start",
    "check-licenses": "wp-scripts check-licenses",
    "format": "wp-scripts format",
    "lint:css": "wp-scripts lint-style",
    "lint:js": "wp-scripts lint-js"
  },
  "devDependencies": {
    "@wordpress/scripts": "^27.0.0"
  }
}

Production Requirements

Server Environment

Production deployments should use optimized builds without development dependencies.
ComponentRequirement
Web ServerApache 2.4+ with mod_rewrite OR Nginx 1.18+
PHP8.1+ with OPcache enabled
DatabaseMySQL 5.7+ OR MariaDB 10.5+
Memory Limit256 MB minimum (512 MB recommended)
Max Execution Time60 seconds minimum

Production Build Commands

cd themes/bifrost-noise

# Install production PHP dependencies
composer install --no-dev --optimize-autoloader

# Build optimized assets
npm run build
The --no-dev flag excludes development dependencies like WPCS and VarDumper. The --optimize-autoloader flag generates an optimized class map for better performance.

Local Development Environment Options

Any of the following local development environments will work:

Local by Flywheel

Recommended for beginners. Provides one-click WordPress setup with easy PHP version switching.

Docker / wp-env

Official WordPress Docker environment. Great for consistent development across teams.

XAMPP / MAMP

Traditional local server stacks. More manual configuration required.

Laravel Valet

For macOS developers. Lightweight and fast with minimal configuration.

Example: Local by Flywheel Configuration

  1. PHP Version: 8.1 or higher
  2. Web Server: Nginx (default)
  3. Database: MySQL 8.0
  4. WordPress: Latest version

Example: wp-env Configuration

Create a .wp-env.json file:
{
  "core": "WordPress/WordPress#6.9",
  "phpVersion": "8.1",
  "plugins": [
    "./plugins/bifrost-music"
  ],
  "themes": [
    "./themes/bifrost-noise"
  ]
}
Then run:
npx @wordpress/env start

Optional Components

Git

Version control system for contributing to the project

VS Code

Code editor with excellent WordPress development extensions

WP-CLI

Command-line interface for WordPress management and automation

Xdebug

PHP debugger for step-through debugging and profiling

Useful VS Code Extensions

  • PHP Intelephense - PHP code intelligence
  • WordPress Snippets - WordPress function snippets
  • ESLint - JavaScript linting
  • Prettier - Code formatting
  • EditorConfig - Consistent coding styles

Browser Requirements

Development

For Block Editor development, use modern browsers:
  • Chrome 90+ (recommended for DevTools)
  • Firefox 88+
  • Safari 15+
  • Edge 90+

Production

The theme and plugin are compatible with:
  • All evergreen browsers (auto-updating)
  • IE11 is not supported (consistent with WordPress 6.9+ policy)

Deployment Environment

The showcase includes automated deployment workflows for:

GitHub Actions Requirements

RequirementDescription
GitHub EnvironmentsSeparate production and staging environments
SFTP CredentialsFor automated vendor folder deployment
Repository SecretsSFTP_USER, SFTP_PASSWORD, SFTP_KNOWN_HOSTS
See the CONTRIBUTING.md file for detailed deployment workflow information.

Verification Checklist

Before starting development, verify your environment meets these requirements:
1

Check PHP Version

php -v
# Should show 8.1 or higher
2

Check Node.js Version

node -v
# Should show v18.x or higher

npm -v
# Should show 9.x or higher
3

Check Composer

composer --version
# Should show 2.x
4

Verify WordPress Version

wp core version
# Should show 6.9 or higher
5

Check PHP Extensions

php -m | grep -E "(json|mbstring|mysqli|curl|openssl|zip)"
# All should be listed

Troubleshooting

PHP Version Errors

Error: “Parse error: syntax error, unexpected token…” Solution: Your PHP version is too old. Upgrade to PHP 8.1 or higher.

Node.js Version Errors

Error: “This version of Node.js requires a newer version…” Solution:
# Install nvm (Node Version Manager)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

# Install Node.js 20 LTS
nvm install 20
nvm use 20

Composer Installation Issues

Error: “Fatal error: Allowed memory size…” Solution:
# Increase PHP memory limit for Composer
php -d memory_limit=-1 $(which composer) install

Next Steps

Once you’ve verified all requirements are met:

Proceed to Setup

Follow the step-by-step installation guide to get the showcase running locally

Build docs developers (and LLMs) love