Create a free organization page
organizations · Proposed launch phase 2
Start from HomeReview as Registered user
User story
As a registered member, I want to create an organization page and become its initial owner so I can represent my business.
Draft requirements for review · Updated 2026-10-19
What the app should do
- Require a verified registered account before organization creation. Paid membership and HOL approval are not prerequisites.
- Create a distinct organization entity with a stable ID/public address, name, category/categories, description, logo/image, public website and business/service area.
- Create the initial owner assignment atomically with the organization. Keep the owner account separate from the organization; one person may manage multiple organizations.
- Offer existing-listing search before creation, with a claim route under D096 for an existing organization; handle duplicate/retry/failure without orphan pages or extra owners.
- Continue to the named organization workspace for self-publication of basic facts under D084. A free page is not a Commercial Partner, sponsorship or HOL endorsement.
- Personal Profile & settings remain accessible from a named organization workspace on the same account. Organization page editing stays within that organization, independent of personal region/address/payment information and free/paid Member status.
What to check in the demo
Follow these steps from the role’s landing page through navigation and feature checks.
Begin on the free Member Home. For a local example use Sign in → Try a demo account → Alex Morgan → Open account, then choose Member in the account/workspace menu if a remembered workspace opens. This is a genuine local account; no paid access is supplied.
Navigation from sign-in
- 01Open the fictional Registered user account through the connected sign-in service. Seeded Home review opens directly. Real HOL staff access and protected actions require an authenticator check.
- 02From verified Member Home use footer Explore → Organizations and search for the business first. Return Home, then open account/workspace menu → Create organization. The feature starts at Organization name and Page address.
Feature checks start here
Create a free organization page
Connected in dev; full acceptance remains In progress. A verified free account created a separate organization that stayed private until explicit publication. Duplicate/unverified/error browser cases remain open.
- 03Search the public Organizations directory before creating a duplicate. The creation form itself contains Organization name and Page address; it has no built-in search field.
- 04With a fresh fictional organization enter a unique name/address and select Create organization. Inspect the new owner workspace and Basic page; creating it does not publish all public facts.
- 05Use Save private draft and Publish basic page in D084 when ready. Duplicate addresses/unverified accounts/error cases need separate attempts; no commercial or HOL staff grant follows from creation.
Backend work for this feature
Backend development authorized · Dev only
What needs to be supported
- Persist organization ID/slug, name, categories, description, logo reference, website, broad business/service area, draft/public revisions and one initial owner assignment in a single idempotent transaction.
- Use one trusted account ID; keep email verification, professional labels, reader entitlement, organization-scoped access and internal HOL staff assignments independent.
- Validate actor, organization/person IDs, current access and expected revision at the trusted boundary. Remembered workspace, URL, fixture choice and client flags never grant permissions.
- Persist only the records needed for this outcome, including owner-scoped drafts and decision/assignment/consent audit where applicable. Keep private evidence and contacts out of public projections.
- Enforce the selected requirements above in database/API policies, with idempotent transitions, concurrent-update handling and denied cross-account writes.
- Use isolated local synthetic data only; no hosted migration, public service connection, real credentials/recipients, live payment or deployment.
- Use organization-scoped owner/manager records rather than the internal staff-assignment table. Require verified email for organization creation, claims, management and invite acceptance.
How to verify in dev
- Repeat and race the same create request; verify one organization/current owner, no orphan entity and no paid/staff/partner grant. An existing-listing match offers a claim instead of taking over its ID.
- Test owner, manager, unrelated account, unverified account and permitted HOL staff where relevant; deny self-grants and cross-organization access.
- Exercise success, interrupted/repeated requests, expiry/revocation and stale/concurrent updates; verify stable identity, correct public visibility and preserved unrelated account data.
Before this can work
- Begin on the free Member Home. For a local example use Sign in → Try a demo account → Alex Morgan → Open account, then choose Member in the account/workspace menu if a remembered workspace opens. This is a genuine local account; no paid access is supplied.
- Use a fictional registered member account and begin at its Home with its actual permitted context.
- Use actual local provider sessions and persisted state; record connected UI and direct permission checks separately.
- HOL-D085 · Create my account and verify my email
Creates the one registered account and verifies email before protected actions.
Connected stories
- HOL-D084 · Prepare and publish public organization profiles
Lets the current organization owner/manager publish permitted basic page facts.
- HOL-D092 · Choose and switch my workspace
Resolves and remembers only the account’s currently eligible workspaces.
- HOL-D094 · Invite and remove organization managers
Defines recipient-accepted manager invitations and owner-controlled team removal.
- HOL-D096 · Claim an existing organization page
Captures the applicant’s existing-page claim and visible result without early access.