PHPackages                             sympress/starter - 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. [Testing &amp; Quality](/categories/testing)
4. /
5. sympress/starter

ActiveProject[Testing &amp; Quality](/categories/testing)

sympress/starter
================

SymPress Starter for WordPress projects

10PHP

Since Jun 13Pushed todayCompare

[ Source](https://github.com/SymPress/starter)[ Packagist](https://packagist.org/packages/sympress/starter)[ RSS](/packages/sympress-starter/feed)WikiDiscussions main Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

SymPress Starter
================

[](#sympress-starter)

Composer project starter and GitHub template for new WordPress websites in the SymPress ecosystem. The starter ships with a DDEV-ready local environment, Composer-managed WordPress core, a small base MU plugin package, SymPress kernel bootstrapping, and default quality tooling.

What is included
----------------

[](#what-is-included)

- WordPress generated into `public/wp` with content in `public/wp-content`
- SymPress kernel, Monolog bundle, WP-CLI console, and optional profiler
- Base MU plugins in `packages/base-mu-plugins`
- DDEV configuration for PHP 8.5, MariaDB 11.8, and nginx-fpm
- WPStarter orchestration for first install and repeatable local setup
- PHPCS, PHPStan, PHPUnit, Composer audit, Dependabot/Renovate, and DDEV smoke-test wiring

Requirements
------------

[](#requirements)

- Docker or a compatible container runtime
- [DDEV](https://ddev.com/)
- Git
- PHP 8.5 and Composer 2 for creating and bootstrapping the project

Project dependencies are installed inside DDEV. Host PHP/Composer are only needed for `composer create-project` and the lightweight `bin/console setup` bootstrap command.

Creating Projects
-----------------

[](#creating-projects)

Create a new SymPress website project:

```
composer create-project sympress/starter my_project_directory --no-install
cd my_project_directory
```

Use a specific development line:

```
composer create-project sympress/starter:"1.0.x-dev" my_project_directory --no-install
cd my_project_directory
```

Until the package is published on Packagist, use the repository explicitly:

```
composer create-project sympress/starter my_project_directory --no-install \
  --repository='{"type":"vcs","url":"https://github.com/sympress/starter"}'
cd my_project_directory
```

Configure the local project name:

```
bin/console setup my-project
```

`bin/console` is the single public command surface for the starter. The starter commands work before `vendor/autoload.php` exists, so they can be used immediately after `composer create-project --no-install`.

Local setup
-----------

[](#local-setup)

`bin/console setup` creates `.env`, updates the DDEV URL settings, starts DDEV, and installs dependencies inside the container.

The starter uses DDEV's `ddev.site` URLs by default so first setup works without editing `/etc/hosts`.

Manual setup is also possible:

```
cp .env.example .env
ddev config --project-name=my-project --project-tld=ddev.site --project-type=php --docroot=public --webserver-type=nginx-fpm
ddev start
ddev composer install
```

WPStarter runs through Composer and creates the generated WordPress files/configuration. On a fresh database it installs WordPress with these development credentials unless overridden via environment variables:

- Username: `admin`
- Password: generated during `bin/console setup` or set through `WP_ADMIN_PASSWORD`

WPStarter is intentionally part of the Composer install/update flow because it installs, syncs, and regenerates the WordPress project files and plugin/theme layout.

Open the site:

```
ddev launch
```

Admin URL:

```
https://my-project.ddev.site/wp-admin/

```

Common commands
---------------

[](#common-commands)

```
ddev start
ddev stop
ddev restart
ddev composer install
ddev composer update
ddev composer qa
ddev composer cs
ddev composer static-analysis
ddev composer test
ddev composer audit
ddev exec wp --info
ddev exec wp db check
bin/console starter:help
bin/console setup my-project
bin/console check
bin/console doctor
bin/console perf
bin/console diagnose-login
bin/console reset --yes my-project
```

Optional Make targets are available when `make` is installed:

```
make setup PROJECT=my-project
make check
make doctor
make perf
make qa
make test
make audit
```

Use the login diagnostic when local admin redirects or cookies do not match the expected project URL:

```
bin/console diagnose-login
bin/console diagnose-login --env-file=.env.example
```

Project structure
-----------------

[](#project-structure)

```
.
├── .ddev/                     DDEV local environment
├── bin/console                Single starter command surface
├── config/                    SymPress and WordPress configuration
├── dev-ops/                   WPStarter and server support files
├── packages/base-mu-plugins/  Starter MU plugin package
├── public/                    Generated WordPress webroot, ignored by Git
├── composer.json              Root project dependencies
└── README.md

```

Documentation
-------------

[](#documentation)

- [Installation](docs/installation.md)
- [Development tools](docs/development.md)
- [Environment configuration](docs/environment.md)
- [Starter notes](docs/starter.md)
- [Customization](docs/customization.md)
- [Enterprise readiness](docs/enterprise.md)
- [Release process](docs/release.md)
- [Security policy](SECURITY.md)
- [Changelog](CHANGELOG.md)

License
-------

[](#license)

GPL-2.0-or-later. See [LICENSE](LICENSE).

###  Health Score

20

—

LowBetter than 13% of packages

Maintenance65

Regular maintenance activity

Popularity2

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

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://avatars.githubusercontent.com/u/53712359?v=4)[Brian Schäffner](/maintainers/brianvarskonst)[@brianvarskonst](https://github.com/brianvarskonst)

---

Tags

composercomposer-projectddevgithub-templatemu-pluginsphpphpcsphpstanphpunitproject-templatestarter-templatesymfonywordpresswordpress-developmentwordpress-starterwp-cliwpstarter

### Embed Badge

![Health badge](/badges/sympress-starter/health.svg)

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

###  Alternatives

[szepeviktor/phpstan-wordpress

WordPress extensions for PHPStan

3309.4M1.3k](/packages/szepeviktor-phpstan-wordpress)[dms/phpunit-arraysubset-asserts

This package provides ArraySubset and related asserts once deprecated in PHPUnit 8

14228.7M340](/packages/dms-phpunit-arraysubset-asserts)[jasonmccreary/laravel-test-assertions

A set of helpful assertions when testing Laravel applications.

3524.1M38](/packages/jasonmccreary-laravel-test-assertions)[orchestra/workbench

Workbench Companion for Laravel Packages Development

8219.1M69](/packages/orchestra-workbench)[soyuka/contexts

Behatch contexts

282.2M21](/packages/soyuka-contexts)[roquie/laravel-dusk-select2

Select2.js support for the Laravel Dusk testing.

41356.2k5](/packages/roquie-laravel-dusk-select2)

PHPackages © 2026

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