Scott Holdings LLC
Design preview
GS
SaaS products Create

Create a SaaS product

Name the app, choose Blank or an exact published template version, and provision its isolated database trio.

Product name

Shown to your tenants.

Subdomain: ledgerly.buildwithhq.app
Starting point

Blank is available now. Template concepts stay disabled until an immutable published version verifies.

Available now
Catalog concepts · not installable
Field Service PlatformNot ready

field_service_platform · no published version

AI Groupware PlatformNot ready

groupware_platform · no published version

CRM & Sales PlatformNot ready

crm_sales_platform · no published version

AI Helpdesk PlatformNot ready

ai_helpdesk_platform · no published version

Franchise Command CenterNot ready

franchise_command_center · no published version

Online Training PlatformNot ready

online_training_platform · no published version

Three isolated databases will be provisioned: core, logs, AI/vector.

What gets created

Register app
instant

Assigns SaaSAppId + SaasAppIdInt.

Provision databases
~30s

Core, logs, AI/vector shards.

Create app shell
~20s

Blank shell, or exact pinned template-version members.

Ready

App appears in your portfolio.

About this page

Creates a product in two supported modes: Blank, which is always available, or an exact published immutable template-pack version. Registration first issues both app identifiers and routing/storage records; workers then create the core, logging, and AI databases, stamp identity, create the tenant root and bridges, activate the app, and build the starting shell.

Either way, what gets created is real infrastructure: its own three databases (day-to-day data, a tamper-proof activity log, and an AI memory), storage allocations, and a runtime — shared with no other product.

Behind this page/apps/new · CanCreateSaaS

Retrieve

Load pooled headroom plus template-pack versions that are actually installable: Status=Published, ArtifactSchemaVersion=2, valid manifest and member-set fingerprints, verified member payloads, and at least one Page member. Catalog-only packs render disabled. Blank is always enabled.

Save

Register the control-plane app first so SaaSAppId, SaasAppIdInt, domain, route, allocation and usage-meter IDs exist before workers start. Provision physical databases, stamp SaasAppIdentityMap, create a separate tenant AppAccountId and owner UserId, create log/AI bridges, then activate. For Blank, create the shell and empty Home page. For Template, install the exact TemplatePackVersionId—never “latest.”

Success

  • Control-plane and tenant IDs are never conflated.
  • App stays Provisioning until database identity, tenant root, security role, and bridges verify.
  • Custom domain can remain Pending after the app becomes Active.
  • BuilderOnly apps do not require a container.

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 IDcreate-saas-product
Route/apps/new
AccessCanCreateSaaS
Statusjourney-aligned-scaffold

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.