Preview live

Miller Landscaping Portal

A plain-English cockpit for status, deploys, provider resources, health, blockers, and safe changes.

Open preview

URLs

  • Preview: launchpad-preview.vercel.app
  • Production: not connected yet

Healthy

  • GitHub repo connected
  • Vercel preview deployed
  • Supabase database reachable
  • Sign-in page loads

Needs action

  • Connect production domain
  • Review production launch checklist
App health

Health: warning

Track uptime, critical routes, database/auth connectivity, and production URL health separately from launch smoke tests.

2 healthy · 1 warn · 0 failed

Production URL

unknown

Production URL is not connected yet.

Database and login

warning

Supabase health is simulated until live credentials are connected.

Critical routes

healthy

Mock route checks are passing.

Next action: Connect live providers and run production health checks after launch.

Ownership map

What exists, where it lives, and who owns it

Launchpad should keep the app understandable after launch: code, hosting, database, auth, env vars, deployments, and launch blockers in one plain-English map.

Preview URL

Code home

github · owned by customer

Connected

The app code lives in the customer's GitHub repo.

Technical detail

Repository created from AppAssist client portal template; default branch main.

https://github.com/customer/miller-landscaping-portal

Hosting project

vercel · owned by customer

Preview ready

The preview app runs from the customer's Vercel project.

Technical detail

Next.js project linked to the customer-owned GitHub repo.

https://vercel.com/customer/miller-landscaping-portal

Preview deployment

vercel · owned by customer

Preview ready

A non-production preview is available for smoke testing.

Technical detail

Preview deployment should pass route/auth/database smoke tests before launch-ready.

https://launchpad-preview.vercel.app

Database and login project

supabase · owned by customer

Connected

Customer data and sign-in live in the customer's Supabase project.

Technical detail

Supabase Auth + Postgres with generated SQL migrations and RLS policies.

https://supabase.com/dashboard/project/mock-supabase-project

Environment variables

internal · owned by customer

Needs action

Required Supabase keys must be synced to Vercel before a real preview can pass all checks.

Technical detail

NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, and optional SERVER_ONLY_SETUP_OR_SMOKE_TEST_SECRET metadata.

Next action: Connect Supabase and sync env vars to Vercel.

Production domain

vercel · owned by customer

Pending

Production domain setup is intentionally a launch checklist item in v1.

Technical detail

V1 does not automate domain purchase or registrar changes.

Next action: Review production launch checklist after preview smoke tests pass.
Ownership Passport

Handoff summary for Miller Landscaping Portal

A plain-English export of what exists, where it lives, who owns it, and what Launchpad can/cannot promise after launch.

exportable markdown

Provider summary

  • Code home: GitHub
  • Hosting: Vercel
  • Database and login: Supabase

Handoff notes

  • Customer owns code, hosting, database, auth, and data.
  • Launchpad can monitor and guide changes while connected.
  • If Launchpad is cancelled, provider resources remain in the customer accounts.
Copy/export markdown
# Ownership Passport: Miller Landscaping Portal

Generated: 2026-04-24T00:00:00.000Z

## Provider resources
- Code home: GitHub
- Hosting: Vercel
- Database and login: Supabase

## Backup/export visibility
- Data location: Customer-owned Supabase project
- Backups: unknown
- PITR: available_on_paid_plan
- Export: manual_available
- Restore: not_promised_v1
- Note: Your data lives in your Supabase account. Launchpad can show backup/export visibility, but V1 does not promise universal one-click database restore.

## Handoff notes
- Customer owns code, hosting, database, auth, and data.
- Launchpad can monitor and guide changes while connected.
- If Launchpad is cancelled, provider resources remain in the customer accounts.
Approval required

Resource Placement Review

Before creating provider resources, confirm exactly where GitHub, Vercel, and Supabase resources will be created and what costs may apply.

GitHub

  • Owner/org: customer-org
  • Repo: miller-landscaping-portal
  • Visibility: private
  • Cost note: Private repository may count against the customer's GitHub plan limits.

Vercel

  • Team/account: Customer Vercel Team
  • Cost note: Preview/production deployments may count toward the customer's Vercel usage.

Supabase

  • Organization: Customer Supabase Org
  • Region: us-east-1
  • Cost note: New Supabase project usage, auth, storage, backups, and PITR may require a paid Supabase plan.
