import { useAuth } from "@/client/auth"; import { StatusPill } from "@/client/components"; import { Badge, ButtonLink } from "@/client/components/ui"; const valueProps = [ { title: "Pipeline config lives in the repo", description: "anvil reads `.anvil.yml` from your branch — review it, revert it, override it per branch.", }, { title: "Serialized runs, no extra locking", description: "One active run per project, everything else in a durable FIFO queue.", }, { title: "Logs stream while the run is live", description: "See what's running, what failed, and what's queued next — during the run, not after.", }, { title: "Runs on Cloudflare end-to-end", description: "Durable Objects, Queues, D1, and Sandbox SDK — no glue services in between.", }, ]; const workflow = [ { step: "01", title: "Connect a repo", description: "Sign in through tessera, then point anvil at a repository and choose the default branch.", }, { step: "02", title: "Commit `.anvil.yml`", description: "Define steps in a YAML file checked into the repo. Branch it, review it, revert it — same workflow as the rest of your code.", }, { step: "03", title: "Trigger and watch", description: "Start a run manually or via webhook. Queue position, active steps, and the live log tail all show up in one view.", }, ]; const previewRuns = [ { id: "#218", name: "deploy-docs", detail: "manual trigger by rachel", status: "running" as const, }, { id: "#219", name: "smoke-check", detail: "queued from push to main", status: "queued" as const, }, { id: "#220", name: "release-verify", detail: "queued from release branch", status: "queued" as const, }, ]; const previewLogs = [ "$ git fetch origin main --depth=1", "$ anvil run deploy-docs", "build passed in 18.4s", "test passed in 43.1s", "deploy uploading assets to edge...", ]; const LandingActions = ({ isAuthenticated }: { isAuthenticated: boolean }) => isAuthenticated ? (
Queue Status
SERIALIZED FIFO{run.id} {run.name}
{run.detail}
{line}
); })}A streamlined, serialized execution engine built on Cloudflare Durable Objects. No glue services. No yaml bloat.
No complex DAGs. No infrastructure mapping. Just a single execution queue connected to your Cloudflare edge infrastructure.
{feature.description}
Go from an empty queue to a live edge deployment in under three minutes, entirely defined in your git history.
{item.step}
{item.description}