docs(landing): rewrite tagline and features around Command as Service
Some checks are pending
CI / Rust Lint & Check (push) Waiting to run
CI / Rust Tests (push) Waiting to run
CI / Frontend Lint & Type Check (push) Waiting to run
CI / Frontend Build (push) Blocked by required conditions

- Badge: 'Command as Service · Human + Agent Engineering'
- Subtitle: 'Every action is a command. Every command is versioned,
  auditable, and composable.'
- Terminal demo: show service deploy, skill run, and replay commands
- Features: lead with Command as Service, rewrite all descriptions
  around the command stream paradigm
- Section header: 'Build. Review. Automate. All via Commands.'
- Highlight: 'Your CLI is also your API'
- Nav/Footer: surface Command as Service in Platform menu
This commit is contained in:
ZhenYi 2026-04-16 18:54:50 +08:00
parent 431f40063f
commit a4cb18580b
3 changed files with 52 additions and 58 deletions

View File

@ -1,12 +1,12 @@
const FOOTER_LINKS = {
Platform: ['Git Repositories', 'Issues & PRs', 'Collaborative Rooms', 'AI Agents'],
Platform: ['Git Repositories', 'Issues & PRs', 'Collaborative Rooms', 'AI Agents', 'Command Stream'],
Skills: ['Skill Registry', 'Publish a Skill', 'Skill Documentation', 'Community'],
Developers: ['Documentation', 'CLI Reference', 'API Reference', 'Status'],
Company: ['About', 'Careers', 'Contact', 'Privacy'],
};
const FOOTER_HREFS: Record<string, string[]> = {
Platform: ['/solutions', '/solutions', '/solutions/rooms', '/solutions'],
Platform: ['/solutions', '/solutions', '/solutions/rooms', '/solutions', '/solutions'],
Skills: ['/skills', '/skills/publish', '/skills/docs', '/network'],
Developers: ['/docs', '/docs', '/network/api', '/status'],
Company: ['/about', '/careers', '/contact', '/privacy'],
@ -45,8 +45,8 @@ export function LandingFooter({onRegister}: LandingFooterProps) {
<span className="font-semibold text-sm text-zinc-900 dark:text-zinc-100">GitDataAI</span>
</div>
<p className="text-xs text-zinc-500 leading-relaxed">
The unified platform for code collaboration and AI-powered development.
Built for teams that ship.
The platform where humans and AI agents engineer together via commands.
Every action versioned. Every agent accountable. Built for teams that ship.
</p>
</div>

View File

@ -3,20 +3,20 @@ import {useNavigate} from 'react-router-dom';
const POP_ITEMS = {
Platform: [
{title: 'Command as Service', href: '/solutions', desc: 'Every action is a versioned, replayable command'},
{title: 'Collaborative Rooms', href: '/solutions/rooms', desc: 'Real-time human-AI workspaces via command streams'},
{title: 'AI Agents', href: '/solutions', desc: 'Agents that listen to commands and execute skills'},
{title: 'Git Repositories', href: '/solutions', desc: 'Branches, commits, PRs, branch protection'},
{title: 'Collaborative Rooms', href: '/solutions/rooms', desc: 'Real-time human-AI workspaces'},
{title: 'AI Agents', href: '/solutions', desc: 'Persistent memory, tools, skill registry'},
{title: 'Command as Service', href: '/solutions', desc: 'Versioned, auditable, composable commands'},
],
Skills: [
{title: 'Explore Skills', href: '/skills', desc: 'Browse the community skill library'},
{title: 'Publish a Skill', href: '/skills/publish', desc: 'Share your agent behavior'},
{title: 'Publish a Skill', href: '/skills/publish', desc: 'Share your agent behavior as a service'},
{title: 'Skill Documentation', href: '/skills/docs', desc: 'Build and test skills locally'},
],
Network: [
{title: 'Explore Network', href: '/network', desc: 'Discover agents and workspaces'},
{title: 'Explore Network', href: '/network', desc: 'Discover agents and command flows'},
{title: 'Public Rooms', href: '/network/rooms', desc: 'Join open collaborative sessions'},
{title: 'Developer API', href: '/network/api', desc: 'Integrate with the network'},
{title: 'Developer API', href: '/network/api', desc: 'Emit commands, stream results'},
],
Pricing: [
{title: 'Plans & Pricing', href: '/pricing', desc: 'Compare free and paid tiers'},

View File

@ -2,6 +2,21 @@ import {motion} from 'framer-motion';
import {Bot, Brain, Code2, GitBranch, History, Layers, Network, Workflow, Zap} from 'lucide-react';
const FEATURES = [
{
icon: Workflow,
title: 'Command as Service',
description: 'Every action — a repo create, a PR review, an agent deploy — is a versioned command. Audit, replay, and compose them. Your CLI is your API.',
},
{
icon: Network,
title: 'Collaborative Rooms',
description: 'Real-time rooms where humans and AI agents work together. Issue commands, review results, and build consensus — all in one thread.',
},
{
icon: Bot,
title: 'AI Agents',
description: 'Deploy agents that listen to room commands, execute tasks, and report back. Agents run skills, query repos, and call your own services.',
},
{
icon: Code2,
title: 'Git Repositories',
@ -10,37 +25,22 @@ const FEATURES = [
{
icon: GitBranch,
title: 'Issues & Pull Requests',
description: 'Track issues, review code, and manage pull requests with inline comments, review threads, and merge strategies.',
},
{
icon: Workflow,
title: 'Command as Service',
description: 'Every action is a versioned command. Compose, audit, and replay your entire development workflow. Your CLI is also your API.',
},
{
icon: Network,
title: 'Collaborative Rooms',
description: 'Real-time chat rooms where humans and AI agents work together. Share context, run commands, review code — all in one thread.',
},
{
icon: Bot,
title: 'AI Agents',
description: 'Deploy AI agents backed by persistent, versioned memory. Agents read your codebase, run tools, and execute tasks on your behalf.',
description: 'Track issues, review code, and manage pull requests. Agents can listen to PR events and automatically run review commands.',
},
{
icon: Layers,
title: 'Skill Registry',
description: 'Package agent behaviors as reusable Skills. Versioned, testable, and composable. Your best agent workflows become shared infrastructure.',
description: 'Package agent behaviors as reusable Skills. Publish to a registry, pull into any room, and invoke via command. Your workflows become shared services.',
},
{
icon: History,
title: 'Full Audit Trail',
description: 'Every AI decision, every code change, every room message — logged, versioned, and queryable. Human-in-the-loop by design.',
title: 'Command Audit Trail',
description: 'Every command is logged with its intent, result, and caller. Trace every AI decision back to the human who issued it.',
},
{
icon: Brain,
title: 'Agent Memory',
description: 'Persistent, git-native context for AI agents. Branch, commit, and roll back agent memory just like source code.',
description: 'Agents have persistent, git-native memory. Branch, commit, and roll back context just like source code. No more stateless agents.',
},
];
@ -81,7 +81,7 @@ export function LandingHero({onRegister}: { onRegister: () => void }) {
className="animate-ping absolute inline-flex h-full w-full rounded-full bg-zinc-400 opacity-75"/>
<span className="relative inline-flex h-1.5 w-1.5 rounded-full bg-zinc-500"/>
</span>
Git + Chat + AI Agents · Command as Service
Command as Service · Human + Agent Engineering
</span>
</motion.div>
@ -99,8 +99,8 @@ export function LandingHero({onRegister}: { onRegister: () => void }) {
{/* Subtitle */}
<motion.p variants={fadeUp}
className="text-lg text-zinc-500 dark:text-zinc-500 mb-12 max-w-2xl mx-auto leading-relaxed">
GitDataAI is the unified platform for code collaboration and AI-powered development.
Git repositories, real-time rooms, AI agents, and versioned commands all in one place.
Every action is a command. Every command is versioned, auditable, and composable.
Git repositories, rooms, and AI agents all driven by a command stream you own.
</motion.p>
{/* CTAs */}
@ -132,7 +132,7 @@ export function LandingHero({onRegister}: { onRegister: () => void }) {
<div className="w-2.5 h-2.5 rounded-full bg-zinc-300 dark:bg-zinc-700"/>
<div className="w-2.5 h-2.5 rounded-full bg-zinc-300 dark:bg-zinc-700"/>
</div>
<span className="text-[10px] uppercase tracking-widest text-zinc-400 font-medium">gitdata Command as Service</span>
<span className="text-[10px] uppercase tracking-widest text-zinc-400 font-medium">gitdata every action is a command</span>
</div>
{/* Terminal content */}
@ -140,30 +140,24 @@ export function LandingHero({onRegister}: { onRegister: () => void }) {
<div className="flex gap-3 mb-3">
<span className="text-zinc-400"></span>
<span className="text-zinc-800 dark:text-zinc-200">
gitdata <span className="text-zinc-500">repo create</span> --name api-service --visibility private
gitdata <span className="text-zinc-500">service deploy</span> --name api --repo ZhenYi/api
</span>
</div>
<div className="text-zinc-400 mb-3 ml-6 leading-6">
[12:05:01] <Code2 className="inline h-3 w-3 mr-1 text-zinc-500"/> Repository 'api-service' created<br/>
[12:05:02] <GitBranch className="inline h-3 w-3 mr-1 text-zinc-500"/> Default branch 'main' initialized<br/>
[12:05:03] <Zap className="inline h-3 w-3 mr-1 text-zinc-500"/> Webhook endpoint ready: POST /api/hooks/gitdata/abc123
[12:05:01] <Code2 className="inline h-3 w-3 mr-1 text-zinc-500"/> Service 'api' registered via command.<br/>
[12:05:02] <GitBranch className="inline h-3 w-3 mr-1 text-zinc-500"/> Default branch 'main' detected.<br/>
[12:05:03] <Bot className="inline h-3 w-3 mr-1 text-zinc-500"/> @reviewer-agent is watching /command/pr:review queued.
</div>
<div className="flex gap-3 mb-3">
<span className="text-zinc-400"></span>
<span className="text-zinc-800 dark:text-zinc-200">
gitdata <span className="text-zinc-500">room create</span> --name api-review --project api-service
</span>
</div>
<div className="flex gap-3 mb-3">
<span className="text-zinc-400"></span>
<span className="text-zinc-800 dark:text-zinc-200">
gitdata <span className="text-zinc-500">agent deploy</span> --name reviewer --room api-review --skill CodeReviewer
gitdata <span className="text-zinc-500">skill run</span> CodeReviewer --pr 42 --room api-review
</span>
</div>
<div className="ml-6 text-zinc-500 dark:text-zinc-400">
Agent 'reviewer' joined room 'api-review'.<br/>
Skill 'CodeReviewer' loaded. Watching for new pull requests.<br/>
Command registered: <span className="text-zinc-600 dark:text-zinc-400">gitdata pr review</span>
Skill 'CodeReviewer' dispatched to room 'api-review'.<br/>
Agent executing command. Result stream /command/history/abc123<br/>
All commands versioned. Replay anytime with <span className="text-zinc-600 dark:text-zinc-400">gitdata replay</span>
</div>
</div>
</div>
@ -181,10 +175,10 @@ export function LandingFeatures() {
{/* Section header */}
<div className="text-center mb-16">
<h2 className="text-3xl md:text-4xl font-semibold tracking-tight mb-3">
Code. Issues. Rooms. Agents. Commands.
Build. Review. Automate. All via Commands.
</h2>
<p className="text-zinc-500 dark:text-zinc-500">
Everything your team and AI agents need to build software in one place, versioned like code.
Every capability is exposed as a command. Agents listen. Humans approve. Everything is logged and replayable.
</p>
</div>
@ -211,9 +205,9 @@ export function LandingFeatures() {
}
const HIGHLIGHTS = [
{t: 'Command as Service', d: 'Every operation is a versioned command. Audit, replay, and compose them like building blocks.'},
{t: 'Human-in-the-Loop', d: 'AI agents request approval before destructive actions. You stay in control.'},
{t: 'Git-Native Everything', d: 'Your agents\' memory, skills, and audit logs are stored in Git — branch, commit, diff.'},
{t: 'Commands All the Way Down', d: 'Every operation — repo create, agent deploy, skill run — is a command. Your workflow is a composable, queryable stream.'},
{t: 'Agents Listen to Commands', d: 'Deploy an agent to a room and it subscribes to command events. Agents don\'t guess — they execute what you command.'},
{t: 'Git-Native Audit', d: 'Command history is stored in Git. Branch your command log, diff a workflow, replay it anywhere. Full traceability without a separate log store.'},
];
export function LandingHighlight() {
@ -225,10 +219,10 @@ export function LandingHighlight() {
<div>
<div className="h-px w-12 bg-zinc-300 dark:bg-zinc-700 mb-8"/>
<h2 className="text-3xl md:text-4xl font-semibold tracking-tight leading-tight mb-6">
Commands are the new commits.
Your CLI is also your API.
</h2>
<p className="text-zinc-500 dark:text-zinc-500 mb-8 leading-relaxed">
In GitDataAI, every action creating a repo, opening a PR, deploying an agent is a first-class command. Commands are versioned, diffable, and composable. Your development workflow becomes an auditable, replayable stream of intent.
Every GitDataAI action is a command with a name, parameters, and a result. Agents subscribe to command streams. Rooms execute commands. Your entire development workflow becomes a versioned, replayable, diffable stream without a separate event bus.
</p>
{/* Feature list */}
@ -265,7 +259,7 @@ export function LandingHighlight() {
<span className="text-xs font-medium text-zinc-600 dark:text-zinc-400">John Doe</span>
</div>
<p className="text-xs text-zinc-700 dark:text-zinc-300">
@reviewer, please audit the auth module on the feature/oauth branch.
<span className="text-zinc-400">/skill</span> CodeReviewer --branch feature/oauth --room api-review
</p>
</div>
@ -278,10 +272,10 @@ export function LandingHighlight() {
className="text-xs font-medium text-zinc-500">reviewer</span>
</div>
<p className="text-xs text-zinc-600 dark:text-zinc-400 mb-3">
Audit complete on feature/oauth. Found 3 issues 1 critical (token validation bypass). Creating fix PR...
Command received. Running CodeReviewer on feature/oauth. Found 3 issues 1 critical (token validation bypass). Proposing fix...
</p>
<div className="rounded-md border border-zinc-200 dark:border-zinc-700 bg-zinc-50 dark:bg-zinc-800 font-mono text-[10px] text-zinc-500 p-2 mb-3">
gitdata pr create --title "fix: resolve token validation bypass" --from feature/oauth --auto-merge
gitdata pr create --title "fix: resolve token validation bypass" --from feature/oauth --command-id abc123
</div>
<div className="flex gap-2">
<button