Provider resource creation remains blocked until this placement is approved.
Generated app version

Template is current

Launchpad tracks which template version each customer app was generated from. Patches should create a Change Plan, deploy to preview, run smoke tests, and require approval before production.

current
Template
client-portal-next-supabase
Installed template
1.0.0
Installed app
1.0.0
Latest
1.0.0 / 1.0.0

Applied change history

  • Initial mock/template version registered.

Next action: No template patch needed yet.

Template patch Change Plan

Safe patch requires preview, smoke tests, and approval

Template version drift should become a bounded Change Plan, not arbitrary production editing. Schema, RLS, auth, and form-field changes stay blocked until staging/branching exists.

low

Affected files/config

  • Generated app template files
  • Template config/version metadata

Provider resources

  • GitHub branch/commit
  • Vercel preview deployment

Preview test plan

  • Create a safe patch branch
  • Deploy to Vercel preview
  • Run generated-app smoke tests
  • Generate Launch Readiness Report before production approval

Rollback plan

  • Keep current production deployment as last-known-good
  • Rollback code/hosting only in V1
  • Do not promise database rollback

Required approvals

  • Workspace owner approval before production deploy

Production eligibility

No patch needed.

DB workflow actions appear after opening a cockpit URL with workspaceId and workflowId query params.
Durable step ledger

Build console

Every provider action is resumable, idempotent, and auditable. This demo is running in mock provider mode.

draft_plan
  1. Approve launch plan
    plan.approve · internal
    waiting for approval
  2. Approve resource placement
    resource_placement.approve · internal
    pending
  3. Create code home
    github.create_repo · github
    pending
  4. Create database and login
    supabase.create_project · supabase
    pending
  5. Apply safe database schema
    supabase.apply_schema · supabase
    pending
  6. Create hosting project
    vercel.create_project · vercel
    pending
  7. Sync environment variables
    vercel.sync_env · vercel
    pending
  8. Deploy preview
    vercel.deploy_preview · vercel
    pending
  9. Run smoke tests
    smoke.run · internal
    pending
  10. Generate Launch Readiness Report
    readiness.generate_report · internal
    pending
Last-known-good deployment

Rollback not available yet

Rollback appears only after a previous production Vercel deployment passed smoke tests.

code/hosting only
Eligible
No
Database restore included
No
Deployment
No last-known-good deployment

Required post-rollback checks

  • Trigger Vercel rollback/restore where provider plan supports it
  • Run post-rollback smoke tests
  • Write audit event
  • Show recovery guidance if rollback is unavailable or fails
Free Planner

Your mock launch plan is complete

Mock mode proves the plan and launch cockpit without creating live provider resources. To launch for real, connect customer-owned accounts or book an assisted Managed Launch.

Book a Managed Launch

What the mock launch proved

  • The selected Business Launch Pack can produce a plain-English launch plan.
  • Launchpad can simulate the GitHub, Vercel, and Supabase setup steps without creating live resources.
  • The build console, smoke tests, Launch Readiness Report, Ownership Passport, and cockpit can be previewed before purchase.
  • The app remains customer-owned in the real launch path: customer GitHub, Vercel, and Supabase accounts.

What remains for real launch

  • Confirm provider account placement: GitHub owner/org, Vercel team, Supabase organization and region.
  • Connect customer-owned provider accounts or choose Assisted Managed Launch.
  • Create real resources, deploy a preview, run live smoke tests, and generate the final Launch Readiness Report.
  • Approve production launch and complete First Real User Activation before marking the app operational.

Provider accounts needed

Code homegithub

A GitHub account or organization where the app repo will live.

Hostingvercel

A Vercel account or team where preview and production deployments will run.

Database and loginsupabase

A Supabase organization where the database and auth project will be created.

Bring your provider accounts or ask AppAssist to guide the setup. Managed Launch covers scoping, provider setup help, preview review, production checklist, Ownership Passport, Launch Readiness Report, first-user invite setup, and 30-day support.

Smoke tests passed

Preview verification

Launchpad should only mark an app launch-ready after verification, not just because a deployment URL exists.

https://launchpad-preview.vercel.app

Homepage loads

passed

Homepage loads passed for https://launchpad-preview.vercel.app.

Login page loads

passed

Login page loads passed for https://launchpad-preview.vercel.app.

Protected dashboard redirects

passed

Protected dashboard redirects passed for https://launchpad-preview.vercel.app.

