diff --git a/public/shots/agent.png b/public/shots/agent.png new file mode 100644 index 0000000..73b0c86 Binary files /dev/null and b/public/shots/agent.png differ diff --git a/public/shots/ai-models.png b/public/shots/ai-models.png new file mode 100644 index 0000000..9f66eae Binary files /dev/null and b/public/shots/ai-models.png differ diff --git a/public/shots/appearance.png b/public/shots/appearance.png new file mode 100644 index 0000000..0787013 Binary files /dev/null and b/public/shots/appearance.png differ diff --git a/public/shots/terminal.png b/public/shots/terminal.png new file mode 100644 index 0000000..ad2cdc1 Binary files /dev/null and b/public/shots/terminal.png differ diff --git a/src/components/Showcase.astro b/src/components/Showcase.astro new file mode 100644 index 0000000..a2a1459 --- /dev/null +++ b/src/components/Showcase.astro @@ -0,0 +1,212 @@ +--- +/** + * Stage — a look inside the real app. Faithful screenshots of Uncaged running + * the "Uncaged Midnight" theme (matched to this site's palette). Alternating + * rows: one claim, one frame. Product depictions are the real thing, on-palette. + */ +const shots = [ + { + n: '01', + label: 'the terminal', + title: 'The same fast terminal. Minus the cloud.', + body: + 'Blocks, git-aware prompts, GPU-fast rendering — the full agentic terminal you already know, running entirely on your machine. Pictured: Uncaged’s own release history, in the Uncaged Midnight theme.', + img: '/shots/terminal.png', + alt: 'Uncaged terminal showing a colourful git-log graph of the Uncaged repository, in the Uncaged Midnight theme.', + }, + { + n: '02', + label: 'your models', + title: 'Bring your own model. No account, ever.', + body: + 'Point Uncaged at a local runtime (Ollama, LM Studio), the CLI plan you already pay for (Claude, Gemini, Codex), or any API key. Nothing is relayed through our cloud — your keys never leave the machine.', + img: '/shots/ai-models.png', + alt: 'Uncaged Settings — AI Models. Local models connected (LM Studio, Claude Code, Ollama) with the note “Nothing goes to Uncaged; your keys stay on this machine.”', + }, + { + n: '03', + label: 'agentic', + title: 'An agent that writes code, right in your terminal.', + body: + 'Ask for a change and the agent proposes it as a reviewable diff — accept, refine, or edit. Powered by the model you chose, running on your own hardware. The same agentic terminal as Warp, with the cloud cut out.', + img: '/shots/agent.png', + alt: 'Uncaged agent proposing a new Rust ring-buffer file as a reviewable diff, with Accept / Refine / Edit controls.', + }, + { + n: '04', + label: 'make it yours', + title: 'A terminal that looks the way you want.', + body: + 'A built-in theme studio, live window opacity and blur, and a one-click theme gallery. Shown here in “Uncaged Midnight” — the same cold-blue-and-ember palette as this page.', + img: '/shots/appearance.png', + alt: 'Uncaged Settings — Appearance. The Uncaged Midnight theme is active, with window opacity and blur controls.', + }, +]; +--- + +
+
+
+

see it in action

+

A look inside Uncaged

+

+ Real screenshots, no mockups — the app running the Uncaged Midnight theme. +

+
+ +
+ { + shots.map((s) => ( +
+
+

+ {s.n} + {s.label} +

+

{s.title}

+

{s.body}

+
+
+ {s.alt} +
+
+ )) + } +
+
+
+ + diff --git a/src/pages/index.astro b/src/pages/index.astro index 06c1510..0133b26 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -4,6 +4,7 @@ import Nav from '../components/Nav.astro'; import Hero from '../components/Hero.astro'; import KeptStrip from '../components/KeptStrip.astro'; import DiffBand from '../components/DiffBand.astro'; +import Showcase from '../components/Showcase.astro'; import Privacy from '../components/Privacy.astro'; import Models from '../components/Models.astro'; import OpenSource from '../components/OpenSource.astro'; @@ -84,6 +85,7 @@ const jsonLd = JSON.stringify({ +