Want to take your software engineering career to the next level? Join the mailing list for career tips & advice 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 2 years ago
Repo Created over 6 years ago
Repo Last Updated over 2 years ago
Size 333 KB
Homepage https://roots.io/...
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 🚀🚀🚀
Software engineers: It's time to get promoted. Starting NOW! Subscribe to my mailing list and I will equip you with tools, tips and actionable advice to grow in your career.
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 roots-example-project.com 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 (http://example.com)
    • WP_SITEURL - Full URL to WordPress including subdirectory (http://example.com/wp)

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 http://example.com/wp/wp-admin


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 https://roots.io/bedrock/docs/.


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)
  • about 4 years URL issues on multisite
  • over 4 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 Roots.io/Bedrock + Capistrano
  • Trying to localize plugin on Bedrock stack in Wordpress
bedrock list of languages used
Other projects in PHP