Hosted preference centre

Each person can have a private page where they choose which kinds of notification they get. They open it from a link the app gives them. Nobody signs in to Bolrach, and the page carries the app's name, logo and colour.

2. Make it yours

The first link an app issues comes with a starter centre in the app's name and three categories. account is always on, and activity and marketing start on, so issuing a link never stops a notification that already goes out. A custom version can replace it at any time:

PUT https://api.bolrach.com/push/v1/apps/YOUR_APP_ID/preference-centre
{ "idempotency_key": "centre-v2", "title": "Northwind notifications",
  "branding": { "company_name": "Northwind", "logo_url": "https://cdn.northwind.example/logo.svg", "primary_color": "#0C6446" },
  "categories": [
    { "key": "account",   "name": "Orders and account", "required": true, "default_opt_in": true, "channels": ["push","email"] },
    { "key": "marketing", "name": "Offers",              "default_opt_in": false,                "channels": ["push","email"] }
  ],
  "custom_domain": "preferences.northwind.example" }

Send each message with the matching category. A person who turned marketing off is skipped for marketing sends and still gets their order updates. With custom_domain, links point at your own host: point that host at us and tell support, and we issue its certificate.

3. Or build it into your app

The same controls ship as a Web Component and as SwiftUI, Android and Flutter views in the SDKs. Pass them the token from the link, as the hosted page does, and never store it.

Machine-readable: openapi.json. Console: bolrach.com/push.