3.5 KiB
RentalDriveGo Web
Phase 11 production foundation for the multilingual RentalDriveGo marketing website.
Implemented scope
- English, French, and Arabic locale-prefixed routes
- server-rendered
langand document-level direction - immutable Phase 9 tokens plus a documented component-facing token layer
- light, dark, and system themes
- nonce-based CSP-compatible pre-paint theme bootstrap
- CSS-only system-theme fallback
- locale-aware formatters and bidi primitives
- responsive layout primitives
- accessible sticky header and native-dialog mobile navigation
- localized footer
- loading, error, not-found, and pending-destination shells
- localized canonical, reciprocal
hreflang, Open Graph, and robots foundations - unit, browser, accessibility, responsive, and visual test definitions
The complete production homepage, demo form, CRM, analytics, pricing, customer evidence, final legal content, login integration, final logo, and external destinations remain outside this phase or explicitly gated.
Runtime
- Node.js
24.17.0 - pnpm
11.9.0 - Next.js
16.2.9 - React
19.2.7
Use the exact versions in .node-version, .nvmrc, package.json, and pnpm-lock.yaml.
Local setup
corepack enable
corepack prepare pnpm@11.9.0 --activate
pnpm install --frozen-lockfile
cp .env.example .env.local
pnpm dev
Development routes:
/en/fr/ar
Root / redirects using the locale cookie, then Accept-Language, then English.
Required checks
pnpm validate
pnpm validate:package
pnpm format:check
pnpm lint
pnpm typecheck
pnpm test:unit
SITE_ORIGIN=http://127.0.0.1:3000 PUBLIC_RELEASE_APPROVED=false pnpm build
pnpm test:e2e
Generate reviewed visual baselines only in the pinned browser environment:
pnpm test:visual:update --project=chromium
Do not approve snapshots merely because the pixels repeat reliably. Computers can preserve a mistake with extraordinary discipline.
Release safety
PUBLIC_RELEASE_APPROVED defaults to false. While false, pages emit noindex and robots.txt disallows crawling.
Do not enable public release until the updated issue register has no blocking release issues. Unapproved login and legal routes render explicit pending shells. Demo and contact actions remain disabled rather than pointing at invented integrations.
Documentation
- Phase 11 report:
docs/PHASE_11_IMPLEMENTATION_REPORT_v1.0.md - Phase 12 handoff:
docs/PHASE_12_HANDOFF_v1.0.md - Phase 11 architecture:
docs/architecture/ADR-0002_PHASE_11_FOUNDATIONS.md - Token implementation:
docs/TOKEN_IMPLEMENTATION_v1.0.md - Updated issue register:
docs/IMPLEMENTATION_ISSUE_REGISTER_v1.1.csv - Validation evidence:
docs/quality/PHASE_11_VALIDATION_RESULTS_v1.0.md - Manual QA:
docs/quality/MANUAL_QA_RESULTS_v1.0.csv - Visual status:
docs/quality/VISUAL_REGRESSION_RESULTS_v1.0.json - Contribution rules:
CONTRIBUTING.md - Immutable Phase 9 package:
contracts/phase9 - Phase 11 package manifest:
PHASE_11_PACKAGE_MANIFEST_v1.0.json
Phase 12 component system
The repository now contains the reusable RentalDriveGo component system and a guarded component workbench at /{locale}/component-lab. Enable it only for development or tests with COMPONENT_FIXTURES_ENABLED=true.
Key records:
docs/PHASE_12_IMPLEMENTATION_REPORT_v1.0.mddocs/PHASE_13_HANDOFF_v1.0.mddocs/phase12/COMPONENT_CATALOG_v1.0.mddocs/phase12/COMPONENT_INVENTORY_v1.0.jsondocs/quality/PHASE_12_VALIDATION_RESULTS_v1.0.md
Formal acceptance remains gated by the cumulative issue register.