Supabase env vars present

passed

Supabase env vars present passed for https://launchpad-preview.vercel.app.

Database connection works

skipped

Skipped in mock mode until Supabase credentials are configured.

Safe request write works

skipped

Skipped in mock mode until Supabase credentials are configured.

Required tables exist

skipped

Skipped in mock mode until Supabase credentials are configured.

Launch Readiness Report

Not ready for production yet

Preview verification is partly simulated. Production remains gated until live provider connections, env sync, and smoke tests are verified.

not ready

Preview deployment

passed

A preview deployment is represented in the launch workflow.

Smoke tests

warning

Mock smoke tests passed; live Supabase checks still need real credentials.

RLS expectations

warning

Template declares RLS expectations; live proof tests are still needed.

Generated-app email

deferred

Branded generated-app transactional email is V2; show the limitation clearly.

Blockers

  • Live provider automation remains gated behind connector feasibility and OAuth token exchange.

Warnings

  • Production domain setup is a guided checklist item in V1.

Deferred setup

  • Generated-app branded transactional email
  • Custom domain automation
  • Database rollback/PITR workflow

Generated 2026-04-24T00:00:00Z

Production launch approval

Production approval required

Launchpad must require explicit approval after the Launch Readiness Report before production goes live. After approval, the app moves into First Real User Activation.

blocked
Production URL
Not launched yet
Approved by
Not approved
Approved at
Not approved

Production launch requires an explicit approval after Launch Readiness Report is ready.

First Real User Activation

Activation pending

Do not mark a production app operational until a real admin/customer/request/status loop is completed, manually verified, or skipped with an audit warning.

1/5 complete
Not operational yet — complete first real user activation or manually verify/skip with an audit event.

Invite first admin

completed

Completed 2026-04-24T00:00:00Z

Invite first customer/client/user

pending

Submit first real request

pending

Confirm admin status update

pending

Confirm customer can see the update

pending

Status: pending

2 open alert(s)

Alerts

Failures that need user or AppAssist action should create in-app/email alerts, not only build-console messages.

Environment variables need syncing

launch blocker · launch-checklist · open

warning

Supabase environment variables must be synced to Vercel before full preview verification can pass.

Next action: Connect Supabase and run the env sync workflow step.

2026-04-24T04:00:00Z

Provider scopes need review

provider scope · provider-connections · open

warning

One or more provider connections may need reconnecting if required scopes are missing.

Next action: Open Connections and reconnect the affected provider account.

2026-04-24T04:01:00Z

Activity stats

Lightweight business activity

Usage stats should be business-focused and non-sensitive: counts and timestamps, not customer content.

Active users
2
Requests submitted
3
Open requests
2
File uploads
1
Last login
2026-04-24T04:00:00Z
Last customer action
2026-04-24T03:45:00Z
Last admin action
2026-04-24T03:55:00Z
Last file upload
2026-04-24T03:40:00Z
Backup/export visibility

Know where the data lives

Your data lives in your Supabase account. Launchpad can show backup/export visibility, but V1 does not promise universal one-click database restore.

restore: not promised v1
Data location
Customer-owned Supabase project
Backups
unknown
PITR
available on paid plan
Export
manual available

Cost/provider implications

  • Supabase backups/PITR may require a paid provider plan.
  • Large exports or storage usage can affect provider billing.

Last checked: 2026-04-24T00:00:00.000Z

Weekly health digest

Paid-plan health summary

A weekly digest should summarize uptime, deployments, smoke tests, provider status, blockers, alerts, and notable activity without exposing raw customer content.

ready

Preview workflow is progressing, but production remains gated by provider/env/smoke/activation readiness.

Highlights

  • GitHub, Vercel, and Supabase resources are represented in the cockpit.
  • Smoke-test and launch-checklist gates are visible.
  • Audit log and alerts are available for action-needed states.

Risks

  • Live provider automation is still gated behind feasibility and OAuth token exchange.
  • Production operational status requires First Real User Activation.

Recommended actions

  • Resolve open alerts.
  • Run smoke tests after live env sync.
  • Complete Resource Placement Review before provider creation.

Period: 2026-04-17T00:00:00Z2026-04-24T00:00:00Z. Channels: in_app, email

Notification events

Launchpad email visibility

Alerts, health digests, workflow failures, and Managed Launch follow-ups should leave a durable delivery trail. Recipients are redacted; raw email provider payloads are not shown.

