feat(landing): rebuild as Next.js app with live product mocks

Replaces the static HTML page with a Next.js 15 + Tailwind v4 + Motion
app. The hero renders the dashboard itself - live tiles, ticking clock,
wandering metrics, pulsing status dots - instead of screenshots. Adds a
playable four-renderer switcher (bento/cards/index/console) with layout
animations, live monitor/domain/system mocks, and a cycling alert feed.

Vercel project dash is now git-connected with root dir landing/; pushes
deploy automatically. Canonical alias: dash-homelab.vercel.app.

Authored By: TDvorak <[email protected]>

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
Tomas DvorakandDevin committed 2026-09-25 13:19:06 +02:00
1 parent e88429514b
commit d1486d5ec8
30 files changed
+3099 -466

No files matched your search

+38
View File
@@ -0,0 +1,38 @@
import { CopyButton } from "./CopyButton";
import { Reveal } from "./Reveal";
const CURL = "curl -fsSL https://raw.githubusercontent.com/Dvorinka/Dash/main/install.sh | sh";
const DOCKER = "docker run -d -v ./data:/data -p 3000:3000 ghcr.io/dvorinka/dash:latest";
export function Install() {
return (
<div className="grid gap-2.5 md:grid-cols-2">
<Reveal className="overflow-hidden rounded-xl border border-line bg-surface/50">
<div className="flex items-center justify-between border-b border-line px-4 py-2.5">
<span className="font-mono text-[10px] uppercase tracking-[0.14em] text-faint">
one-liner
</span>
<CopyButton text={CURL} label="Copy install command" />
</div>
<pre className="overflow-x-auto p-4 font-mono text-[12.5px] leading-7 text-dim">
<span className="text-text">$</span> curl -fsSL https://raw.githubusercontent.com/
{"\n"} Dvorinka/Dash/main/install.sh | sh{"\n"}
<span className="text-faint"># installs into ./dash, serves :3000</span>
</pre>
</Reveal>
<Reveal delay={0.08} className="overflow-hidden rounded-xl border border-line bg-surface/50">
<div className="flex items-center justify-between border-b border-line px-4 py-2.5">
<span className="font-mono text-[10px] uppercase tracking-[0.14em] text-faint">
docker
</span>
<CopyButton text={DOCKER} label="Copy docker command" />
</div>
<pre className="overflow-x-auto p-4 font-mono text-[12.5px] leading-7 text-dim">
<span className="text-text">$</span> docker run -d -v ./data:/data \{"\n"}
{" "}-p 3000:3000 \{"\n"}
{" "}ghcr.io/dvorinka/dash:latest
</pre>
</Reveal>
</div>
);
}