Launchpad is a client portal for website launches. It gives project owners and clients one shared place for onboarding, asset collection, staging feedback, launch checks, and final approval.
- Manages multiple active and archived client projects.
- Tracks launch readiness and identifies the next blocker.
- Collects onboarding answers, written content, and secure links.
- Keeps staging-page feedback and comments in project-scoped threads.
- Records asset reviews, launch tasks, and final client approval.
- Gives invited clients access only to their assigned project.
- Updates both sides in real time through the DeepSpace SDK.
- Sign in and select New project.
- Choose a project template, enter the client details, and set a target launch date.
- Open the project and use Request asset to add anything the client needs to provide.
- Select Invite client, enter the client's exact sign-in email, and send them the generated secure invitation link.
- Review onboarding responses and submitted assets. Accept an item or request a revision with an explanation.
- Add staging-page URLs and create feedback threads. Mark feedback as blocking when it must be resolved before launch.
- Complete the launch checklist. The dashboard continuously recalculates readiness and highlights the next requirement.
- Ask the client for final approval once all non-approval requirements are complete.
Use Mark not needed when a requested asset is no longer required. This preserves its history while excluding it from launch readiness.
- Open the invitation link and sign in with the exact email address used by the project owner.
- Complete the onboarding questions and save a draft when needed.
- Submit requested written responses or HTTPS links. Items that need changes can be resubmitted after review.
- Open staging links, leave feedback, and continue the conversation in the associated thread.
- Review the launch checklist and provide final approval when the project is ready.
Clients are routed directly to their project portal and cannot access the owner dashboard or unrelated projects.
Private file uploads require a DeepSpace Admin plan that supports custom R2 bindings. Until that is enabled, clients should send files through an existing secure channel and the owner can mark the corresponding request as not needed.
Never paste passwords, API tokens, or other credentials into project notes. Grant access through the vendor's own invitation controls or a password manager instead.
Requirements:
- Node.js 22.15+, 24, or 26
- npm
- A DeepSpace account
Install dependencies and authenticate:
npm install
npx deepspace auth loginStart the local app:
npm run devThen open http://localhost:5173.
Local secrets belong in .dev.vars, which is ignored by Git. Do not commit
credentials or production secrets.
npm run type-check
npm run lint
npm run test:unit
npm run buildThe unit suite currently covers the launch-domain calculations and server actions. Multi-user changes should also be tested manually with separate owner and client accounts.
This project uses the DeepSpace cloud repository as its Git remote (space).
Commit changes before deploying:
git add .
git commit -m "describe your change"
npx deepspace deployUseful operational commands:
npx deepspace activity
npx deepspace releases
npx deepspace app usageDeployments are served from https://launchpad.app.space.
src/pages/ Route-driven pages
src/components/ Reusable application UI
src/actions/ Server actions and workflow rules
src/schemas/ DeepSpace record schemas
src/domain/launchpad.ts Domain types and readiness calculations
worker.ts Cloudflare Worker entry point
wrangler.toml App identity and runtime bindings
- React 19 and TypeScript
- DeepSpace real-time records, authentication, and RBAC
- Cloudflare Workers and Durable Objects
- Tailwind CSS
- Vite and Vitest

