Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
WordPress starter theme based on HTML5 Boilerplate, gulp, Bower, and Bootstrap
PHP JavaScript CSS

Merge pull request #1394 from JulienMelissas/bump-deps

Bumped all the deps (except for pleeease).
latest commit ae1463ff5d
@retlehs retlehs authored
Failed to load latest commit information.
assets Added more explicit instructions for BrowserSync.
lang Update sage.pot
lib Change SageNavWalker to NavWalker in comments
templates Changing SageNavWalker to NavWalker, and referencing it directly in t…
.bowerrc Adds a bowerrc
.editorconfig Add EditorConfig
.gitignore Update .gitignore
.jscsrc Adds JSCS for gulpfile and scripts
.jshintrc remove trailing option
.travis.yml cache bower and node directories
404.php Simplify 404 page Update to Bootstrap 3.3.4 Reference contributing guidelines guidelines repo Formatting, adding/updating links use the right words
base.php Remove namespace from base.php
bower.json Update to Bootstrap 3.3.4
functions.php Convert Sidebar to ConditionalTagCheck
gulpfile.js Watch manifest.json
index.php Ref #1033 - better support for CPT templates
package.json Bumped all the deps (except for pleeease).
page.php Update page.php
ruleset.xml Fix ruleset after PHP_CodeSniffer 2.3.0 update
screenshot.png Update screenshot resolution to 880x660, change to blank image
single.php Ref #1033 - better support for CPT templates
style.css Sage 8.1.0
template-custom.php :mag:


Build Status devDependency Status

Sage is a WordPress starter theme based on HTML5 Boilerplate, gulp, Bower, and Bootstrap, that will help you make better themes.


Prerequisite How to check How to install
PHP >= 5.4.x php -v
Node.js 0.12.x node -v
gulp >= 3.8.10 gulp -v npm install -g gulp
Bower >= 1.3.12 bower -v npm install -g bower

For more installation notes, refer to the Install gulp and Bower section in this document.


  • gulp build script that compiles both Less and Sass, checks for JavaScript errors, optimizes images, and concatenates and minifies files
  • BrowserSync for keeping multiple browsers and devices synchronized while testing, along with injecting updated CSS and JS into your browser while you're developing
  • Bower for front-end package management
  • asset-builder for the JSON file based asset pipeline
  • Bootstrap
  • Theme wrapper
  • HTML5 Boilerplate
    • The latest jQuery via Google CDN, with a local fallback
    • The latest Modernizr build for feature detection
    • An optimized Google Analytics snippet
  • ARIA roles and microformats
  • Cleaner HTML output of navigation menus
  • Posts use the hNews microformat
  • Multilingual ready and over 30 available community translations

Install the Soil plugin to enable additional features:

  • Cleaner output of wp_head and enqueued assets
  • Root relative URLs
  • Nice search (/search/query/)


Clone the git repo - git clone and then rename the directory to the name of your theme or website.

If you don't use Bedrock, you'll need to add the following to your wp-config.php on your development installation:

define('WP_ENV', 'development');


Edit lib/config.php to enable or disable theme features and to define a Google Analytics ID.

Edit lib/init.php to setup navigation menus, post thumbnail sizes, post formats, and sidebars.

Theme development

Sage uses gulp as its build system and Bower to manage front-end packages.

Install gulp and Bower

Building the theme requires node.js. We recommend you update to the latest version of npm: npm install -g npm@latest.

From the command line:

  1. Install gulp and Bower globally with npm install -g gulp bower
  2. Navigate to the theme directory, then run npm install
  3. Run bower install

You now have all the necessary dependencies to run the build process.

Available gulp commands

  • gulp — Compile and optimize the files in your assets directory
  • gulp watch — Compile assets when file changes are made
  • gulp --production — Compile assets for production (no source maps).

Using BrowserSync

To use BrowserSync during gulp watch you need to update devUrl at the bottom of assets/manifest.json to reflect your local development hostname.

For example, if your local development URL is you would update the file to read:

  "config": {
    "devUrl": ""

If your local develoment URL looks like http://localhost:8888/project-name/ you would update the file to read:

  "config": {
    "devUrl": "http://localhost:8888/project-name/"


Sage 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.

Something went wrong with that request. Please try again.