Launch as a trusted internal staff CRM plus public quote form.
Start Here Today
Run the launch-host readiness pass: verify the deploy target and secrets, prove backup/restore, run read-only readiness checks, confirm session behavior, create approved staff access only after those gates, then complete the final real-browser smoke with representative Whistler data.
Markdown remains the source of truth. This dashboard summarizes the active orientation packet so the steward can see current state, next work, stale signals, and boundaries without reading every conceptual doc first.
Current Product Shape
What the active docs say exists now
Keep the first launch practical: CRM-owned operating records, in-app invoices, invoice CSV/manual accounting, and QuickBooks only if the real tenant flow is proven before cutover.
Hybrid Project Readiness
Directional build-area signals
Readiness signals are directional orientation cues, not exact delivery percentages.
Frontend
SolidGap: Cancel deletes incomplete, uninvoiced future visits from today onward except the anchor job.
Evidence: docs/current-state.md: | npm run build | Builds Vite client and bundles server/index.ts into dist/.
View evidence
- docs/current-state.md: | npm run build | Builds Vite client and bundles server/index.ts into dist/.
- docs/current-state.md: | Dashboard | GET /api/dashboard/stats plus /api/jobs drive dashboard cards and upcoming jobs.
- docs/current-state.md: | QuickBooks | Server OAuth, token refresh, customer find/create, invoice sync routes; UI hidden unless VITE_ENABLE_QUICKBOOKS=true.
Architecture
EmergingGap: Store: PostgreSQL via connect-pg-simple (server/sessionMiddleware.ts), table session (auto-created if missing).
Evidence: docs/current-state.md: Whistler Peak Cleaners can accept a trusted-staff-only model for the first launch if roles are deferred.
View evidence
- docs/current-state.md: Whistler Peak Cleaners can accept a trusted-staff-only model for the first launch if roles are deferred.
- docs/architecture.md: | UI | React 18, Vite, Wouter, TanStack Query, shadcn/Radix (client/src) |
Data / backend
SolidGap: Completed jobs can be pulled into invoices, edited invoice line items can be persisted, and invoice CSV export is available.
Evidence: docs/current-state.md: The core CRM is real and database-backed: staff auth, clients, cleaners, jobs, schedule views, recurring schedules, quote requ...
View evidence
- docs/current-state.md: The core CRM is real and database-backed: staff auth, clients, cleaners, jobs, schedule views, recurring schedules, quote requests, invoices, invoice CSV export, and optional Quic...
- docs/current-state.md: The primary remaining risk is launch-host readiness: target DB/schema/backup proof, production session behavior, staff-user creation, Jobber cutover rehearsal, and a final real-br...
- docs/current-state.md: Launch-host session behavior still needs SESSION_SECRET, session table, restart/session persistence, and approved staff login verification.
Validation
StrongGap: No source-backed gap was found for this area.
Evidence: docs/current-state.md: The primary remaining risk is launch-host readiness: target DB/schema/backup proof, production session behavior, staff-user cr...
View evidence
- docs/current-state.md: The primary remaining risk is launch-host readiness: target DB/schema/backup proof, production session behavior, staff-user creation, Jobber cutover rehearsal, and a final real-br...
- docs/current-state.md: | Fixed and browser/staging-verified | Invoice edit line items, job completion/status normalization, dependent-client hard-delete guard, job address default/custom/use-client-addr...
- docs/current-state.md: | Fixed or hardened but final host/browser check still required | Invoice CSV export is helper-tested and normal-Chromium-download verified, but still needs one deployed-host or r...
Docs / freshness
StrongGap: No source-backed gap was found for this area.
Evidence: docs/: All active orientation docs were found with current review dates.
View evidence
- docs/: All active orientation docs were found with current review dates.
Automation
StrongGap: No source-backed gap was found for this area.
Evidence: docs/current-state.md: | Recurring schedules | Recurrence rules support weekly, bi-weekly, every-4-weeks, monthly; create future jobs; list/regenerat...
View evidence
- docs/current-state.md: | Recurring schedules | Recurrence rules support weekly, bi-weekly, every-4-weeks, monthly; create future jobs; list/regenerate/cancel schedules.
- docs/current-state.md: | QuickBooks | Server OAuth, token refresh, customer find/create, invoice sync routes; UI hidden unless VITE_ENABLE_QUICKBOOKS=true.
- docs/session-brief.md: Keep the older file as the detailed restart source; this file exists so the local docview generator can find a predictable session brief.
Decision Radar
Important source-backed choices and missing information
Click a decision to inspect evidence; source Markdown remains authoritative.
| UI says "Next 30 days" while API calculates next calendar month for two cards.
The active orientation packet marks this as a decision, gap, or next-work signal.
Store: PostgreSQL via connect-pg-simple (server/sessionMiddleware.ts), table session (auto-...
The active orientation packet marks this as a decision, gap, or next-work signal.
Next Useful Work
Recommended steward orientation
Run the launch-host readiness pass: verify the deploy target and secrets, prove backup/restore, run read-only readiness checks, confirm session behavior, create approved staff access only after those gates, then complete the final real-browser smoke with representative Whistler data.
Do not run reset/import scripts against production.
Stale / Missing Signals
What should stay visible
Production/staging launch-host DB/schema/session readiness is not proven.
Backup/restore proof and rollback owner are not recorded for cutover.
Jobber cutover rehearsal and final exports are still outstanding.
Billing mode still needs sign-off: QuickBooks off with CSV/manual accounting, or fully proven QuickBooks before launch.
No automated browser regression suite exists yet.
npm audit --omit=dev --audit-level=high currently reports production dependency vulnerabilities, including high-severity findings in axios, drizzle-orm, express/path-to-regexp, glob, lodash, minimatch, and picomatch, plus lower-severity production findings such as express-session/on-headers. Triage before broader exposure, and avoid blind npm audit fix --force because the Drizzle fix is marked breaking.
- No stale or missing active docs detected by the generator.
Product / Design / Architecture
Direction to carry into work
Internal CRM screens should stay efficient, data-dense, and staff-oriented.
Public quote intake should feel simple, professional, and aligned with Peak Cleaners' premium local service brand.
Launch UI should favor clear operating workflows over broad SaaS polish.
React (Vite) + Express + Drizzle + Postgres (@neondatabase/serverless).
| Layer | Tech | |-------|------| | UI | React 18, Vite, Wouter, TanStack Query, shadcn/Radix (client/src) | | API | Express (server/index.ts, server/routes.ts) | | DB | Drizzle + @neondatabase/serverless (server/db.ts, shared/schema.ts) | | OAuth | QuickBooks (server/quickbooks.ts) |
Validation
Checks named by the source docs
- Launch-target checks, only with the intended environment selected:
- Run the SELECT-only --read-db mode only when non-production is confirmed or production inspection is explicitly approved.
These checks prove structure and behavior only when freshly run. They do not prove source docs are current.
Source Map
Files behind this dashboard
Repo overview, commands, and documentation entry point.
Found - reviewed nullWhat exists now, what works, what is incomplete, and stale signals.
Found - reviewed 2026-05-22Recently completed work, recommended next moves, and work to avoid.
Found - reviewed 2026-05-22Product north star, current product shape, and roadmap posture.
Found - reviewed 2026-05-22Experience principles, visual direction, and interface guardrails.
Found - reviewed 2026-05-22Stack, app structure, data model, boundaries, and technical assumptions.
Found - reviewed 2026-05-22Validation commands, QA expectations, and evidence requirements.
Found - reviewed 2026-05-22Compact restart context, immediate next move, caveats, and reminders.
Found - reviewed 2026-05-22