IMG 2177

ootstra is an opinionated set of tools for a ready to run, build & deploy Silverstripe CMS instance. It's inspired from Bigfork’s quickstart recipe for Silverstripe but with a few more modules like Silverstripe Elemental.

Elemental, Blog, Userforms ect. are a strong base to build Authoring experience on top of CMS. Expectations for Webapps in the CMS market are high and it's becoming more and more of a task gluing tools together from project to project to build this additional needed functionality to get the CMS experience how you like it. Even with modules, there's still a far bit of functionality we repeat from project to project.

In many cases CMS functionality is a basic requirement and custom functionality should be integrated or build on top of it. Creating this additional features with Silverstripe is nice and fits my needs in most cases pretty well. CMS experience is nice, but building it and adding all those collected micro optimisations involves many steps. Well the question of readymade vs. custom build.

"ootstra" attempts to collect reusable functionality to start a project quick. Integrated Deployment for example (see README.md) is one of the things it solves pretty well. I much like the strong base bigforks silverstripe-recipe provides with PHP Deployer.

In my local setup domain-mappings are based on parent-folder-name of `public` in my local webroot-folder. Trough `SS_DATABASE_CHOOSE_NAME=true` in `.env` DB-name also depends on it. Setting-up a project is done with a few commands, if tooling like git, php, npm is installed.

  • git clone git@bitbucket.org:ORG/PROJECT.git "PROJECT"
  • composer install
  • npm install
  • # Download assets
    dep silverstripe:download_assets
  • # Download database
    dep silverstripe:download_database
  • npm run watch

Complete automated deployment as one-liner `dep deploy` with db-dump, rollback, different stages, git branch/tag support, short cuts to transfer assets & DB like `dep silverstripe:upload_database stage`or short cuts to ssh into it - all included!

Video

While rolling my own starter solution, I wonder how others handle it? I'm sure, there are many basetheme/starters probable with similar aims. "oostra" is still not quite in the state I wish it would be by the time of this conference. As I try to collect "fit-in-many-cases-patterns" with it, code comes from a variety of places, cleaning and much testing is needed - so far the process didn't magically speed up. As a result this talk is a short lightning talk to share some Ideas.

Please let me know what you think.