PHPackages                             xm/starter\_craft\_3 - 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. xm/starter\_craft\_3

ActiveProject[Framework](/categories/framework)

xm/starter\_craft\_3
====================

Starter for creating Craft 5 sites at XM Media

00[2 issues](https://github.com/xmmedia/starter_craft/issues)TwigCI failing

Since Apr 24Pushed 4d ago2 watchersCompare

[ Source](https://github.com/xmmedia/starter_craft)[ Packagist](https://packagist.org/packages/xm/starter_craft_3)[ RSS](/packages/xm-starter-craft-3/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependenciesVersions (5)Used By (0)

Craft CMS Starter
=================

[](#craft-cms-starter)

Used to create new projects using [Craft CMS](https://craftcms.com/) at [XM Media](https://www.xmmedia.com/).

Setting Up a New Site
---------------------

[](#setting-up-a-new-site)

1. Create a new project: ```
    composer create-project xm/starter_craft project-name --stability=dev --no-install --remove-vcs
    ```
2. Update `composer.json`: `name`, `license` (likely `proprietary`) and `description`
3. Update `package.json`: `name`, `version`, `git.url`, `license`, `private`, `script.dev-server`
4. Setup dev server:
    1. If using InterWorx, upload `setup_dev.sh` and run: `sh ./setup_dev.sh`
    2. Upload the files (exclude files that are OS dependent like `node_modules` &amp; `.env` or that are only for editing like `.idea` and `.git` and a lot of what's in `.gitignore`).
    3. [Install Composer](https://getcomposer.org/download/) (if not already installed)
    4. Install PHP packages/vendors: `php composer.phar install`
    5. Add `.env` (copy `.env.example` and update).
    6. Run `. ./node_setup.sh` (this will setup node &amp; install the JS packages – requires yarn to be installed).
    7. Run `yarn dev` or `yarn build` (for production) to compile JS &amp; CSS files.
    8. Give executable perms to bin dir: `chmod u+x craft`
    9. Ensure you have lando running.
    10. Within `lando ssh`, install craft: `./craft install/craft`
5. Remove or update the `LICENSE` file.
6. [Install Composer](https://getcomposer.org/download/) locally (if not installed globally).
7. Composer install &amp; update (locally): `composer install && composer update`
8. Run `yarn && yarn upgrade` locally.
9. Upload `composer.lock` and `yarn.lock` and on the server, run `php composer.phar install` and `. ./node_setup.sh` again.
10. Find and make changes near `@todo-craft` comments throughout the site. All changed files will need to uploaded to the server.
11. Create new favicons: [realfavicongenerator.net](https://realfavicongenerator.net)
12. Set the email Subject Text for contact form submissions in Settings &gt; Contact Form (under Plugins).
13. Delete starter files: `README.md` (or update) and `TEMPLATES.md`.
14. Update site name:
    - In Settings -&gt; General
    - In Settings -&gt; Sites
    - Globals -&gt; Site Information

**Dev site can be accessed at https://\[domain\]/**
Craft admin is located at `/admin`

System Requirements
-------------------

[](#system-requirements)

- PHP 8.5+
- MySQL 8.0
- Node 22
- [Yarn v4](https://yarnpkg.com/en/docs/install)

Commands
--------

[](#commands)

- Production JS/CSS build: `yarn build`
- Dev JS/CSS build: `yarn dev`
- Dev JS/CSS watch: `yarn watch` (files will not be versioned)
- Dev JS/CSS HMR server: `yarn dev-server` (see below)
- JS Tests ([Jest](https://jestjs.io/)): `yarn test:unit`
- E2E Tests ([Cypress](https://www.cypress.io/)): `yarn test:e2e`
- Linting:
    - JS ([ESLint](https://eslint.org/)): `yarn lint:js` or `yarn lint:js:fix`
    - CSS: `yarn lint:css` or `yarn lint:css:fix`
    - Twig ([twigcs](https://github.com/friendsoftwig/twigcs)): `lando composer lint:twig`
- PHP Tests ([PhpUnit](https://phpunit.de/)):
    - `composer test`
    - no memory limit `php -d memory_limit=-1 bin/simple-phpunit`
    - with coverage (HTML) `composer test:coverage`
- [PHP CS](https://cs.sensiolabs.org/): (must be installed first)
    - Dry run: `composer cs`
    - Fix: `composer cs:fix`
- PHP Static Analysis ([PHPStan](https://github.com/phpstan/phpstan)): `composer static`

Incorporated Libraries &amp; Tools
----------------------------------

[](#incorporated-libraries--tools)

- Frontend – full list of dependencies can be found in [package.json](https://github.com/xmmedia/starter_craft/blob/master/package.json)
    - [Vue 3](https://vuejs.org/) – frontend framework
    - [Vite](https://vitejs.dev/) – frontend build tool and dev server with HMR
    - [Tailwind CSS 4](https://tailwindcss.com/) – utility-first styling framework
        - [@tailwindcss/typography](https://tailwindcss.com/docs/typography-plugin) – prose styling plugin
    - [PostCSS](https://github.com/postcss/postcss) – transforms CSS
        - [postcss-env-function](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-env-function) – environment variable support in CSS
        - [postcss-nesting](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-nesting) – CSS nesting support
    - [ESLint](https://eslint.org/) – checks JS for conventions &amp; errors
    - [Stylelint](https://stylelint.io/) – checks CSS for conventions &amp; errors
    - [SVGO](https://github.com/svg/svgo) – optimizes SVG files
- Backend – full list of dependencies can be found in [composer.json](https://github.com/xmmedia/starter_craft/blob/master/composer.json)
    - [Craft CMS 5](https://craftcms.com/) – CMS framework
    - [Twig](https://twig.symfony.com/) – server-side templating language
    - [CKEditor](https://github.com/craftcms/ckeditor) – rich text editor plugin for Craft
    - [Contact Form](https://github.com/craftcms/contact-form) – contact form plugin for Craft
    - [Contact Form Honeypot](https://github.com/craftcms/contact-form-honeypot) – spam protection for contact forms
    - [Contact Form Extensions](https://github.com/hybridinteractive/craft-contact-form-extensions) – additional contact form features
    - [SEO (Ether)](https://github.com/ethercreative/seo) – SEO plugin for Craft
    - [Field Manager (Verbb)](https://verbb.io/craft-plugins/field-manager) – field management plugin for Craft
    - [oEmbed](https://github.com/wrav/oembed) – oEmbed support for Craft
    - [Craft Vite](https://nystudio107.com/docs/vite/) – Vite integration for Craft CMS
    - [PHPStan](https://github.com/phpstan/phpstan) – static analysis of PHP
- [GitLab](https://gitlab.com/) – CI/CD and deployment
- Dev Tools
    - [Vue Devtools](https://github.com/vuejs/vue-devtools)

Updating PHP version
--------------------

[](#updating-php-version)

1. Change version in `composer.json`.
2. Update the PHP version in the following files:
    - `.lando.yml` – `config.php` and `services.appserver.type` (if the Symfony recipe doesn't support the new version, you must override the appserver service with `type: php:X.X`)
    - `setup_dev.sh` – 4 places
    - `setup_prod.sh` – 4 places
    - `.gitlab-ci.yml` – 3 places (default image, `SERVER_PHP_PATH`, and `php-fpm` service name)
    - `.php-cs-fixer.dist.php` – add the new version or update the `@PHP8#Migration` version to match the current version.
3. Run `lando rebuild` to rebuild the Lando container with the new PHP version.
4. Run `lando composer update` or `composer update` to update the PHP dependencies. If running locally without Lando, ensure your local PHP version matches the new version.
5. Update version in `README.md` and `CLAUDE.md`.

consider:

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance65

Regular maintenance activity

Popularity0

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity16

Early-stage or recently created project

 Bus Factor1

Top contributor holds 77.3% 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.

### Community

Maintainers

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

---

Top Contributors

[![darrylhein](https://avatars.githubusercontent.com/u/376976?v=4)](https://github.com/darrylhein "darrylhein (751 commits)")[![hsteuernagel](https://avatars.githubusercontent.com/u/9735609?v=4)](https://github.com/hsteuernagel "hsteuernagel (185 commits)")[![meggy236](https://avatars.githubusercontent.com/u/150461169?v=4)](https://github.com/meggy236 "meggy236 (35 commits)")

### Embed Badge

![Health badge](/badges/xm-starter-craft-3/health.svg)

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

###  Alternatives

[laravel/telescope

An elegant debug assistant for the Laravel framework.

5.2k67.8M192](/packages/laravel-telescope)[spiral/roadrunner

RoadRunner: High-performance PHP application server and process manager written in Go and powered with plugins

8.4k12.2M84](/packages/spiral-roadrunner)[nolimits4web/swiper

Most modern mobile touch slider and framework with hardware accelerated transitions

41.8k177.2k1](/packages/nolimits4web-swiper)[laravel/dusk

Laravel Dusk provides simple end-to-end testing and browser automation.

1.9k36.7M259](/packages/laravel-dusk)[laravel/prompts

Add beautiful and user-friendly forms to your command-line applications.

708181.8M596](/packages/laravel-prompts)[cakephp/chronos

A simple API extension for DateTime.

1.4k47.7M121](/packages/cakephp-chronos)

PHPackages © 2026

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