goldnead/statamic-preference-center
A Statamic addon that adds a preference center for managing visitor consent and privacy settings. Lets users review and toggle cookie categories or preferences from a single panel, with control over what is stored and how choices are applied across your site.
.env, which meant marketing operations could not tune link lifetime, throttling, sender identity, or visible blocks without a deploy and an engineer. The new Settings → Addon Settings section moves 15 values into the Control Panel, which is the difference between "compliance can sign off" and "compliance is blocked on a config PR." Treat this as the release that makes the addon operable by non-engineers..env file.audit.log_channel is deliberately not exposed, because a typo in a free-text log channel means an audit trail writing nowhere.routes.enabled, routes.prefix, routes.middleware, and the marketing block switch, because they are read at route-registration time — exposing them would produce half-effective settings that change nothing until the next deploy. That is the right call and worth citing when stakeholders ask why "everything" isn't in the UI.Consider it when:
goldnead/statamic-brand-context; the package is designed to sit inside that stack rather than stand alone.config/preference-center.php. That is a good fit for teams that want reviewable defaults plus a UI for the handful of values that genuinely change per brand.goldnead/statamic-brand-context 1.13+. Up to 1.12, on single-brand installs, settings from addons registered last never reached config, and a second save of the same section silently deleted the first save's override.Look elsewhere when:
delivery.mail_headers, delivery.ignored_query_parameters are intentionally out of the UI).For executives: This release converts an engineering-only addon into something marketing operations can run. Fifteen previously hard-coded values — link lifetime, session length, throttling, sender identity, which blocks appear on the page, audit reporting — are now in the Control Panel behind a new manage preference-center settings permission. No new screen to build or maintain, no new surface area: the package still has only its four public routes. The upside is autonomy and compliance readiness; the cost is a dependency bump to goldnead/statamic-brand-context 1.13+ and a one-time check that previously saved values survived.
For engineering: Settings store only the deviation; the defaults stay in config/preference-center.php. The permission ships unassigned — nobody sees the section until a role is granted it, so the rollout is opt-in by design. Registration-time settings are excluded on purpose, and the group descriptions say so, so operators are not offered switches that would take effect only after the next deploy. The remaining fix is contributor-only: the lint baseline recorded an env() occurrence count instead of naming a cause, so it went red on every addition; it now uses the rule's config-path parameter and the baseline entry disappears. No installation impact.
The one-line version: the security-critical parts of a preference center — signed links, throttling, enumeration resistance — are already built and now tunable by the people who own the list, without giving them a way to turn the endpoint into an open mail relay.
How can I help you explore Laravel packages today?