PHPackages                             myplanet/skeletor - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. myplanet/skeletor

ActiveDrupal-profile[Utility &amp; Helpers](/categories/utility)

myplanet/skeletor
=================

Skeletor Install Profile

8.0.3(8y ago)42.1k[21 PRs](https://github.com/myplanet/skeletor/pulls)HTML

Since Nov 23Pushed 3y ago4 watchersCompare

[ Source](https://github.com/myplanet/skeletor)[ Packagist](https://packagist.org/packages/myplanet/skeletor)[ RSS](/packages/myplanet-skeletor/feed)WikiDiscussions 8.2.x Synced 6d ago

READMEChangelog (2)Dependencies (10)Versions (27)Used By (0)

Skeletor Install Profile [![Skeletor icon](skeletor.png)](skeletor.png)
=======================================================================

[](#skeletor-install-profile-)

[![Build Status](https://camo.githubusercontent.com/97d19295966f1fe4e7550c6e812d6654984b5ae5cc61f353c59116a3bca44e68/68747470733a2f2f7472617669732d63692e6f72672f6d79706c616e65746469676974616c2f64727570616c2d736b656c65746f722e7376673f6272616e63683d382e322e78)](https://travis-ci.org/myplanetdigital/drupal-skeletor)

A skeleton Drupal install profile that scaffolds Myplanet projects.

Skull icon by [Chanut is Industries](https://www.iconfinder.com/Chanut-is)

- [1. Build Instructions](#1-build-instructions)
    - [Requirements](#requirements)
    - [Building Drupal](#building-drupal)
    - [Customizing your build](#customizing-your-build)
        - [Script List](#script-list)
        - [Full Example](#full-example)
    - [Adjusting Drupal files](#adjusting-drupal-files)
- [2. Layout](#2-layout)
- [3. Theme](#3-theme)
- [4. Modules](#4-modules)
- [5. Features](#5-features)
- [6. Documentation](#6-documentation)
- [7. Configuration Management](#7-configuration-management)
- [8. Production Build Requirements](#8-production-build-requirements)
    - [Trusted host security setting in Drupal 8](#trusted-host-security-setting-in-drupal-8)

1. Build Instructions
---------------------

[](#1-build-instructions)

### Requirements

[](#requirements)

- PHP 7.0.\*
- Composer 1.0.0+

### Building Drupal

[](#building-drupal)

To start a new project based on Skeletor in `[target-dir-name]`, run:

```
composer create-project drupal-composer/drupal-project:8.x-dev some-dir --stability dev --no-interaction
cd some-dir
```

Open `composer.json` in `some-dir` and add `"enable-patching": true` in the `"extra"` section.

```
{
    "extra": {
        "enable-patching": true
    }
}
```

Now add skeletor as a dependency to your build:

```
composer require myplanet/skeletor:8.2.x-dev
```

Once skeletor has successfully been added to the build we need to include scaffold files provided by skeletor. By default you will get Acquia cloud hooks, travis scripts, a .gitignore file to use on production and a .travis.yml file with sensible defaults. From the **project root**:

```
./vendor/bin/skeletor-init-project.sh
```

In order to create a sub profile based on Skeletor, you have to apply a patch to Drupal core (until it's incorporated [into core](https://www.drupal.org/project/drupal/issues/1356276)). To do so, add the following to your `composer.json`

```
"patches": {
    "drupal/core": {
        "1356276 - Allow profiles to provide a base/parent profile and load them in the correct order":
        "https://www.drupal.org/files/issues/2018-10-23/1356276-549-8.6.x.patch"
    }
},
```

Then connect your new project to a git repository, from the project folder run:

```
git init
git remote add origin [git-url]
git add -A
git commit -m "Initial Commit"
git push origin
```

### Customizing your build

[](#customizing-your-build)

Skeletor ships with composer scripts which can be viewed inside `skeletor/scripts/composer`. These can be added to your `composer.json` to automate parts of your build.

**These scripts run during `composer install` or `composer update` so you will have to execute those again.**

#### Script List

[](#script-list)

- `Skeletor\\composer\\PHPCSHandler::installDrupalSniffs`

    PHP Code Sniffer is installed at the project level. Because Drupal has unique lint rules we include them with the `coder` project. This script attaches the Drupal specific lint rules to PHP Code Sniffer.
- `Skeletor\\composer\\ProductionHandler::installNPM`

    Searches project directories and runs `npm install` in directories where package.json is discovered.
- `Skeletor\\composer\\ProductionBuild::placeGitIgnore`

    Looks for `prod.gitignore` in the project root and copies it to `.gitignore`. This is useful as a deploy step for Acquia.
- `Skeletor\\composer\\ProductionBuild::removeGitFolders`

    Searches project directories looking for `.git` directories which signify a git repository. It removes the discovered `.git` directories to prepare these dependencies to be committed to the Acquia deployment repository.

#### Full Example

[](#full-example)

Example of the `scripts` section of your `composer.json`.

```
{
    "scripts": {
        "deploy": [
            "@composer install --prefer-dist --no-dev",
            "Skeletor\\composer\\ProductionBuild::removeGitFolders",
            "Skeletor\\composer\\ProductionBuild::placeGitIgnore"
        ],
        "pre-install-cmd": [
            "DrupalProject\\composer\\ScriptHandler::checkComposerVersion"
        ],
        "pre-update-cmd": [
            "DrupalProject\\composer\\ScriptHandler::checkComposerVersion"
        ],
        "post-install-cmd": [
            "DrupalProject\\composer\\ScriptHandler::createRequiredFiles",
            "Skeletor\\composer\\ProductionHandler::installNPM",
            "Skeletor\\composer\\PHPCSHandler::installDrupalSniffs"
        ],
        "post-update-cmd": [
            "DrupalProject\\composer\\ScriptHandler::createRequiredFiles",
            "Skeletor\\composer\\ProductionHandler::installNPM",
            "Skeletor\\composer\\PHPCSHandler::installDrupalSniffs"
        ]
    }
}
```

### Adjusting Drupal files

[](#adjusting-drupal-files)

You can make adjustments to files provided by Drupal directly, such as `settings.php`, `.htaccess`, or `robots.txt`.

Commit the file with the changes in it's desired place within the docroot (web), such as `robots.txt`. Add it to drupal-scaffold:excludes array in composer.json, to prevent it from being overwritten during the build process.

```
{
    "extra": {
        "drupal-scaffold": {
            "excludes": [
                "robots.txt"
            ]
        }
    }
}
```

By default, we have excluded the settings.php file in the build process already. You can read more about further [customizing the drupal build process at the Drupal-Scaffold documentation](https://github.com/drupal-composer/drupal-scaffold/blob/master/README.md).

2. Layout
---------

[](#2-layout)

With 8.2.x we have pared Skeletor down to an install profile.

Skeletor will be installed within a drupal-project composer build: [guidelines for a Drupal 8 composer project](https://github.com/drupal-composer/drupal-project).

Skeletor profile is installed in `web/profiles/contrib/skeletor`

Installation of Skeletor will scaffold the project with the following:

- A starter `.travis.yml` to ease CI.
- Default **Acquia cloud hooks** are symlinked to the project root. You are free remove the symlink and implement your own hooks.
- PHP Codesniffer installed as a project dependency with Drupal code sniffs pre-installed.
- Drush alias boilerplate.
- local configuration files (settings.local.php, etc)
- Opt In **git hooks** which can be linked into the project `.git/hooks` directory.

3. Theme
--------

[](#3-theme)

Skeletor has a base theme (`barebones`) and one starterkit sub-theme that implements Bootstrap. Teams that want to create a child theme that is based on a different framework, they can base them off the base theme.

### A. Barebones base theme (`barebones`) features

[](#a-barebones-base-theme-barebones-features)

- Mixin/preprocess for easily inserting SVG as data-uri in sass
- Libraries for each feature in css framework
- Out-of-the-box template suggestions for:
    - form
    - form elements
    - container
    - fields
    - blocks
    - taxonomy terms
    - paragraphs
    - media

### B. Barebone Bootstrap base theme (`barebones_bootstrap`) features

[](#b-barebone-bootstrap-base-theme-barebones_bootstrap-features)

- Templates for page/navigation/forms for basic bootstrap markup/architecture.
- Template overrides for Skeletor Paragraph components
    - [Tabs](https://getbootstrap.com/docs/4.1/components/navs/#javascript-behavior)
    - [Accordion](https://getbootstrap.com/docs/4.1/components/collapse/)
    - [Hero](https://getbootstrap.com/docs/4.1/components/jumbotron/)
    - [Media Object](https://getbootstrap.com/docs/4.1/layout/media-object/)
    - [Slideshow/Carousel](https://getbootstrap.com/docs/4.1/components/carousel/)
    - Text
- Bootstrap specific SASS files and preprocess functions.
- A Starterkit child theme (`STARTERKIT`) theme to be used as starting point for a new theme.

### C. Starterkit (`STARTERKIT`) features

[](#c-starterkit-starterkit-features)

- Bootstrap
- Linters (sass-linter, eslint)
- Live style guide
- Templates for common features
- Webpack integration
- Images in src/images moved and optimized to dist/images dir
- SVG in src/svg moved and optimized to dist/svg
- Icon font with svg files in src/icons

**See Starterkit README file** for instructions on how to create custom theme for your project.

4. Modules
----------

[](#4-modules)

Skeletor contains modules that are commonly used in Myplanet projects:

- paragraphs
- pathauto
- devel
- admin\_toolbar
- rabbit\_hole
- google\_tag
- robotstxt
- field\_group
- twig\_tweak
- coder
- squizlabs/php\_codesniffer
- svg\_image
- memcache
- config\_split
- xmlsitemap
- metatag
- seckit

5. Features
-----------

[](#5-features)

Skeletor contains the following features:

- Skeletor Acquia
- Skeletor Media
- Skeletor Search
- Skeletor Paragraph Components
    - Accordion
        - Hero
        - Media Object
        - Slideshow/carousel
        - Tabs
        - Text

6. Documentation
----------------

[](#6-documentation)

Documentation for this project (and Skeletor based projects) should be placed in their [github wiki](/wiki).

7. Configuration Management
---------------------------

[](#7-configuration-management)

The Configuration Management system provides a consistent API for defining and syncing configuration between instances of a Drupal site. [Read more about configuration management in our wiki](https://github.com/myplanetdigital/drupal-skeletor/wiki/Setup-&-Working-with-Configuration-Management)

8. Production Build Requirements
--------------------------------

[](#8-production-build-requirements)

### Trusted host security setting in Drupal 8

[](#trusted-host-security-setting-in-drupal-8)

Drupal 8 supports [trusted host patterns](https://www.drupal.org/node/2410395), where you can (and should) specify a set of regular expressions that the domains on incoming requests must match. It is important to setup them before deploying to ACQUIA or PANTHEON environments.

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity19

Limited adoption so far

Community18

Small or concentrated contributor base

Maturity73

Established project with proven stability

 Bus Factor1

Top contributor holds 62.6% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~310 days

Total

5

Last Release

2312d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1005362?v=4)[Tim Fernihough](/maintainers/timfernihough)[@timfernihough](https://github.com/timfernihough)

![](https://www.gravatar.com/avatar/2a4dc6aa230a1b240f88aaba4340d61cb5c197c142984f82983be7a706f473dd?d=identicon)[renehache](/maintainers/renehache)

---

Top Contributors

[![emarchak](https://avatars.githubusercontent.com/u/823613?v=4)](https://github.com/emarchak "emarchak (109 commits)")[![rhache](https://avatars.githubusercontent.com/u/585729?v=4)](https://github.com/rhache "rhache (21 commits)")[![smithmilner](https://avatars.githubusercontent.com/u/410197?v=4)](https://github.com/smithmilner "smithmilner (14 commits)")[![sam-nalwa](https://avatars.githubusercontent.com/u/9797421?v=4)](https://github.com/sam-nalwa "sam-nalwa (8 commits)")[![gapple](https://avatars.githubusercontent.com/u/458809?v=4)](https://github.com/gapple "gapple (7 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (6 commits)")[![rfsbsb](https://avatars.githubusercontent.com/u/151019?v=4)](https://github.com/rfsbsb "rfsbsb (5 commits)")[![laura-johnson](https://avatars.githubusercontent.com/u/1652730?v=4)](https://github.com/laura-johnson "laura-johnson (2 commits)")[![yell0wman](https://avatars.githubusercontent.com/u/2277824?v=4)](https://github.com/yell0wman "yell0wman (1 commits)")[![AnastasiaD](https://avatars.githubusercontent.com/u/6458581?v=4)](https://github.com/AnastasiaD "AnastasiaD (1 commits)")

### Embed Badge

![Health badge](/badges/myplanet-skeletor/health.svg)

```
[![Health](https://phpackages.com/badges/myplanet-skeletor/health.svg)](https://phpackages.com/packages/myplanet-skeletor)
```

###  Alternatives

[farmos/farmos

A web-based farm record keeping application.

1.3k7.3k1](/packages/farmos-farmos)[vardot/varbase-project

Project template for Varbase distribution.

5162.6k](/packages/vardot-varbase-project)[govcms/govcms

GovCMS Drupal Distribution

200103.6k3](/packages/govcms-govcms)[helsingborg-stad/municipio

A bootstrap theme for creating municipality sites.

4028.6k10](/packages/helsingborg-stad-municipio)[markaspot/mark-a-spot

Mark-a-Spot is a Drupal distribution for crowdmapping and public civic issue tracking

711.1k](/packages/markaspot-mark-a-spot)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