1 event(s)

[AppAssist Launchpad] Weekly health digest

email · weekly_health_digest · to ow***@example.com

skipped mock
Provider: mockCreated: 2026-04-24T00:00:00.000ZSent/skipped: 2026-04-24T00:00:00.000Z
Production gated

Launch checklist

Preview-first means production launch stays blocked until required provider, env, smoke-test, blocker, and approval gates are satisfied.

Provider accounts connected

Required for production

Passed

GitHub, Vercel, and Supabase are connected or simulated in mock mode.

Customer-owned code repo created

Required for production

Passed

The generated app has a customer-owned GitHub repo.

Environment variables synced

Required for production

Needs action

Supabase URL, anon key, and optional server-only setup/smoke-test metadata must be synced to Vercel before real preview verification can pass.

Next action: Connect Supabase and sync env vars to Vercel preview/production targets.

Preview deployed

Required for production

Passed

A preview URL exists for review and smoke testing.

Smoke tests passed

Required for production

Pending

Route checks can pass in mock mode, but database checks need configured Supabase credentials.

Next action: Run HTTP smoke tests after provider env vars are synced.

Production domain reviewed

Recommended / checklist

Pending

Domain setup is a guided checklist item in v1, not automated purchase/registrar control.

Next action: Choose whether to connect a custom domain before launch.

No unresolved launch blockers

Required for production

Needs action

Launchpad should not promote to production while required checklist items need action.

Next action: Resolve required needs-action and pending items.

Explicit production approval

Required for production

Blocked

Production launch always requires explicit approval after preview verification.

Next action: Approve production launch only after preview smoke tests pass.
Failure recovery

Plain-English failure messages

Every common provider, workflow, security, and smoke-test failure should tell the user what happened and what to do next.

10 mapped failures

GitHub needs another permission

githubNeeds action

The connected GitHub account does not currently allow Launchpad to create or update the app repo.

Next action: Reconnect GitHub and approve the required repo/template/content permissions.
Technical hint

Check GitHub App/OAuth scopes for repo:create, repo:contents:write, and repo:metadata:read.

Code: github_missing_scope

Repo name is already taken

githubNeeds action

A GitHub repo with this name already exists in the selected account or organization.

Next action: Choose a different repo name or let Launchpad attach to the existing repo after review.
Technical hint

Provider lookup found an existing owner/name before create-from-template.

Code: github_repo_exists

Preview build failed

vercelRetryable

Vercel received the app but could not finish building the preview.

Next action: Open the failed build step, review the plain-English diagnosis, then retry after Launchpad fixes the preview branch or env vars.
Technical hint

Read deployment build events/logs and map compiler/env errors into a repair step.

Code: vercel_build_failed

Hosting is missing configuration

vercelRetryable

The app is missing one or more environment variables in Vercel.

Next action: Let Launchpad sync the missing Supabase environment variables to Vercel and redeploy preview.
Technical hint

Common missing keys: NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY. Optional setup/smoke paths may use SERVER_ONLY_SETUP_OR_SMOKE_TEST_SECRET.

Code: vercel_missing_env

Supabase needs reconnecting

supabaseNeeds action

Launchpad can no longer access the customer's Supabase account with the saved connection.

Next action: Reconnect Supabase, then retry the failed database/login step.
Technical hint

Provider connection status should become needs_reconnect/expired.

Code: supabase_token_expired

Database permissions blocked the smoke test

supabaseRetryable

The database is reachable, but the app's permissions blocked the test request.

Next action: Let Launchpad repair the row-level security policy in preview, then rerun smoke tests.
Technical hint

Inspect RLS policies for generated customer/admin access and smoke-test service role behavior.

Code: supabase_rls_blocks_test

Homepage did not load

smoke testRetryable

The preview URL exists, but the homepage did not return a successful response.

Next action: Check the preview deployment status and retry smoke tests after the app responds successfully.
Technical hint

Expected HTTP 2xx from /.

Code: smoke_homepage_failed

Login page did not load

smoke testRetryable

The sign-in page is not available on the preview app.

Next action: Repair the generated auth route or Supabase auth configuration, then redeploy preview.
Technical hint

Expected HTTP 2xx from /login.

Code: smoke_login_failed

Approval required

workflowNeeds action

Launchpad is waiting for an explicit approval before continuing.

