Legacy parity matrix
Baseline (left): legacy monorepo AllureGroupOld — apps/connect (clone or path on your machine)
Current (right): this repo (AllureConnect)
Indexed: 2026-03-26 — see diff -rq snapshot in git history / this document.
Tag legend: content | function | theme
App shell (signed-in)
| Legacy path / behavior |
Current path / behavior |
Gap |
Tag |
app/dashboard/layout.tsx — dark gradient + InteractiveBackground + relative z-10 children |
app/dashboard/layout.tsx — Clerk requireCustomerViewerAccess, AppShell, light connect-shell via globals.css |
Visual: legacy dark vs current light (intentional). Structure: both wrap nav + main. |
theme |
app/admin/layout.tsx |
Same pattern |
Same |
theme |
Sidebar: legacy inline in page components vs AppShell + AppShellNav |
Unified AppShell |
function: parity OK; nav from lib/navigation.ts |
function |
Legacy dashboard/dispatch/[id] |
dashboard/dispatch/[dispatchId] |
Route param rename only |
function |
Marketing (public)
| Legacy |
Current |
Gap |
Tag |
Mixed: some pages used InteractiveBackground + dark gradient |
ConnectPublicShell + light tokens + MarketingParticleField (fixed, mouse-reactive) |
theme: light-first; particles + grid restored |
theme |
app/pricing, features, help, docs — separate page.tsx |
Same routes |
Copy/section diffs per page (see file diff) |
content |
app/legal/terms, privacy, fair-use |
Single app/legal/page.tsx |
content: subroutes restored in this repo |
content |
app/vr — full landing (VRHero, features, …) + dark |
Was AppShell stub |
content: VR landing restored (light-styled) |
content |
Auth shell
| Legacy |
Current |
Gap |
Tag |
app/(auth)/layout.tsx in legacy |
Not always present in new repo |
Layout handled per-route + AuthShell |
function |
reset-password route |
Missing in new |
Add if Clerk recovery flow needs dedicated route |
function |
| Sign-in pages |
Clerk + AuthShell, token + verify + sso-callback |
Token flow: see docs/allure-connect-next-steps.md |
function |
Backgrounds and motion
| Legacy |
Current |
Gap |
Tag |
components/landing/interactive-background.tsx — canvas, spring mouse, fixed viewport |
MarketingParticleField — fixed canvas, mouse forces, light gradient base |
Behavior aligned (fixed, reactive); algorithms differ |
theme |
Dashboard wrapped InteractiveBackground |
No particles on signed-in shell (light, distraction-free) |
Intentional product choice |
theme |
API / docs
| Legacy |
Current |
Gap |
Tag |
app/docs/[...slug]/page.tsx reads monorepo docs/scorm-api/**/*.md |
app/docs/[...slug]/page.tsx + docs/scorm-api/** ported from AllureGroupOld/docs/scorm-api; hub lists classic sections |
Raw Markdown in browser (not rendered HTML); interactive API remains Swagger |
function |
OpenAPI export + /api/docs Swagger UI |
/api/docs/openapi (JSON) + /api/docs (Swagger UI) + lib/openapi.ts |
Parity restored (branding: Allure Connect URLs / support email) |
function |
Inventory diff summary (high level)
- Dashboard / admin: Page files differ (Convex vs old auth); route coverage matches inventory; param
[id] vs [packageId] / [dispatchId] only.
- Auth: New routes:
sign-in/token, verify, sso-callback. Legacy: reset-password only on old side.
- API: Many
admin/* subpaths only on one side (Convex migration); customer routes largely aligned.
- Legal: Subpages exist in legacy; consolidated then re-split in Connect.
Deliverables tracking
| Deliverable |
Location |
| Light tokens |
app/globals.css (:root --connect-*) |
| Shell behavior |
components/app-shell.tsx, components/connect-public-shell.tsx |
| VR marketing content |
components/vr/*, app/vr/page.tsx |
| Legal subpages |
app/legal/terms, privacy, fair-use |
| Docs deep links |
app/docs/[...slug]/page.tsx (renders docs/*.md) |
| Light theme reference |
docs/light-theme-shells.md |
Inventory diff (2026-03-26 snapshot)
Structured diff -rq was run for app/dashboard, app/admin, app/(auth), app/docs, marketing routes, app/onboarding, and app/api between AllureGroupOld/apps/connect and this repo. Outcomes are summarized in dimension tables above; representative differences include legacy-only client.tsx splits, [id] vs [packageId] route folders, new Clerk routes (sign-in/token, verify, sso-callback), and API surface drift on admin internals (Convex migration). No further action required for this checklist item beyond maintaining the matrix as files change.