Skip to content

Plugins vs Service Overrides ​

Use plugins by default. Use service overrides only as a controlled escape hatch.

Related pages:

  • Add business logic as backend/frontend plugin parts.
  • Stay aligned with raclette's contracts (routes, schemas, widgets, generated config, live updates).
  • Better long-term maintainability and compatibility with framework evolution.

Service Overrides (Escape Hatch) ​

  • services/backend/* and services/frontend/* can fully replace matching core files.
  • Replacement is priority-based and carries migration risk.
  • Useful for temporary gaps where no extension point exists yet.

Rule of Thumb ​

  • New feature? Build a plugin.
  • Need low-level runtime behavior change not exposed by plugin contract? Consider override carefully.
  • If override is needed, keep scope minimal and document rationale in the app repo.
  • Missing core feature? Consider upstreaming it to racletteJS core.