Skip to content

Stack and Repo Tour

The JGLP website is a Laravel application with Statamic as the CMS. The public docs site in docs/ is separate from the production CMS and is built with Astro Starlight.

LayerTechnologyMain locations
PHP applicationLaravel 12app/, routes/, config/
CMSStatamic CMS 6 with the Eloquent driverconfig/statamic/, resources/blueprints/, database tables
Frontend templatesBlade-first viewsresources/views/
Interactive sectionsLivewireapp/Livewire/, resources/views/livewire/
Lightweight browser behaviourAlpine.jsBlade templates and compiled frontend assets
StylingTailwind CSS v4resources/css/, Vite build
Asset buildVite 7vite.config.js, package.json, pnpm-lock.yaml
Documentation siteAstro Starlightdocs/
PathPurpose
app/PageBuilder/Normalizes page-builder section payloads and resolves them to Blade or Livewire renderers.
app/Livewire/Sections/Dynamic sections such as forms, maps, events, post lists, and votes.
app/Mail/Mailables sent after public form submissions.
app/Services/Thin clients for Friendly Captcha, Google Calendar, and SmartVote.
config/statamic/sites.phpAll Statamic site handles, locales, languages, and public URLs.
config/page_builder.phpRegistry of page-builder section type names to Blade views or Livewire classes.
resources/blueprints/Statamic collection, global, taxonomy, navigation, form, user, and asset blueprints.
resources/forms/Statamic form definitions for stored submissions.
resources/views/entries/Entry templates for pages, posts, publications, archives, and legal pages.
resources/views/sections/Blade page-builder section views.
resources/views/mail/Markdown mail templates.
docs/Published documentation source for docs.jglp.ch.
code-docs/Internal engineering notes and migration material that are not published.

This project uses Statamic with the Eloquent driver. Content lives in the database, while blueprints and configuration live in Git. Do not treat content/collections/*.md as the source of truth for production content changes.

Developer changes normally go through Git. Editorial content changes normally go through the Statamic Control Panel or through reviewed, idempotent database/content scripts when that workflow is introduced.

Use the root package for the production site:

Terminal window
pnpm run dev
pnpm run build
./vendor/bin/pest
./vendor/bin/pint

Use the root convenience command to run the public documentation site locally:

Terminal window
npm run docs

That command delegates to the docs workspace:

Terminal window
pnpm --filter ./docs dev
pnpm --filter ./docs build