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.

| Layer | Technology | Main locations | |---|---|---| | PHP application | Laravel 13 | app/, routes/, config/ | | CMS | Statamic CMS 6 with the Eloquent driver | config/statamic/, resources/blueprints/, database tables | | Frontend templates | Blade-first views | resources/views/ | | Interactive sections | Livewire | app/Livewire/, resources/views/livewire/ | | Lightweight browser behaviour | Alpine.js | Blade templates and compiled frontend assets | | Styling | Tailwind CSS v4 | resources/css/, Vite build | | Asset build | Vite 7 | vite.config.js, package.json, bun.lock | | Documentation site | Astro Starlight | docs/ |

| Path | Purpose | |---|---| | 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. | | resources/sites.yaml | All Statamic site handles, locales, languages, and public URLs. | | config/page_builder.php | Registry 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
bun run dev
bun run build
./vendor/bin/pest
./vendor/bin/pint

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

Terminal window
bun run docs

That command delegates to the docs workspace. The docs workspace can also be run directly:

Terminal window
bun run --cwd docs dev
bun run --cwd docs build