Next action: Review the requested action and approve it only if it matches what you want Launchpad to do.
Technical hint

workflow_steps.status = waiting_for_approval.

Code: workflow_waiting_for_approval

Platform token blocked

securityNeeds action

Launchpad blocked a live provisioning action because it was not using a customer-owned provider connection.

Next action: Connect the customer's provider account and retry with customer-owned token context.
Technical hint

tokenOwnership must be customer_owned for live customer infrastructure provisioning.

Code: platform_token_blocked

Diagnostic snapshot

Shareable launch state summary

A safe support snapshot should summarize provider state, resources, checklist gates, smoke tests, workflow waits, and recent audit events without exposing secrets.

needs action

Preview scaffolding is in place, but production remains gated until env sync, full smoke tests, blocker resolution, and explicit approval are complete.

Required gates passed
3/7
Smoke status
passed
Workflow state
draft_plan

Recommended next actions

  • Environment variables: Connect Supabase and sync env vars to Vercel.
  • Production domain: Review production launch checklist after preview smoke tests pass.
  • Environment variables synced: Connect Supabase and sync env vars to Vercel preview/production targets.
  • Smoke tests passed: Run HTTP smoke tests after provider env vars are synced.
  • Production domain reviewed: Choose whether to connect a custom domain before launch.
  • No unresolved launch blockers: Resolve required needs-action and pending items.
  • Explicit production approval: Approve production launch only after preview smoke tests pass.
  • Hosting is missing configuration: Let Launchpad sync the missing Supabase environment variables to Vercel and redeploy preview.
  • Approval required: Review the requested action and approve it only if it matches what you want Launchpad to do.

Recent audit events

  • succeeded: github.create_repo — Launchpad created the customer-owned GitHub repo in mock mode.
  • succeeded: vercel.deploy_preview — Launchpad deployed a non-production preview for verification.
  • waiting_for_user_action: smoke.run — Route checks can run, but database smoke checks need Supabase credentials and env vars.
  • succeeded: change.copy.requested — A safe copy change was prepared for preview-first review.
  • blocked: provider.live_action.blocked — A live provider action was blocked because customer-owned token context is required.
