Skip to content

Wayne State's app starters

Sourdough

Feed it and it grows.

One command makes a new Wayne State app with the stack already wired in. SESAME signs people in, HELMET sets the runtime baseline, PROCTOR checks the code, WayneUI draws the page, and a Citadel release script ships it. One PHP command, so it bakes the same on Windows, macOS and Linux.

The whole recipe

composer global require waynestate/sourdough
sourdough new my-app

Start baking See the five loaves

Sourdough mark: a starter jar whose starter has risen into a dome, well above the gold band that marks where it began

Hungry. It has not been fed yet today.

Proofing log

The proof

What goes into the tub when you run sourdough new.

A tub of dough rises past its gold starting band, then is turned out and divided into five loaves: raw PHP, raw PHP with Vue, Laravel with Blade, Laravel with Blade and Vue islands, and Laravel with Inertia and Vue. 1× 2× raw raw + vue blade blade + islands inertia
  1. 08:00 Mix. sourdough new picks the shape: raw PHP, or Laravel, with or without Vue.
  2. 08:20 Flour: WayneUI. The interface, from WayneUI's standalone PHP path.
  3. 08:40 Water: SESAME. Sign-in. A fake driver locally, CAS in production.
  4. 09:00 Salt: HELMET. Security headers, a hardened session, and /up for the load balancer.
  5. 10:30 Levain: PROCTOR. The checks, with PREFLIGHT's CI components and a Citadel release script that runs them.
  6. 13:00 Doubled. Well past the gold band. A label goes on: .sourdough/manifest.json.
  7. 14:00 Divide and shape. One starter, five loaves.

On the cooling rack

Five loaves, one starter

Every shape a Wayne State app can take. The raw PHP boule is out of the oven in 0.1; the other four are still proofing. Score a loaf to see what's baked in.

Country boule

Raw PHP

Raw PHP with WayneUI's standalone path. No framework, no build.

Out of the oven · 0.1

sourdough new my-app --raw

The crumb

  • public/index.php HELMET boots first, then SESAME signs you in
  • composer.json helmet and sesame, with proctor for dev
  • .gitlab-ci.yml PREFLIGHT components: PROCTOR, tests on PHP 8.3 to 8.5, audit
  • deployments/release.sh and release.ps1 the Citadel release script
  • .env.example and README.md seeded: yours from day one
  • .sourdough/manifest.json the label on the jar

Bâtard

Raw PHP + Vue

A Vue single-page app over JSON, on raw PHP.

Coming soon

The crumb

Cut too early: still dough in the middle. The bake lands in a later release.

Baguette

Laravel + Blade

The classic Wayne State shape: Laravel with Blade views.

Coming soon

The crumb

Planned on Laravel's own installer, with the same SESAME, HELMET, PROCTOR and WayneUI wired in. Still proofing.

Seeded loaf

Laravel + Blade + Vue islands

Blade pages with Vue islands, like seeds in the crust.

Coming soon

The crumb

The seeds are counted, the oven isn't hot yet. Coming in a later release.

Tin loaf

Laravel + Inertia/Vue

Inertia and Vue: the whole app baked in one tin.

Coming soon

The crumb

Want this one already baked? WELD is the Inertia/Vue loaf, finished and sliced: composer create-project waynestate/weld my-app.

Not sure yet? sourdough new my-app --dry-run prints the plan and writes nothing. It works with any shape's flags, so you can read a loaf's plan before it bakes.

Recipe card No. 1

What's baked in

Baker's percentages, roughly. The parts are libraries, so they update with composer update; only the glue lives in the template.

The parts of the stack in every Sourdough app, as ingredients
IngredientPartWhat it does in your app
100% Flour WayneUI The interface: WayneUI's standalone PHP file, fetched once into public/.
75% Water SESAME Sign-in. The fake driver in development; the cas driver in production, with SESAME_CAS_URL and SESAME_SERVICE_URL.
2% Salt HELMET The runtime baseline: security headers, session cookie flags, trusted proxies from HELMET_PROXIES, and /up answering 200 ok.
20% Levain PROCTOR The checks. The release script runs vendor/bin/proctor check before anything ships.
1 Oven PREFLIGHT CI from .gitlab-ci.yml: PROCTOR, tests on PHP 8.3, 8.4 and 8.5, and a Composer audit.
1 Basket Release script deployments/release.sh runs on Citadel at release time; release.ps1 is its Windows twin. Off Citadel, the same env vars work on OpenShift, Coolify or raw Docker.

Bake at php -S localhost:8000 -t public until golden.

Pinned above the bench

Feeding schedule

A starter you never feed goes flat. Every app Sourdough makes carries .sourdough/manifest.json: the Sourdough version, the template, the answers you chose, and a sha256 of every file. It's how the starter remembers what went into the loaf.

  1. Bake day

    sourdough new my-app

    Makes the app and writes the manifest. Commit it: it's the record that keeps feeding honest.

  2. Every day, in CI

    sourdough manifest --check

    Is it still alive? Lists every managed file that drifted from the manifest.

    0
    clean
    1
    a managed file changed or is missing
    2
    no manifest, or no --check
  3. Feeding

    sourdough feed coming soon

    Brings template updates into your app without clobbering what you changed.

Managed we keep feeding these

  • public/index.php
  • composer.json
  • .gitlab-ci.yml
  • deployments/
  • .gitattributes, .gitignore

Seeded written once, yours now

  • .env.example
  • README.md

Seeded files are never reported. They're yours to knead.

Quick start

Your first loaf

Sourdough is one PHP command, so the steps match on every system; only the shell changes. You need PHP 8.3 or newer and Composer.

PowerShell

# 1. Get the starter
composer global require waynestate/sourdough
# 2. Bake the app
sourdough new my-app
cd my-app
# 3. Fetch WayneUI's standalone file once
curl.exe -o public/wayne-ui.php https://git.wayne.edu/enterprise-apps/wayne-ui/-/raw/main/php/standalone/wayne-ui.php
# 4. Install and serve
composer install
php -S localhost:8000 -t public

sourdough not found? Add the folder that composer global config bin-dir --absolute prints to your PATH. Then open http://localhost:8000: locally the app signs in with SESAME's fake driver.

The rest of the bakery

Same kitchen, many ovens

Sourdough is one shelf in Wayne State's app stack. WELD is its sibling: the same parts, already baked.