PHPackages                             davidhellmann/craft - 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. [Framework](/categories/framework)
4. /
5. davidhellmann/craft

ActiveProject[Framework](/categories/framework)

davidhellmann/craft
===================

nystudio107 Craft 3 CMS scaffolding project

2.4.21(5y ago)1150BSDJavaScriptCI failing

Since Nov 26Pushed 4y agoCompare

[ Source](https://github.com/davidhellmann/craft)[ Packagist](https://packagist.org/packages/davidhellmann/craft)[ Docs](https://craftcms.com/)[ RSS](/packages/davidhellmann-craft/feed)WikiDiscussions craft-webpack Synced 3d ago

READMEChangelogDependencies (2)Versions (70)Used By (0)

[![nystudio107](https://camo.githubusercontent.com/9be205c963a4fb70f43e3daa69ae864d2c12219df691414da63bea36a7f85e1c/68747470733a2f2f6e7973747564696f3130372e636f6d2f696d672f736974652f6e7973747564696f3130375f7375626d61726b2e737667)](https://craftcms.com/)

About nystudio107/craft
-----------------------

[](#about-nystudio107craft)

This is an alternate scaffolding package for Craft 3 CMS projects to Pixel &amp; Tonic's canonical [craftcms/craft](https://github.com/craftcms/craft) package.

The project is based on [Craft CMS](https://CraftCMS.com) using a unique `templates/_boilerplate` system for web/AJAX/AMP pages, and implements a number of technologies/techniques:

- [Docker](https://www.docker.com/) Docker is used for local development; see **Setting Up Local Dev** below for details
- A base Twig templating setup as described in [An Effective Twig Base Templating Setup](https://nystudio107.com/blog/an-effective-twig-base-templating-setup)
- [webpack 5](https://webpack.js.org/) is used for the build system as per [An Annotated webpack 4 Config for Frontend Web Development](https://nystudio107.com/blog/an-annotated-webpack-4-config-for-frontend-web-development)
- [TypeScript](https://www.typescriptlang.org/) for strictly typed JavaScript code
- [Vue.js 3.0](https://vuejs.org/) is used for some of the interactive bits on the website, and Vue.js 3.x allows us to leverage the [Composition API](https://composition-api.vuejs.org/)
- [Tailwind CSS](https://tailwindcss.com/) for the site-wide CSS using the [@tailwindcss/jit](https://blog.tailwindcss.com/just-in-time-the-next-generation-of-tailwind-css)
- JSON-LD structured data as per [Annotated JSON-LD Structured Data Examples](https://nystudio107.com/blog/annotated-json-ld-structured-data-examples)
- [Google AMP](https://developers.google.com/amp/) versions of the podcast episode and other pages
- Image transforms are done via a [Serverless Image Handler](https://aws.amazon.com/solutions/serverless-image-handler/) lambda function, as described in the [Setting Up Your Own Image Transform Service](https://nystudio107.com/blog/setting-up-your-own-image-transform-service) article
- Static assets are stored in AWS S3 buckets with CloudFront as the CDN, as per the [Setting Up AWS S3 Buckets + CloudFront CDN for your Assets](https://nystudio107.com/blog/using-aws-s3-buckets-cloudfront-distribution-with-craft-cms) article
- Implements a Service Worker via Google's [Workbox](https://developers.google.com/web/tools/workbox/) as per [Service Workers and Offline Browsing](https://nystudio107.com/blog/service-workers-and-offline-browsing)
- Critical CSS as per [Implementing Critical CSS on your website](https://nystudio107.com/blog/implementing-critical-css)
- Frontend error handling as per [Handling Errors Gracefully in Craft CMS](https://nystudio107.com/blog/handling-errors-gracefully-in-craft-cms)
- A custom site module as per [Enhancing a Craft CMS 3 Website with a Custom Module](https://nystudio107.com/blog/enhancing-a-craft-cms-3-website-with-a-custom-module)
- CLI-based queue as per [Robust queue job handling in Craft CMS](https://nystudio107.com/blog/robust-queue-job-handling-in-craft-cms)
- FastCGI Static Cache as per [Static Page Caching with Craft CMS](https://nystudio107.com/blog/static-caching-with-craft-cms)
- [buddy.works](http://buddy.works/) atomic deployments

...and probably a bunch of other stuff too.

The following Craft CMS plugins are used on this site:

- [FastCGI Cache Bust](https://nystudio107.com/plugins/fastcgi-cache-bust) - to bust the FastCGI cache whenever entries are modified
- [ImageOptimize](https://nystudio107.com/plugins/imageoptimize) - for the optimized images and `srcset`s used on the site
- [Minify](https://nystudio107.com/plugins/minify) - to minify the HTML and inline JS/CSS
- [Retour](https://nystudio107.com/plugins/retour) - for setting up 404 redirects
- [SEOmatic](https://nystudio107.com/plugins/seomatic) - for handling site-side SEO
- [Twigpack](https://nystudio107.com/plugins/twigpack) - for loading webpack-generated `manifest.json` resources in a modern way
- [Typogrify](https://nystudio107.com/plugins/typogrify) - for smart quotes and other typographic ligatures
- [Webperf](https://nystudio107.com/plugins/webperf) - for monitoring web performance

You can read more about it in the [Setting up a New Craft 3 CMS Project](https://nystudio107.com/blog/setting-up-a-craft-cms-3-project) article.

Using nystudio107/craft
-----------------------

[](#using-nystudio107craft)

This project package works exactly the way Pixel &amp; Tonic's [craftcms/craft](https://github.com/craftcms/craft) package works; you create a new project by first creating &amp; installing the project:

```
composer create-project nystudio107/craft PATH --no-install

```

Make sure that `PATH` is the path to your project, including the name you want for the project, e.g.:

```
composer create-project nystudio107/craft craft3 --no-install

```

We use `--no-install` so that the composer packages for the root project are not installed.

Setting Up Local Dev
--------------------

[](#setting-up-local-dev)

You'll need Docker desktop for your platform installed to run the project in local development

- Set up a `.env` file in the `cms/` directory, based off of the provided `example.env`
- Set up a `.env.sh.` file in the `scripts/` directory, based off of the provided `example.env.sh`
- Start up the site by typing `make dev` in terminal in the project's root directory (the first build will be somewhat lengthy)
- Navigate to `http://localhost:8000` to use the site; the `webpack-dev-server` runs off of `http://localhost:8080`

Wait until you see the following to indicate that the PHP container is ready:

```
php_1         | Craft is installed.
php_1         | Applying changes from your project config files ... done
php_1         | [01-Dec-2020 18:38:46] NOTICE: fpm is running, pid 22
php_1         | [01-Dec-2020 18:38:46] NOTICE: ready to handle connections

```

...and the following to indicate that the webpack container is ready:

```
webpack_1     |  devmode-fm (webpack 5.9.0) compiled successfully in 12097 ms
webpack_1     |  [webpack-dev-middleware] Child "devmode-fm": Compiled successfully.

```

The CP login credentials are initially set as follows:

Login: `andrew@nystudio107.com`
Password: `letmein`

Obviously change these to whatever you like as needed.

Build the production assets by typing `make build` to build the critical CSS, fonts, and other production assets. They will appear in `cms/web/dist/` (just double-click on the `report-legacy.html` and `report-modern.html` files to view them).

**N.B.:** Without authorization &amp; credentials (which are private), the `make pulldb` will not work (it just runs `scripts/docker_pull_db.sh`). It's provided here for instructional purposes.

Makefile Project Commands
-------------------------

[](#makefile-project-commands)

This project uses Docker to shrink-wrap the devops it needs to run around the project.

To make using it easier, we're using a Makefile and the built-in `make` utility to create local aliases. You can run the following from terminal in the project directory:

- `make dev` - starts up the local dev server listening on `http://localhost:8000/`
- `make build` - builds the static assets via the webpack 5 buildchain
- `make clean` - shuts down the Docker containers, removes any mounted volumes (including the database), and then rebuilds the containers from scratch
- `make update` - causes the project to update to the latest Composer and NPM dependencies
- `make update-clean` - completely removes `node_modules/` &amp; `vendor/`, then causes the project to update to the latest Composer and NPM dependencies
- `make composer xxx` - runs the `composer` command passed in, e.g. `make composer install`
- `make craft xxx` - runs the `craft` [console command](https://craftcms.com/docs/3.x/console-commands.html) passed in, e.g. `make craft project-config/apply` in the php container
- `make npm xxx` - runs the `npm` command passed in, e.g. `make npm install`
- `make pulldb` - runs the `scripts/docker_pull_db.sh` script to pull a remote database into the database container; the `scripts/.env.sh` must be set up first
- `make restoredb xxx` - runs the `scripts/docker_restore_db.sh` script to restore a local database dump into the database container; the `scripts/.env.sh` must be set up first

### Other notes

[](#other-notes)

To update to the latest Composer packages (as constrained by the `cms/composer.json` semvers) and latest npm packages (as constrained by the `docker-config/webpack-dev-devmode/package.json` semvers), do:

```
make update

```

To start from scratch by removing `buildchain/node_modules/` &amp; `cms/vendor/`, then update to the latest Composer packages (as constrained by the `cms/composer.json` semvers) and latest npm packages (as constrained by the `docker-config/webpack-dev-devmode/package.json` semvers), do:

```
make update-clean

```

To use Xdebug with VSCode install the [PHP Debug extension](https://marketplace.visualstudio.com/items?itemName=felixfbecker.php-debug) and use the following configuration in your `.vscode/launch.json`:

```
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for Xdebug",
            "type": "php",
            "request": "launch",
            "port": 9003,
            "log": true,
            "externalConsole": false,
            "pathMappings": {
                "/var/www/project/cms": "${workspaceRoot}/cms"
            },
            "ignore": ["**/vendor/**/*.php"]
        }
    ]
}
```

Below is the entire intact, unmodified `README.md` from Pixel &amp; Tonic's [craftcms/craft](https://github.com/craftcms/craft):

.....

[![Craft CMS](https://camo.githubusercontent.com/47095b3a61ba99a6473dd41068f7b92042ac6dad4e7a7e9563d7667b31653b9a/68747470733a2f2f6372616674636d732e636f6d2f6372616674636d732e737667)](https://craftcms.com/)

About Craft CMS
---------------

[](#about-craft-cms)

Craft is a flexible and scalable CMS for creating bespoke digital experiences on the web and beyond.

It features:

- An intuitive Control Panel for administration tasks and content creation.
- A clean-slate approach to content modeling and [front-end development](https://docs.craftcms.com/v3/dev/).
- A built-in Plugin Store with hundreds of free and commercial [plugins](https://plugins.craftcms.com/).
- A robust framework for [module and plugin development](https://docs.craftcms.com/v3/extend/).

Learn more about it at [craftcms.com](https://craftcms.com).

Tech Specs
----------

[](#tech-specs)

Craft is written in PHP (7+), and built on the [Yii 2 framework](https://www.yiiframework.com/). It can connect to MySQL (5.5+) and PostgreSQL (9.5+) for content storage.

Installation
------------

[](#installation)

See the following documentation pages for help installing Craft 3:

- [Server Requirements](https://docs.craftcms.com/v3/requirements.html)
- [Installation Instructions](https://docs.craftcms.com/v3/installation.html)
- [Upgrading from Craft 2](https://docs.craftcms.com/v3/upgrade.html)

Popular Resources
-----------------

[](#popular-resources)

- **[Documentation](http://docs.craftcms.com/v3/)** – Read the official docs.
- **[Guides](https://craftcms.com/guides)** – Follow along with the official guides.
- **[\#craftcms](https://twitter.com/hashtag/craftcms)** – See the latest tweets about Craft.
- **[Discord](https://craftcms.com/discord)** – Meet the community.
- **[Stack Exchange](http://craftcms.stackexchange.com/)** – Get help and help others.
- **[CraftQuest](https://craftquest.io/)** – Watch unlimited video lessons and courses.
- **[Craft Link List](http://craftlinklist.com/)** – Stay in-the-know.
- **[nystudio107 Blog](https://nystudio107.com/blog)** – Learn Craft and modern web development.

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity78

Established project with proven stability

 Bus Factor1

Top contributor holds 98% 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 ~18 days

Recently: every ~5 days

Total

66

Last Release

1927d ago

Major Versions

1.0.15 → 2.0.02019-08-14

### Community

Maintainers

![](https://www.gravatar.com/avatar/f46909dc3dec700b35a415d2581a313e9b6c4dc63d977cbc28bfa61769edf53d?d=identicon)[davidhellmann](/maintainers/davidhellmann)

---

Top Contributors

[![khalwat](https://avatars.githubusercontent.com/u/7570798?v=4)](https://github.com/khalwat "khalwat (389 commits)")[![urbantrout](https://avatars.githubusercontent.com/u/10465787?v=4)](https://github.com/urbantrout "urbantrout (4 commits)")[![davidhellmann](https://avatars.githubusercontent.com/u/764292?v=4)](https://github.com/davidhellmann "davidhellmann (1 commits)")[![dennisfrank](https://avatars.githubusercontent.com/u/65968?v=4)](https://github.com/dennisfrank "dennisfrank (1 commits)")[![johnnyhawley](https://avatars.githubusercontent.com/u/1284258?v=4)](https://github.com/johnnyhawley "johnnyhawley (1 commits)")[![mildlygeeky](https://avatars.githubusercontent.com/u/273266?v=4)](https://github.com/mildlygeeky "mildlygeeky (1 commits)")

---

Tags

cmsprojectCraftcraftcms

### Embed Badge

![Health badge](/badges/davidhellmann-craft/health.svg)

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

###  Alternatives

[craftcms/craft

Craft CMS

202304.8k2](/packages/craftcms-craft)[nystudio107/craft

nystudio107 Craft 3 CMS scaffolding project

2923.5k](/packages/nystudio107-craft)

PHPackages © 2026

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