One shared backend + an embeddable widget. Ingest bug/enhancement/fix reports from every app, separated by a per-project key.
Load it early in <head>, before your app bundle, so the capture hooks install first.
<script src="https://bugkit.example.com/widget.js"
data-project-key="pub_myapp_xxxxxxxx" defer></script>
BugKit.setContext({
appVersion: '2025.07.13',
screen: 'Meal Plan',
userId: staff.id,
tenant: propertyId,
correlationHeader: 'x-correlation-id', // widget reads the last value it saw
extra: { flags: [...] },
});
BugKit.open(); // open the modal programmatically
BugKit.identify(user); // convenience wrapper over setContext
The widget auto-captures URL, viewport, locale, console errors, and the last failed
requests. Your setContext() adds the correlation id, semantic screen,
version, and user/tenant. See the live demo.