diff --git a/dashboards/admin-web/src/app/taste-spike/page.tsx b/dashboards/admin-web/src/app/taste-spike/page.tsx new file mode 100644 index 00000000..ebf9d57e --- /dev/null +++ b/dashboards/admin-web/src/app/taste-spike/page.tsx @@ -0,0 +1,224 @@ +import Link from 'next/link'; +import { + Activity, + ArrowRight, + CheckCircle2, + Gauge, + Layers3, + ShieldCheck, + Sparkles, + TimerReset, +} from 'lucide-react'; + +type Mode = 'before' | 'after'; + +const genericCards = [ + ['AI insights', 'Powerful dashboards with smart automation for every team.'], + ['Fast workflows', 'Streamline productivity with an intuitive modern interface.'], + ['Better analytics', 'Unlock value from your data with beautiful charts.'], +]; + +const healthSignals = [ + { label: 'Tenant isolation', value: '98', tone: 'bg-emerald-500' }, + { label: 'Replay safety', value: '91', tone: 'bg-cyan-500' }, + { label: 'Queue pressure', value: '23', tone: 'bg-amber-500' }, +]; + +const incidents = [ + ['07:42', 'Digest queue recovered after backoff', 'Auto-remediated'], + ['06:10', 'One webhook endpoint has 429 drift', 'Watch'], + ['02:55', 'Nightly tenant export completed', 'Verified'], +]; + +function BeforeSpike() { + return ( +
+
+
+ AI-powered dashboard +
+
+

+ Transform your business with intelligent insights +

+

+ A generic centered hero, purple-blue gradient, and three equal cards. This is the + baseline slop pattern the redesign skill flags. +

+
+
+ + View refined version + + +
+
+ +
+ {genericCards.map(([title, description]) => ( +
+ +

{title}

+

{description}

+
+ ))} +
+
+ ); +} + +function AfterSpike() { + return ( +
+
+
+ +
+
+
+ ByteLyst ops taste spike + VAR 5 / MOT 3 / DEN 7 +
+
+

+ Product health, but with an operator's pulse. +

+

+ Reading this as a ByteLyst admin-web dashboard slice for a solo operator, with a + trust-first command-center language, leaning toward Tailwind utilities, warm + surfaces, tabular numerics, and restrained motion. +

+
+
+ +
+ {healthSignals.map(signal => ( +
+
+
+
+
{signal.value}
+
{signal.label}
+
+ ))} +
+
+ +
+
+
+
+ + + live + +
+
+ 86 +
+

+ Aggregate health score, weighted toward retention and runtime stability. +

+
+ +
+
+
+

Today's operator brief

+

+ Three signals need eyes. +

+
+ +
+
+ {incidents.map(([time, item, state]) => ( +
+ {time} + {item} + + {state} + +
+ ))} +
+
+
+ +
+ {[ + [ + ShieldCheck, + 'Trust surface', + 'No neon AI gradient; warm neutrals keep admin tasks calm.', + ], + [ + Layers3, + 'Density tuned', + 'Cards carry more information without collapsing into a spreadsheet.', + ], + [ + TimerReset, + 'Motion-safe', + 'Only hover/entrance affordances; reduced-motion users keep a static view.', + ], + ].map(([Icon, title, copy]) => ( +
+ +

{title as string}

+

{copy as string}

+
+ ))} +
+ +
+
+ +

+ Recommendation: keep as an optional redesign prompt, not a default dashboard + generator. +

+
+ + Compare baseline + +
+
+
+
+ ); +} + +export default async function TasteSpikePage({ + searchParams, +}: { + searchParams?: Promise<{ mode?: string }>; +}) { + const params = await searchParams; + const mode: Mode = params?.mode === 'before' ? 'before' : 'after'; + + return mode === 'before' ? : ; +}