Build & Launch Plan

Internal platform rollout for auth, dashboards, and integrations

This page tracks how we deliver a secure internal website at internal.genoalam.com, powered by Supabase auth, optional IP controls, OpenClaw integration, and staged Hex dashboard deprecation.

Step-by-step phases

Use this as the execution checklist while iterating from local preview to production.

  1. Phase 0 - UI/UX Foundation (completed)

    • ✅ (2026-04-05) Establish Genoa palette tokens and app shell (header/footer).
    • ✅ (2026-04-05) Add Brand Assets page (`/brand`) with PNG + PDF usage.
    • ✅ (2026-04-05) Add concept mockups in `public/concepts/` and UI recording script.
  2. Phase 1 - Platform Foundation (completed)

    • ✅ (2026-04-05) Stand up internal routes under `/internal/*` with navigation.
    • ✅ (2026-04-05) Configure Supabase SSR clients + proxy session refresh.
    • ✅ (2026-04-05) Add deployment guidance for Supabase env setup and troubleshooting.
  3. Phase 2 - Access Control & Policy (in progress)

    • ⬜ Enable Supabase email/password access for internal user accounts.
    • ✅ (2026-04-05) Add optional IP policy support with allowlist + user-scoped enforcement.
    • ✅ (2026-04-05) Validate access denied behavior and account sign-out flow.
  4. Phase 4 - Go Live on Vercel (completed)

    • ✅ (2026-04-05) Connect repository to Vercel and set Production branch.
    • ✅ (2026-04-05) Add custom domain internal.genoalam.com in Vercel project settings.
    • ✅ (2026-04-05) Create DNS CNAME record: internal -> cname.vercel-dns.com.
    • ✅ (2026-04-05) Verify SSL issuance and domain status in Vercel dashboard.
  5. Phase 5 - Data & Integration Layer (completed)

    • ✅ (2026-04-05) Register dashboards in the internal dashboards catalog.
    • ✅ (2026-04-05) Add OpenClaw health endpoint (`GET /api/openclaw/health`).
    • ✅ (2026-04-05) Merge backend dealer lookup API and Supabase/PostGIS integration (PR #23).
    • ✅ (2026-04-05) Ship dealer map + mapped table UI (`/internal/dealers`).
    • ✅ (2026-04-16) Connect Supabase to Vercel production (env vars live).
    • ✅ (2026-04-16) Populate 199 real dealers from Tally rewards vouchers (>= 2200 threshold).
    • ✅ (2026-04-16) Switch dealer search from lat/lng to pincode-based nearest lookup.
    • ✅ (2026-04-16) Geocode 114 dealer pincodes via Nominatim into `pincode_geo` table.
    • ✅ (2026-04-16) Add Leaflet interactive map with tile layers, markers, and popups.
    • ✅ (2026-04-16) Add `refresh_dealers()` SQL function for periodic data sync.
    • ✅ (2026-04-16) Replace public dealer listing with OTP-verified `Inquire Now` workflow.
    • ⬜ Migrate one dashboard at a time from Hex to internal-native replacements.
    • ✅ (2026-04-16) Standardize Supabase client env naming to `NEXT_PUBLIC_SUPABASE_ANON`.
  6. Phase 6 - UI/UX Polish & QA (in progress)

    • ✅ (2026-05-14) Launch public careers page (`/careers`) with role listings and application CTA.
    • ⬜ Validate all page transitions are smooth (no layout shift, no flash of unstyled content).
    • ⬜ Test responsive breakpoints: mobile (375px), tablet (768px), desktop (1280px+).
    • ✅ (2026-04-16) Replace dealer map exposure with inquiry capture form (name, address, pincode, phone OTP).
    • ⬜ Verify OTP flow end-to-end in production SMS environment.
    • ⬜ Add inquiry review dashboard for internal sales assignment workflow.
    • ⬜ Confirm all external product links open in new tabs and resolve correctly.
    • ⬜ Test login → internal → sign-out → redirect flow end-to-end.
    • ⬜ Verify `/brand` assets page renders logo previews and PDF download works.
    • ⬜ Check colour contrast meets WCAG AA on all text elements.
    • ⬜ Validate inquiry form completion rate and reduce drop-off with UX instrumentation.
  7. Phase 7 - Post-launch operations (recommended)

    • ⬜ Confirm internal user onboarding flow and document first-login steps.
    • ⬜ Add lightweight monitoring/alerts (Vercel + OpenClaw health).
    • ⬜ Create a change log cadence (weekly) and keep `/plan` + markdown docs current.
    • ⬜ Schedule periodic `refresh_dealers()` runs after Tally data pipeline syncs.

Run locally

Install

npm install

Start development server

npm run dev

Common build error

If you see Can't resolve @supabase/ssr, it means dependencies haven’t been installed since pulling recent changes. Run npm install again, then retry npm run dev / npm run build.

Open http://localhost:3000 in your browser to review the homepage and product links.

Full sheet image and catalogue links

These links are deliberately centralized so updates can be made in one place before publishing.

Catalogues

Catalogues Hub

Master catalogue page with full-sheet references and downloads.

Full Sheet Images

Veneer Collection (Full Sheet Images)

Complete wooden/veneer finish laminate sheets.

Full Sheet Images

Marble Collection (Full Sheet Images)

High-gloss marble finish laminate full sheets.

Catalogues

Acrynova Catalogue (PDF)

Downloadable Acrynova catalogue from current source site.

Catalogues

Acrysoft Catalogue (PDF)

Downloadable Acrysoft catalogue from current source site.

Catalogues

Genoa Big Catalog (Physical)

Physical big catalogue product listing for ordering.

Catalogues

Genoa Handy Catalog (Physical)

Compact physical catalogue listing for ordering.

Collections

Striped Acrylic Collection

Striped acrylic laminate product range and references.

External

Media Library

Video and promotional media references.

Security controls to configure

  • 1. Enable Supabase Auth with user onboarding for internal team members.
  • 2. Use optional IP allowlist controls for selected users or all users based on risk profile.
  • 3. Keep all internal pages under authenticated routes (/internal/*).
  • 4. Enforce API protection on integration routes such as OpenClaw health checks.

Dealer inquiry rollout status

Dealer backend data is live (199 dealers from Tally vouchers), but public viewers now see an OTP-verified inquiry workflow instead of direct dealer listing. This protects dealer privacy while still enabling lead routing at /internal/dealers.

  • ✅ (2026-04-15) Integrated /api/dealers backend with dealer geodata.
  • ✅ (2026-04-16) Supabase connected to Vercel production (env vars set).
  • ✅ (2026-04-16) 199 real dealers loaded from Tally rewards data (≥ 2200 threshold).
  • ✅ (2026-04-16) Pincode-based nearest search with Leaflet interactive map.
  • ✅ (2026-04-16) 114 pincodes geocoded for distance calculations.
  • ✅ (2026-04-16) Finalize public access policy: hide dealer list, use OTP-gated inquiry.
  • ✅ (2026-04-16) Add inquiry form with name, full address + pincode, and phone OTP verification.

DNS and go-live target

This project is live at internal.genoalam.com as a project domain. In your DNS provider, create/confirm a CNAME record for internal pointing to cname.vercel-dns.com. Vercel will validate the record and provision SSL automatically.

Careers page rollout status

Public route /careers is now live with open role cards, hiring process guidance, and direct application via mailto. Navigation entry points are available from both the main header and homepage hero actions.

  • ✅ (2026-05-14) Added role-based listings with responsibilities and requirements.
  • ✅ (2026-05-14) Added hiring process steps and centralized careers content in siteData.ts.
  • ✅ (2026-05-14) Linked careers route from top navigation and homepage CTA.