Export JSON preview
{
  "generatedAt": "2026-04-24T07:38:14.871Z",
  "appName": "Miller Landscaping Portal",
  "status": "needs_action",
  "summary": "Preview scaffolding is in place, but production remains gated until env sync, full smoke tests, blocker resolution, and explicit approval are complete.",
  "providerConnections": [
    {
      "provider": "github",
      "label": "Code home",
      "status": "mock_ready",
      "requiredScopes": [
        "repo:create",
        "repo:contents:write",
        "repo:metadata:read"
      ],
      "ownership": "customer_owned_required"
    },
    {
      "provider": "vercel",
      "label": "Hosting",
      "status": "mock_ready",
      "requiredScopes": [
        "project:create",
        "project:env:write",
        "deployment:read",
        "deployment:create"
      ],
      "ownership": "customer_owned_required"
    },
    {
      "provider": "supabase",
      "label": "Database and login",
      "status": "mock_ready",
      "requiredScopes": [
        "project:create",
        "project:read",
        "database:migrations:write",
        "auth:config:write"
      ],
      "ownership": "customer_owned_required"
    }
  ],
  "resources": [
    {
      "key": "github_repo",
      "label": "Code home",
      "provider": "github",
      "owner": "customer",
      "status": "connected"
    },
    {
      "key": "vercel_project",
      "label": "Hosting project",
      "provider": "vercel",
      "owner": "customer",
      "status": "preview_ready"
    },
    {
      "key": "vercel_preview_deployment",
      "label": "Preview deployment",
      "provider": "vercel",
      "owner": "customer",
      "status": "preview_ready"
    },
    {
      "key": "supabase_project",
      "label": "Database and login project",
      "provider": "supabase",
      "owner": "customer",
      "status": "connected"
    },
    {
      "key": "env_sync",
      "label": "Environment variables",
      "provider": "internal",
      "owner": "customer",
      "status": "needs_action",
      "nextAction": "Connect Supabase and sync env vars to Vercel."
    },
    {
      "key": "production_domain",
      "label": "Production domain",
      "provider": "vercel",
      "owner": "customer",
      "status": "pending",
      "nextAction": "Review production launch checklist after preview smoke tests pass."
    }
  ],
  "checklist": {
    "productionLaunchAllowed": false,
    "requiredPassed": 3,
    "requiredTotal": 7,
    "needsAction": [
      "Environment variables synced: Connect Supabase and sync env vars to Vercel preview/production targets.",
      "Smoke tests passed: Run HTTP smoke tests after provider env vars are synced.",
      "Production domain reviewed: Choose whether to connect a custom domain before launch.",
      "No unresolved launch blockers: Resolve required needs-action and pending items.",
      "Explicit production approval: Approve production launch only after preview smoke tests pass."
    ]
  },
  "smokeTests": {
    "status": "passed",
    "targetUrl": "https://launchpad-preview.vercel.app",
    "failedOrSkipped": [
      {
        "key": "database_connection",
        "status": "skipped",
        "message": "Skipped in mock mode until Supabase credentials are configured."
      },
      {
        "key": "safe_request_write",
        "status": "skipped",
        "message": "Skipped in mock mode until Supabase credentials are configured."
      },
      {
        "key": "required_tables",
        "status": "skipped",
        "message": "Skipped in mock mode until Supabase credentials are configured."
      }
    ]
  },
  "workflow": {
    "state": "draft_plan",
    "waitingSteps": [
      "plan.approve"
    ],
    "failedSteps": []
  },
  "recentAuditEvents": [
    {
      "category": "provider_action",
      "action": "github.create_repo",
      "result": "succeeded",
      "message": "Launchpad created the customer-owned GitHub repo in mock mode.",
      "createdAt": "2026-04-23T21:03:00Z"
    },
    {
      "category": "provider_action",
      "action": "vercel.deploy_preview",
      "result": "succeeded",
      "message": "Launchpad deployed a non-production preview for verification.",
      "createdAt": "2026-04-23T21:05:00Z"
    },
    {
      "category": "smoke_test",
      "action": "smoke.run",
      "result": "waiting_for_user_action",
      "message": "Route checks can run, but database smoke checks need Supabase credentials and env vars.",
      "createdAt": "2026-04-23T21:06:00Z"
    },
    {
      "category": "safe_change",
      "action": "change.copy.requested",
      "result": "succeeded",
      "message": "A safe copy change was prepared for preview-first review.",
      "createdAt": "2026-04-23T21:08:00Z"
    },
    {
      "category": "security",
      "action": "provider.live_action.blocked",
      "result": "blocked",
      "message": "A live provider action was blocked because customer-owned token context is required.",
      "createdAt": "2026-04-23T21:09:00Z"
    }
  ],
  "recommendedNextActions": [
    "Environment variables: Connect Supabase and sync env vars to Vercel.",
    "Production domain: Review production launch checklist after preview smoke tests pass.",
    "Environment variables synced: Connect Supabase and sync env vars to Vercel preview/production targets.",
    "Smoke tests passed: Run HTTP smoke tests after provider env vars are synced.",
    "Production domain reviewed: Choose whether to connect a custom domain before launch.",
    "No unresolved launch blockers: Resolve required needs-action and pending items.",
    "Explicit production approval: Approve production launch only after preview smoke tests pass.",
    "Hosting is missing configuration: Let Launchpad sync the missing Supabase environment variables to Vercel and redeploy preview.",
    "Approval required: Review the requested action and approve it only if it matches what you want Launchpad to do."
  ],
  "redactionNotice": "Diagnostic snapshots intentionally omit raw provider tokens, service-role keys, database passwords, and raw provider logs."
}

Diagnostic snapshots intentionally omit raw provider tokens, service-role keys, database passwords, and raw provider logs.

Support access

Assisted managed-launch consent

Workspace owners can grant AppAssist scoped, time-limited support access for managed launches. Support can see workflow state, provider status, blockers, reports, and redacted diagnostics — never raw secrets.

pending
Expires
Not granted yet
Consented by
Not granted
Raw secrets visible
No

Scopes

  • view status
  • run managed launch steps
  • retry failed steps
  • view safe diagnostics
  • contact customer

Allowed action types

  • View workflow state
  • Retry failed non-destructive steps
  • Guide provider setup
  • Send managed-launch next-action email

Workspace owner must grant scoped, time-limited consent before assisted managed-launch support can act.

Acceptance criteria

V1 readiness tracker

An honest map from the build spec acceptance criteria to current implementation state. Partial is acceptable during build, but it should always name the remaining gap.

