Are you happy with your logging solution? Would you help us out by taking a 30-second survey? Click here


WordPress boilerplate with modern development tools, easier configuration, and an improved folder structure

Subscribe to updates I use bedrock

Statistics on bedrock

Number of watchers on Github 3887
Number of open issues 3
Average time to close an issue 4 days
Main language PHP
Average time to merge a PR 3 days
Open pull requests 12+
Closed pull requests 32+
Last commit over 1 year ago
Repo Created almost 6 years ago
Repo Last Updated over 1 year ago
Size 333 KB
Organization / Authorroots
Latest Release1.8.8
Page Updated
Do you use bedrock? Leave a review!
View open issues (3)
View bedrock activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating bedrock for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)


Packagist Build Status

Bedrock is a modern WordPress stack that helps you get started with the best development tools and project structure.

Much of the philosophy behind Bedrock is inspired by the Twelve-Factor App methodology including the WordPress specific version.


  • Better folder structure
  • Dependency management with Composer
  • Easy WordPress configuration with environment specific files
  • Environment variables with Dotenv
  • Autoloader for mu-plugins (use regular plugins as mu-plugins)
  • Enhanced security (separated web root and secure passwords with wp-password-bcrypt)

Use Trellis for additional features:

  • Easy development environments with Vagrant
  • Easy server provisioning with Ansible (Ubuntu 16.04, PHP 7.1, MariaDB)
  • One-command deploys

See a complete working example in the repo.



  1. Create a new project in a new folder for your project:

composer create-project roots/bedrock your-project-folder-name

  1. Update environment variables in .env file:
    • DB_NAME - Database name
    • DB_USER - Database user
    • DB_PASSWORD - Database password
    • DB_HOST - Database host
    • WP_ENV - Set to environment (development, staging, production)
    • WP_HOME - Full URL to WordPress home (
    • WP_SITEURL - Full URL to WordPress including subdirectory (

If you want to automatically generate the security keys (assuming you have wp-cli installed locally) you can use the very handy wp-cli-dotenv-command:

  wp package install aaemnnosttv/wp-cli-dotenv-command

  wp dotenv salts regenerate

Or, you can cut and paste from the Roots WordPress Salt Generator.

  1. Add theme(s) in web/app/themes as you would for a normal WordPress site.

  2. Set your site vhost document root to /path/to/site/web/ (/path/to/site/current/web/ if using deploys)

  3. Access WP admin at


There are two methods to deploy Bedrock sites out of the box:

Any other deployment method can be used as well with one requirement:

composer install must be run as part of the deploy process.


Bedrock documentation is available at


Contributions are welcome from everyone. We have contributing guidelines to help you get started.


Keep track of development and community news.

bedrock open issues Ask a question     (View All Issues)
  • over 3 years URL issues on multisite
  • over 3 years Switch from Dotenv/env file to an INI file
bedrock open pull requests (View All Pulls)
  • Fix URL issues on multisite (especially in network admin)
  • Isolate scope for autoloaded mu-plugins
  • Add DB_PREFIX variable to .env.example
  • Ignore irrelevant files when installing via Composer
  • Update instructions for generating salts
  • Use site transients for saving mu-plugins
  • Modular configuration
  • Fix composer
  • Auto create .env on composer create
  • Remove /wp/ from no wp-admin/wp-includes URIs from site_url()
  • Added env constants for custom application settings
  • Activating Open Collective
bedrock questions on Stackoverflow (View All Questions)
  • Wordpress Bedrock framework installation white screen of death ("Dotenv values containing spaces must be surrounded by quotes")
  • WordPress - “You do not have sufficient permissions to access this page” in production but not locally with AWS and Bedrock
  • Vagrant error while mounting nfs shared folders following roots bedrock+trellis+sage tutorial
  • Dotenv not loaded when deploying Bedrock-Capistrano
  • How to Update Environment Variables in bedrock installation while in ubuntu?
  • Bedrock dev site only works while offline
  • Redirect loop for WP multisite subdirectories using nginx, bedrock
  • Sending a firstname and lastname to Server and rerouting data to new page in Bedrock using handlebars.js
  • require wp-load.php from Bedrock
  • Apache config problems for + Capistrano
  • Trying to localize plugin on Bedrock stack in Wordpress
bedrock list of languages used
Other projects in PHP