Scott Holdings LLC
Design preview
GS
SaaS products Ledgerly Domains

Domains · Ledgerly

Connect custom domains for this app. Verification and TLS run through Cloudflare.

DomainStatus
app.ledgerly.comPrimaryActive · TLS issued
ledgerly.ioPending verification
try.ledgerly.comActive · TLS issued
About this page

The web addresses your product answers on. Add your own domain and it’s verified through Cloudflare with the security certificate issued automatically — no certificate files to manage, ever. The primary badge marks the address customers see.

Behind this page/apps/:saasAppId/domains · CanManageDomains

Retrieve

sp_Builder_ListAppDomains returns domains with primary flag and SaaSAppDomains.Status (Pending/Active/Inactive).

Save

Add → sp_Builder_AddDomain; primary → sp_Builder_SetPrimaryDomain; remove → sp_Builder_RemoveDomain. Verify runs the Cloudflare Custom Hostname check in the app tier and records the outcome via sp_Builder_RecordDomainVerification — hostname + certificate statuses combine into Pending → Active / Failed, stamping VerifiedUtc and LastCheckedUtc.

Success

  • Exactly one primary domain per app.
  • Cloudflare/provider status is normalized into Pending, Active, Failed, or Inactive.
  • An app can be Active while its domain remains Pending; the generated BuildWithHQ hostname remains usable.
  • Template workspaces and other prohibited app purposes fail server-side.

CLI handoff

Implement this scaffold from the structured contract, then remove hard-coded preview rows. The source of truth is CLI Handoff and admin-cli-manifest.json.

Page IDapp-domains
Route/apps/:saasAppId/domains
AccessCanManageDomains
Statusexternal-integration-required

Server-inject identity and scope values; never trust browser-supplied account, app, tenant, user, entitlement, price, or permission identifiers. Preserve the loading, empty, forbidden, failed, retrying, and completed states shown by the preview.