Implementation score
62%
Done
3
Partial
10
Blocked
0
Not started
0

A non-technical user can create an AppAssist Launchpad account/workspace.

account workspace

partial
  • Dashboard/app shell exists
  • workspaces/workspace_members schema exists
  • DB-backed demo workspace seed exists
Gap: Real auth/workspace bootstrap is not wired yet.
Next: Add Launchpad auth/workspace bootstrap once the chosen auth provider and database are configured.

User can describe a client portal and receive a clear launch plan.

planning

done
  • New App Wizard screen
  • deterministic plan generator
  • Launch Plan UI
  • draft app/plan API boundary

User can connect or simulate GitHub, Vercel, and Supabase provider connections.

providers

partial
  • Connections UI
  • mock connect/reconnect/disconnect API
  • customer-owned connection guards
  • required scopes displayed
Gap: Live OAuth/integration flows are not implemented yet.
Next: Implement live GitHub App/OAuth first, then Vercel and Supabase approved flows.

Launchpad can create a GitHub repo from a template or demonstrate live-ready connector with mock fallback.

providers

partial
  • mock GitHub connector
  • live customer-owned token guard
  • generated template directory
  • provider resource recording path in workflow executor
Gap: Live GitHub create-from-template call is gated until OAuth/GitHub App token exchange is implemented.
Next: Wire GitHub App installation/user token exchange and idempotent create-from-template API call.

Launchpad can create/configure Supabase or demonstrate connector readiness with documented live path.

providers

partial
  • mock Supabase connector
  • Supabase integration docs
  • generated SQL migration with RLS
  • generated app /api/smoke endpoint
Gap: Live Supabase OAuth/Management API project creation and migration execution are not wired.
Next: Implement approved Supabase OAuth/Management API flow and migration runner.

Launchpad can create/configure Vercel project, set env vars, and deploy preview or demonstrate live-ready workflow with mock fallback.

providers

partial
  • mock Vercel connector
  • env metadata model
  • preview deployment resource model
  • smoke runner can verify preview URL
Gap: Live Vercel integration/project/env/deploy API calls are not wired.
Next: Implement customer-owned Vercel integration and idempotent project/env/deploy operations.

Workflow steps are durable, resumable, and visible in the build console.

workflow

partial
  • launch_workflows/workflow_steps schema
  • DB-backed workflow creation
  • worker-safe claim/run-next endpoint
  • Build Console UI
  • persisted workflow cockpit demo
Gap: Needs real database configuration and worker lease/abandoned-running-step handling.
Next: Configure DB, run migrations, then add worker leases/transactions around persisted step execution.

Smoke tests determine whether the app is preview live/launch ready.

verification

partial
  • smoke-test runner
  • generated app /api/smoke
  • persisted smoke_test_runs
  • Launch Checklist gates production approval
Gap: Smoke success now reaches smoke_tests_passed; final launch_ready still needs a first-class Launch Readiness Report step.
Next: Add launch_readiness_reports persistence and generate the report after smoke_tests_passed before setting launch_ready.

Audit log records user and provider actions.

operations

partial
  • audit_events schema
  • richer audit taxonomy/UI
  • workflow approval/run paths write audit rows
  • security-block demo event
Gap: All live connector actions need real audit writes once implemented.
Next: Centralize audit write helper and require it from every live connector/approval/smoke path.

Secrets are never displayed back to the user after creation.

security

partial
  • token vault encryption helper
  • token metadata validation
  • redaction helper
  • diagnostic snapshot redaction notice
  • write-only env metadata rule
Gap: Needs production-grade KMS/envelope encryption and audited secret write paths.
Next: Choose KMS/envelope strategy and replace dev-only vault helper with production implementation.

Operations cockpit clearly shows app status, provider resources, URLs, health, blockers, and recent changes.

operations

done
  • App Cockpit
  • ownership/resource map
  • Launch Checklist
  • Smoke Test panel
  • Audit Log
  • Diagnostic Snapshot
  • Failure Recovery panel

Safe structured change requests use preview-first workflow.

safe changes

partial
  • safe change types
  • Zod schemas
  • template config generator
  • safe change UI
  • preview-first docs
Gap: Change requests are not yet persisted or wired to branch/commit/preview deployment workflow.
Next: Persist change_requests and wire generated config changes into branch/commit/preview steps.

