Search by

dotsunited / wordpress-boilerplate

WordPress Boilerplate

Maintainers

Package info

github.com/dotsunited/wordpress-boilerplate

pkg:composer/dotsunited/wordpress-boilerplate

Transparency log

Statistics

Installs: 354

Dependents: 0

Suggesters: 0

Stars: 15

Open Issues: 0


README

A barebones, clean and minimalist WordPress Boilerplate, developed at Dots United as a foundation for modern, maintainable and lightning fast WordPress based projects.

Gutenberg ready.

A Demo is available here.

Features

Setup

Create a new project with:

composer create-project dotsunited/wordpress-boilerplate my-project

Docker

Adjust the docker-compose.yml to your needs using a docker-compose.override.yml file (https://docs.docker.com/compose/extends/).

You can add a database dump using a dump.sql.gz or dump.sql file which will be imported on the first run. If a database dump is present, a new user with the following credentials will be automatically added:

Username: `localAdmin`
Password: `localPassword`

⚠️ Remember to remove or change the credentials in a production environment!

Multisite subfolders can be be configured by setting the WORDPRESS_MULTISITE_PATHS environment variable to e.g. 2=blog2,3=blog3, resulting in the following URLs:

If nothing is set, the ID of the corresponding blog will be used as a path, resulting in the following URLs:

Start the Docker containers with

docker compose up -d

Deployment

The GitHub Actions and GitLab templates build the frontend and Gutenberg assets and deploy them with ghcr.io/dotsunited/deploy:v0. See the deploy repository for all supported protocols and configuration options.

Configure at least these variables for each target environment:

DEPLOY_PROTOCOL
DEPLOY_HOST
DEPLOY_USER
DEPLOY_REMOTE_PATH

For GitHub Actions, add connection values as environment variables and add credentials as environment secrets. The environment name is the branch name (main or staging). For GitLab, add the same values as CI/CD variables.

The templates deploy from ./public. The deploy image reads tracked files directly from Git and adds generated paths from .deploy-include. .deploy-ignore protects WordPress core, uploads, plugins, .htaccess, and other server-managed files. Unrelated remote files, themes, and plugins are not deleted.

Deployment state is stored as deploy.manifest.json. Apply public/.htaccess.dist on the server when the destination is a web root to block public access to this file.

To deploy a generated vendor/ directory, remove /vendor/** from .deploy-ignore, add these rules to .deploy-include, include the directory in the CI artifact, and run Composer in the build job:

+ /vendor/
+ /vendor/**
- run: composer install --no-dev --no-interaction --prefer-dist

Plugins

ℹ️ Automatic updates for plugins, themes and major core versions are disabled by default. You can enable them by removing or commenting the corresponding module inside wp-content/mu-plugins/wordpress-boilerplate/wordpress-boilerplate.php.

If you uncommented sentry lines in docker-compose.yml install WP Sentry

Be careful when using plugins which depend on jQuery.

Gravity Forms for example will enqueue jquery once a form is embedded into a post or page.

In this case, you might include the form via an iFrame. You can use the gravity-forms-iframe plugin for easier integration.

Webfonts

It is recommended to use local webfonts and not from external CDN's like Google Fonts.

You can use google-webfonts-helper to download webfonts from Google Fonts.

License

Copyright (c) 2015-2026 Dots United GmbH. Released under the MIT license.