diff --git a/app/frontend/src/app/App.tsx b/app/frontend/src/app/App.tsx
index c06bb4e..725e0ab 100644
--- a/app/frontend/src/app/App.tsx
+++ b/app/frontend/src/app/App.tsx
@@ -63,11 +63,11 @@ export default function App() {
} />
} />
} />
-
- {/* Enhanced Dashboard & Showcase */}
- } />
} />
+
+ {/* Full-bleed design demo — renders its own chrome, no app shell */}
+ } />
} />
diff --git a/app/frontend/src/features/auth/pages.tsx b/app/frontend/src/features/auth/pages.tsx
index 6859ea8..a1db858 100644
--- a/app/frontend/src/features/auth/pages.tsx
+++ b/app/frontend/src/features/auth/pages.tsx
@@ -2,7 +2,8 @@ import { useMemo, useState } from 'react';
import type { FormEvent } from 'react';
import { Link, Navigate, useNavigate, useSearchParams } from 'react-router-dom';
import { useQuery, useQueryClient } from '@tanstack/react-query';
-import { AlertCircle, ArrowRight, Github, Loader2, Mail, User2 } from 'lucide-react';
+import { AlertCircle, ArrowRight, Github, Globe, Layers, Loader2, Mail, ScrollText, User2, Zap } from 'lucide-react';
+import { LineAreaChart, DonutChart } from '@/shared/components';
import {
AuthError,
getAuthBootstrap,
@@ -32,40 +33,62 @@ function buildOAuthCallbackURL(path: string): string {
}
function AuthCanvas() {
- const bars = [32, 44, 28, 60, 52, 64, 36, 48, 54, 72, 66, 78];
+ const features = [
+ { icon: Zap, title: 'Instant deploys', body: 'Images or Git repositories to running containers.' },
+ { icon: Globe, title: 'Domains & routing', body: 'Traefik-managed endpoints per service.' },
+ { icon: ScrollText, title: 'Logs & metrics', body: 'Live container telemetry and log streams.' },
+ { icon: Layers, title: 'Project canvas', body: 'Services, groups, and dependencies on one map.' },
+ ];
+ const previewSparkline = [18, 22, 19, 31, 28, 42, 38, 51, 47, 58, 52, 64];
return (
-
Containr Access
-
- Secure Sessions,
+
+
+
Containr
+
+
+ Your containers,
- Better Auth
+ one platform.
- Email/password plus GitHub and Google sign-in run through secure cookie sessions. First account bootstraps platform ownership; every later user is created from inside Containr.
+ Self-hosted deployment platform. Projects, services, builds, and live telemetry — owned end to end.
+
+
+ {features.map((feature) => (
+
+
+
+
+
+
{feature.title}
+
{feature.body}
+
+
+ ))}
+
-
Auth Health
-
-
- Live
-
+
Platform Preview
+
Active
-
- {bars.map((height, index) => (
-
- ))}
+
+
+
api-gateway
+
3 instances · deployed 4m ago
+
+
+
@@ -83,9 +106,13 @@ function AuthCard({
children: React.ReactNode;
}) {
return (
-
-
-
Containr
+
+
+
+
+
Containr
+
+
Containr
{title}
{subtitle}
@@ -231,7 +258,11 @@ export function SignInPage() {
-
+