Generated app does not ship with unrestricted public database access.

template

done
  • Initial Supabase migration enables RLS
  • customer/admin policies
  • template static smoke checks required tables and RLS
Safe structured changes

Change requests Launchpad can safely understand

Updated v1 rule: post-production safe changes are config/copy/branding/navigation/status-label only. Schema/form-field/RLS/auth changes require staging or Supabase Branching first.

Safe immediately

Branding

safe immediate

Logo, colors, company name, and basic tone.

  1. Update config
  2. Deploy preview
  3. Run smoke tests
  4. Approve production

Copy

safe immediate

Homepage text, labels, empty states, and helper text.

  1. Commit content update
  2. Deploy preview
  3. Run smoke tests
  4. Approve production

Config-only status labels

safe immediate

Rename or add configured status labels without changing database schema.

  1. Update config only
  2. Deploy preview
  3. Run smoke tests
  4. Approve production

Navigation labels

safe immediate

Rename sections such as Jobs to Projects without changing routes or data model.

  1. Update config/copy
  2. Deploy preview
  3. Run smoke tests
  4. Approve production

Blocked until staging/branching exists

Form fields

staging required

Adding fields can require schema, validation, UI, RLS, and migration changes; blocked for production apps until staging/branching exists.

  1. Require Supabase Branching or staging project
  2. Review schema/RLS impact
  3. Test outside production
  4. Only then consider production approval

Schema changes

staging required

Database schema changes are staging-required and must not be tested directly against production Supabase.

  1. Create staging/branching strategy
  2. Run migration review
  3. Verify RLS
  4. Approve production only after preview/staging passes

RLS changes

staging required

Permission-policy changes are staging-required because they can expose or block customer data.

  1. Test with admin/customer/anonymous users
  2. Verify isolation proof
  3. Approve only after staging passes

Auth behavior

staging required

Invitation, login, and role behavior changes are staging-required and should not be applied directly to production.

  1. Test auth flows in staging
  2. Verify redirects/invitations/roles
  3. Approve only after staging passes
Audit log

Every action is traceable

Provider actions, approvals, smoke tests, safe changes, and security blocks should be understandable without reading raw logs.

7 events
Allplanningapprovalprovider actionworkflowsmoke testsafe changesecurity
launch_plan.generated
planning · Launchpad planner · internal
succeeded

Launchpad created a plain-English launch plan from the guided answers.

Audit detail

Generated deterministic pages, roles, data objects, provider actions, smoke tests, launch blockers, and safety gates.

launchpad · 2026-04-23T21:00:00Z

plan.approval_requested
approval · Launchpad approval gate · internal
waiting for approval

Approval is required before creating a GitHub repo, Supabase project, or Vercel project.

Audit detail

Plan-level approval gate blocks provider resource creation.

launchpad · 2026-04-23T21:01:00Z

github.create_repo
provider action · Launchpad GitHub connector · github
succeeded

Launchpad created the customer-owned GitHub repo in mock mode.

Resource: Miller Landscaping Portal repo

Audit detail

Live mode requires customer-owned tokenRef and required GitHub scopes.

{
  "tokenRef": "[redacted]",
  "mode": "mock"
}

launchpad · 2026-04-23T21:03:00Z

vercel.deploy_preview
provider action · Launchpad Vercel connector · vercel
succeeded

Launchpad deployed a non-production preview for verification.

Resource: Preview deployment

Audit detail

Preview-first gate remains required before production approval.

launchpad · 2026-04-23T21:05:00Z

smoke.run
smoke test · Launchpad verifier · internal
waiting for user action

Route checks can run, but database smoke checks need Supabase credentials and env vars.

Audit detail

DB checks remain skipped until NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, and the isolated Launchpad-side smoke path are configured.

launchpad · 2026-04-23T21:06:00Z

change.copy.requested
safe change · Workspace owner · internal
succeeded

A safe copy change was prepared for preview-first review.

Audit detail

Generated config update should be committed to a branch, preview deployed, smoke-tested, then approved for production.

user · 2026-04-23T21:08:00Z

provider.live_action.blocked
security · Provider safety guard · supabase
blocked

A live provider action was blocked because customer-owned token context is required.

Audit detail

Launchpad must not use AppAssist platform keys to provision customer infrastructure.

{
  "tokenOwnership": "appassist_platform"
}

launchpad · 2026-04-23T21:09:00Z