Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

SproutCMS 3.2

SproutCMS is a flexible and feature rich cms and application framework, developed in PHP, designed to enable quick and agile custom development. SproutCMS was built to reward innovation and encourage developers to produce complex applications. It is built by developers, for developers.


Development docs:

User manual:

For older versions of PHP (5.5 through 7.2) use the Sprout 3.0 branch or update your hosting (recommended).


  • PHP 7.3 or later

  • A web server, e.g. Apache or nginx

  • MySQL 5.7 or later, or MariaDB 10.3 or later

  • Composer 2 or later

Getting started

  1. Run composer create-project sproutcms/site
  2. Run composer serve
  3. Browse to http://localhost:8080/

This is a quick start example. For a detailed installation walk-through see


SproutCMS runs natively with git deploy.

  1. Set up your remote, e.g.
git remote add production ""
  1. Run the setup task
git deploy setup -r "production"
  1. No need to run git deploy init as this has already been done

  2. Push the code

git push production master

Development tools

To run unit tests, execute the following from the root directory:

$ composer test

To run NStrack, our namespace issue finder and fixer, run from the root directory, e.g.

$ composer nstrack

To add license blocks to recently added files, run the following from the root directory:

$ php tools/license_block/license_block.php


(for contributors)

To publish a new version simply create a git tag with the next appropriate version. This is then automatically pushed to via a web hook.

git tag v3.2.x -m "My (very short) description of new changes."
git push origin v3.2.x

For example, given the last version (from git log) is v3.2.10 then tag and push v3.2.11.

Please be careful and don't publish untested code. Keep your messy business in a branch and require it into your projects using the dev- prefixes.

Such as:

composer require sproutcms/cms:dev-my-broken-branch

Or use the composer patch-locals script to symlink the dependency while locally building your site.