Skip to content
  • Sage page


To deploy a Sage theme you'll need to make sure two things are covered:

  1. Run composer install from the theme directory on the remote server if you have Acorn installed in your theme directory
  2. Copy over built theme assets (the public/ folder)

Generate production ready assets with yarn build.

# Server requirements

  • WordPress >= 5.9
  • PHP >= 8.1
  • BCMath PHP Extension
  • Ctype PHP Extension
  • Fileinfo PHP Extension
  • JSON PHP Extension
  • Mbstring PHP Extension
  • Tokenizer PHP Extension
  • XML PHP Extension

# Server configuration

Using Trellis or Radicle?

If you are using Trellis to provision your production environment, or you are using Radicle, you can skip this section.

# Securing Blade templates

Due to the nature of WordPress, any file residing in the theme folder is publicly accessible. By default, webservers will return any requests made to a *.blade.php template as plain-text.

This can create an opening for potential security risks as well as unwanted snooping.

To prevent this from happening, we will need to add configuration to the web server to deny access to the file extension.

# Nginx

If you are using Nginx, add the following to your site configuration before the final location directive:

location ~* \.(blade\.php)$ {
    deny all;

# Apache

If you are using Apache, add the following to your virtual host configuration or the .htaccess file at the root of your web application:

<FilesMatch ".+\.(blade\.php)$">
    # Apache 2.4
    <IfModule mod_authz_core.c>
        Require all denied

    # Apache 2.2
    <IfModule !mod_authz_core.c>
        Order deny,allow
        Deny from all

# Deploying Sage with Trellis

If you use Trellis, you can build your assets locally (or on a CI server), then copy them to the remote server during deployment. See the build-before.yml example hook in Trellis.

# Deploying Sage on Kinsta

Kinsta supports Bedrock and Trellis, so deploying Sage with Trellis on Kinsta is possible by following a few extra steps.

# Deploying Sage on WP Engine

See the instructions from wpengine/example-sage-theme.

# Deploying Sage via FTP

If you don't have permission to run composer on the production server and/or are using a shared hosting service, you may want to deploy Sage with FTP. To do so, compile your assets for production and run composer install --no-dev in your theme directory. Upload all files and folders in your theme except the node_modules directory to your host.


Last updated

Support Roots

Help us continue to build and maintain our open source projects. We’re a small team of independent developers and every little bit helps.

Sponsor Roots on GitHub