PHPackages                             nystudio107/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. nystudio107/craft

ActiveProject[Framework](/categories/framework)

nystudio107/craft
=================

nystudio107 Craft 3 CMS scaffolding project

2.5.13(1y ago)2923.5k83[1 issues](https://github.com/nystudio107/craft/issues)[1 PRs](https://github.com/nystudio107/craft/pulls)0BSDTwigCI failing

Since Nov 26Pushed 1y ago17 watchersCompare

[ Source](https://github.com/nystudio107/craft)[ Packagist](https://packagist.org/packages/nystudio107/craft)[ Docs](https://craftcms.com/)[ GitHub Sponsors](https://github.com/khalwat)[ RSS](/packages/nystudio107-craft/feed)WikiDiscussions craft-vite Synced 2mo ago

READMEChangelog (10)DependenciesVersions (118)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.

### Vite buildchain

[](#vite-buildchain)

This project uses a [Vite.js](https://vitejs.dev/) for the build system as per [Vite.js Next Generation Frontend Tooling + Craft CMS](https://nystudio107.com/blog/using-vite-js-next-generation-frontend-tooling-with-craft-cms), as opposed to the usual webpack buildchain.

Vite is *fast* ⚡

### The project

[](#the-project)

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)
- [Vite.js](https://vitejs.dev/) is used for the build system as per [Vite.js Next Generation Frontend Tooling + Craft CMS](https://nystudio107.com/blog/using-vite-js-next-generation-frontend-tooling-with-craft-cms)
- [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) using the [rollup-plugin-critical](https://github.com/nystudio107/rollup-plugin-critical)
- 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
- [Vite](https://nystudio107.com/plugins/vite) - for loading Vite-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](https://www.docker.com/products/docker-desktop) for your platform installed to run devMode in local development

Ensure no other local development environments are running that might have port conflicts, then:

- 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 `vite-dev-server` runs off of `http://localhost:3000`

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 Vite container is ready:

```
vite_1        |   vite v2.3.2 dev server running at:
vite_1        |
vite_1        |   > Local:    http://localhost:3000/
vite_1        |   > Network:  http://172.22.0.5:3000/
vite_1        |
vite_1        |   ready in 1573ms.

```

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 Vite buildchain
- `make clean` - removes the `cms/composer.lock` &amp; the entire `cms/vendor/` directory as well as the `buildchain/package-lock.json` &amp; the entire `buildchain/node_modules/` directory
- `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 nuke` - restarts the project from scratch by running `make clean` (above), then shuts down the Docker containers, removes any mounted volumes (including the database), and then rebuilds the containers from scratch
- `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
- `make ssh` - opens up a Unix shell inside the PHP container for the project

**Tip:** If you try a command like `make craft project-config/apply --force` you’ll see an error, because the shell thinks the `--force` flag should be applied to the `make` command. To side-step this, use the `--` (double-dash) to disable further option processing, like this: `make -- craft project-config/apply --force`

### Other notes

[](#other-notes)

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):

Roadmap
-------

[](#roadmap)

- Update to Tailwind CSS `^3.0.0`

.....

[![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

47

—

FairBetter than 94% of packages

Maintenance32

Infrequent updates — may be unmaintained

Popularity38

Limited adoption so far

Community26

Small or concentrated contributor base

Maturity80

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 96.4% 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 ~21 days

Recently: every ~196 days

Total

114

Last Release

687d ago

Major Versions

1.0.15 → 2.0.02019-08-14

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/7570798?v=4)[Andrew Welch](/maintainers/khalwat)[@khalwat](https://github.com/khalwat)

---

Top Contributors

[![khalwat](https://avatars.githubusercontent.com/u/7570798?v=4)](https://github.com/khalwat "khalwat (488 commits)")[![estebancastro](https://avatars.githubusercontent.com/u/2717274?v=4)](https://github.com/estebancastro "estebancastro (4 commits)")[![urbantrout](https://avatars.githubusercontent.com/u/10465787?v=4)](https://github.com/urbantrout "urbantrout (4 commits)")[![michtio](https://avatars.githubusercontent.com/u/5818021?v=4)](https://github.com/michtio "michtio (3 commits)")[![timkelty](https://avatars.githubusercontent.com/u/18329?v=4)](https://github.com/timkelty "timkelty (2 commits)")[![johnnyhawley](https://avatars.githubusercontent.com/u/1284258?v=4)](https://github.com/johnnyhawley "johnnyhawley (1 commits)")[![dennisfrank](https://avatars.githubusercontent.com/u/65968?v=4)](https://github.com/dennisfrank "dennisfrank (1 commits)")[![johnfmorton](https://avatars.githubusercontent.com/u/119723?v=4)](https://github.com/johnfmorton "johnfmorton (1 commits)")[![mildlygeeky](https://avatars.githubusercontent.com/u/273266?v=4)](https://github.com/mildlygeeky "mildlygeeky (1 commits)")[![davidhellmann](https://avatars.githubusercontent.com/u/764292?v=4)](https://github.com/davidhellmann "davidhellmann (1 commits)")

---

Tags

cmsprojectCraftcraftcms

### Embed Badge

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

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

###  Alternatives

[craftcms/craft

Craft CMS

202304.8k2](/packages/craftcms-craft)

PHPackages © 2026

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