Manati Drupal Starter Kit

NPM Generator to create an awesome repo structure for your projects.

What’s in the box?

Using this generator; you’ll get a folder with the below listed structure ready to start working with Drupal using modern and cool technologies like drupalvm, behat (using selenium for running JS tests), gulp, aquifer, vagrant, ansible and more.

Out of the box; you’ll get the necessary stuff for building your Drupal site using aquifer, using a virtual machine (created with vagrant and provisioned with ansible); with useful tools to check code quality (eslint, phplint, drupalcs) and some scripts for day-to-day tasks (generate settings, install site, run behat, verify features status).

Besides that; you’ll get a Wercker config file ready to create a wercker app the with necessary build steps and Pantheon deploy. You’ll also get the same (but untested) for CircleCI (without the Pantheon deploy stuff).

First, install Yeoman and generator-mdsk using npm (we assume you have pre-installed node.js).

npm install -g yo
npm install -g generator-mdsk

Then generate your new project:

yo mdsk

Folder Structure

Once generated your project; you’ll get an structure like this:

.gitignore – gitignore general file
/artifacts/ – Deployable build artifacts.
/build/ – Build working directory.
/docs – Documentation for the distribution.
/files/ – User files.
/gulp-tasks – Individual Gulp tasks.
/modules/custom – Your custom modules.
/modules/features – Your features.
/patches – Drupal patches.
/provisioning – Drupal VM Ansible playbooks.
/scripts – Utility scripts.
/settings/settings.php – Drupal common settings.
aquifer.json – Aquifer build system configuration.
behat.yml – Behat config file.
composer.json – Composer PHP dependency manager configuration.
composer.lock – locks Composer to specific versions.
config.yml – Drupal VM.
drupal.make.yml – Defines Drupal, contrib projects and patches.
.editorconfig – Defines and maintains consistent coding styles between different editors
.eslintrc – JavaScript coding standards.
example.config.yml – Drupal VM.
config.yml – Same as example.config.yml that you can/should edit to your settings.
gulpfile.js – Gulp JavaScript task runner; use gulp help for details.
package.json – Node.JS packages. – Basic info and description file.
Vagrantfile – Drupal VM.
/settings/settings.secret.php – Drupal environmental settings that should not be in version control, like passwords.
/settings/settings.local.php – Drupal local development settings.
/tests/behat/features – Behat features folder.
/tests/sample_content – Sample content folder to use in your Behat features.
circle.yml – CircleCI config file.
/circle – CircleCI necessary files.
wercker.yml – Wercker config file.
/wercker – Wercker necessary files.
/node_modules – Node contrib packages.
/.vendor – Composer contrib packages.


For usage instructions; please refer to:

How to help?

You can submit issues and Pull Requests via Github (

NPM Project Page

You can find project page at

Getting To Know Yeoman

Yeoman has a heart of gold. He’s a person with feelings and opinions, but he’s very easy to work with. If you think he’s too opinionated, he can be easily convinced. Feel free to learn more about him.


This generator has been possible thanks to all the great projects mentioned above. We also want to give special thanks to @fluxsauce (and @fourkitchens) for his help and guidance and the folder structure in which this project is inspired.