diff --git a/agent-browser-recording-site/index.html b/agent-browser-recording-site/index.html new file mode 100644 index 0000000..cb7a8a3 --- /dev/null +++ b/agent-browser-recording-site/index.html @@ -0,0 +1,10 @@ + + +Website Agent-Browser Test Recording + +

Website Agent-Browser Test Recording

+

Recording of the browser UI verification session.

+ +

Download recording

+ + diff --git a/agent-browser-recording-site/test-recording.webm b/agent-browser-recording-site/test-recording.webm new file mode 100644 index 0000000..245561c Binary files /dev/null and b/agent-browser-recording-site/test-recording.webm differ diff --git a/content/site.yaml b/content/site.yaml index 3f5fb0b..7ee1e73 100644 --- a/content/site.yaml +++ b/content/site.yaml @@ -36,6 +36,7 @@ navigation: - { label: "Agent Cloud", href: "/use-cases/agent-cloud" } - { label: "Architecture", href: "/architecture" } - { label: "Pricing", href: "/pricing" } + - { label: "Blogs", href: "/blog" } - { label: "Docs", href: "https://docs.codebolt.ai", external: true } cta: - { label: "Download", href: "/download", variant: "secondary" } @@ -70,7 +71,7 @@ navigation: - heading: "Resources" links: - { label: "Docs", href: "https://docs.codebolt.ai", external: true } - - { label: "Blog", href: "/blog" } + - { label: "Blogs", href: "/blog" } - { label: "GitHub", href: "https://github.com/codebolt", external: true } - heading: "Company" links: @@ -5023,29 +5024,331 @@ pages: posts: - date: "2026-03-25" title: "Why We Built an Engine, Not Another Agent" + href: "/blog/why-we-built-an-engine-not-another-agent" excerpt: "The origin story — why we chose to build a platform engine that can be a CLI, IDE, personal agent, and orchestration system, instead of another single-purpose AI tool." tag: "Engineering" - date: "2026-03-18" title: "CLI to Autonomous Company: The Scaling Spectrum" + href: "/blog/cli-to-autonomous-company-scaling-spectrum" excerpt: "How one engine handles the progression from a single coding agent to orchestrating hundreds of agents across multiple environments." tag: "Architecture" - date: "2026-03-10" title: "How the Plugin System Enables Autonomous Applications" + href: "/blog/plugin-system-autonomous-applications" excerpt: "Why plugins in Codebolt don't need separate agent instances, how the three communication channels work, and what this means for building autonomous companies." tag: "Architecture" - date: "2026-03-01" title: "Stigmergy vs Message Passing for Agent Coordination" + href: "/blog/stigmergy-vs-message-passing" excerpt: "A research-backed comparison of coordination strategies. Why indirect communication through shared state scales better than direct messaging." tag: "Research" - date: "2026-02-20" title: "What Breaks When You Run 50 Agents on One Repo" + href: "/blog/what-breaks-running-50-agents" excerpt: "Real problems we encountered scaling agent coordination — conflicts, drift, memory exhaustion — and the system-level solutions we built." tag: "Engineering" - date: "2026-02-10" title: "Agent Deliberation: How Agents Make Decisions Together" + href: "/blog/agent-deliberation-decisions-together" excerpt: "Inside the deliberation council system — proposing, debating, voting, and reaching consensus without human intervention." tag: "Architecture" + # ── Blog: Why We Built an Engine ─────────── + - slug: "blog/why-we-built-an-engine-not-another-agent" + title: "Why We Built an Engine, Not Another Agent — Codebolt" + sections: + + - type: page-header + title: "Why We Built an Engine, Not Another Agent" + subtitle: "The origin story behind building a platform engine instead of another single-purpose AI tool." + + - type: centered-text + variant: "thesis" + text: "Agents are useful, but an agent alone is not enough. Teams need a runtime that can host agents, coordinate them, remember context, expose tools, and carry work across CLI, editor, cloud, and autonomous surfaces." + + - type: card-grid + heading: "Why the engine matters" + columns: 3 + cards: + - title: "One runtime" + body: "A single execution layer lets the same agent work continue across the CLI, Editor, Cloud, SDK, and always-on deployments without rebuilding state or integrations." + - title: "Open extension points" + body: "Agent SDK, Plugin SDK, Client SDK, and Provider SDK give developers control over agent behavior, product surfaces, backend logic, and execution environments." + - title: "Scale by design" + body: "Coordination, memory, environment lifecycle, reviews, and governance are engine concerns, not features each agent team should rebuild from scratch." + + - type: feature-block + kicker: "ENGINE FIRST" + heading: "The engine is the multiplier" + body: "A single-purpose agent can solve a narrow workflow. An engine can become many workflows. Codebolt was built so custom agents, plugins, applications, memory, and environments share one foundation and keep compounding as the system grows." + diagram: | + single-purpose tool + → fixed surface + → fixed agent + → isolated memory + + Codebolt engine + → many surfaces + → custom agents + → shared runtime + → scalable coordination + + - type: cta-block + heading: "Explore the engine behind Codebolt." + buttons: + - { label: "Read Architecture", href: "/architecture", variant: "primary" } + - { label: "Back to Blogs", href: "/blog", variant: "secondary" } + + # ── Blog: CLI to Autonomous Company ─────── + - slug: "blog/cli-to-autonomous-company-scaling-spectrum" + title: "CLI to Autonomous Company: The Scaling Spectrum — Codebolt" + sections: + + - type: page-header + title: "CLI to Autonomous Company: The Scaling Spectrum" + subtitle: "How one engine supports the progression from a terminal agent to hundreds of coordinated agents." + + - type: centered-text + variant: "thesis" + text: "The first interaction can be as simple as a CLI prompt. The architecture underneath should not trap you there. Codebolt keeps the same runtime model as work grows from one agent to a coordinated organization." + + - type: progression-strip + kicker: "SCALING PATH" + heading: "Start simple. Grow without switching systems." + description: "Each step uses the same engine primitives: agents, tools, memory, plugins, tasks, environments, and orchestration." + steps: + - label: "CLI" + description: "Run one focused coding agent from the terminal." + reference: "Day 1" + - label: "Editor" + description: "Add project context, panels, terminals, and richer review workflows." + reference: "Team workflow" + - label: "Cloud" + description: "Move long-running work to managed or bring-your-own sandboxes." + reference: "Remote capacity" + - label: "Orchestration" + description: "Coordinate multiple agents with shared state, review, and deliberation." + reference: "Scale" + - label: "Autonomous Company" + description: "Represent business domains as plugins and agent systems." + reference: "Full system" + + - type: feature-block + kicker: "CONTINUITY" + heading: "Scaling should preserve what you already built" + body: "Agents, memory, plugin integrations, task state, and environment configuration should carry forward. Codebolt treats surfaces as clients of the same engine so teams do not restart when they outgrow a single chat or terminal loop." + reverse: true + diagram: | + CLI ↔ Editor ↔ Cloud ↔ SDK + ↓ + Codebolt engine + ↓ + agents · memory · plugins + tasks · environments · governance + + - type: cta-block + heading: "See how Codebolt scales across environments." + buttons: + - { label: "Explore Multi-Environment", href: "/engine/multi-environment", variant: "primary" } + - { label: "Back to Blogs", href: "/blog", variant: "secondary" } + + # ── Blog: Plugin System ─────────────────── + - slug: "blog/plugin-system-autonomous-applications" + title: "How the Plugin System Enables Autonomous Applications — Codebolt" + sections: + + - type: page-header + title: "How the Plugin System Enables Autonomous Applications" + subtitle: "Why plugins are runtime extensions, backend services, event subscribers, and application building blocks." + + - type: centered-text + variant: "thesis" + text: "A plugin should not be a thin UI add-on. In Codebolt, plugins run inside the engine boundary, connect to multiple communication channels, and can act as the backend for Codebolt-native applications." + + - type: three-column-grid + divider: true + columnsHtml: + - | +
+
CHANNEL 1
+

WebSocket actions

+

Plugins can call runtime capabilities such as files, git, terminal, LLM, memory, and agent operations.

+
+ - | +
+
CHANNEL 2
+

Multiplexed events

+

Plugins subscribe to task, job, chat, review, calendar, and workflow events as the engine changes.

+
+ - | +
+
CHANNEL 3
+

HTTP routes

+

Plugins can expose application routes and backend behavior close to the agent runtime.

+
+ + - type: feature-block + kicker: "APPLICATION BACKEND" + heading: "Plugins let applications share the agent runtime" + body: "A Codebolt-native application can use a plugin for backend logic, a dynamic panel or external client for UI, custom agents for work, and the engine for memory, tools, environments, and events." + diagram: | + app UI + ↓ + plugin backend + ↓ + Codebolt engine + ├─ agents + ├─ tools + ├─ memory + └─ environments + + - type: cta-block + heading: "Build applications on the runtime, not beside it." + buttons: + - { label: "Explore Native Applications", href: "/engine/codebolt-native-applications", variant: "primary" } + - { label: "Back to Blogs", href: "/blog", variant: "secondary" } + + # ── Blog: Stigmergy ─────────────────────── + - slug: "blog/stigmergy-vs-message-passing" + title: "Stigmergy vs Message Passing for Agent Coordination — Codebolt" + sections: + + - type: page-header + title: "Stigmergy vs Message Passing for Agent Coordination" + subtitle: "Why indirect coordination through shared state scales better than fragile direct message chains." + + - type: centered-text + variant: "thesis" + text: "Message passing works for small demos, but it becomes brittle when many agents work in parallel. Codebolt uses stigmergy: agents coordinate by reading and writing shared structured state." + + - type: comparison-columns + problem: + heading: "Message passing" + items: + - "Agents depend on direct handoffs and brittle chains" + - "Coordination state is scattered across conversations" + - "Conflicts are discovered late, often after files diverge" + - "Scaling requires more explicit routing logic" + solution: + heading: "Stigmergy" + items: + - "Agents coordinate through durable shared state" + - "Pheromones signal ownership, intent, and conflict risk" + - "New agents can join by observing the environment" + - "Coordination improves without centralizing every decision" + + - type: feature-block + kicker: "SWARM COORDINATION" + heading: "Shared state lets coordination emerge" + body: "Agents leave signals on tasks, files, and decisions. Other agents read those signals before acting. The result is lower collision risk and more scalable coordination than direct message chains alone." + reverse: true + diagram: | + Agent A → shared state ← Agent B + ↑ ↓ + Agent C ← shared state → Agent D + + ownership · review · progress · drift + + - type: cta-block + heading: "Explore Codebolt multi-agent coordination." + buttons: + - { label: "View Multi-Agent Scaling", href: "/engine/multi-agent", variant: "primary" } + - { label: "Back to Blogs", href: "/blog", variant: "secondary" } + + # ── Blog: 50 Agents ─────────────────────── + - slug: "blog/what-breaks-running-50-agents" + title: "What Breaks When You Run 50 Agents on One Repo — Codebolt" + sections: + + - type: page-header + title: "What Breaks When You Run 50 Agents on One Repo" + subtitle: "The practical failure modes that appear when agent work becomes parallel, long-running, and shared." + + - type: centered-text + variant: "thesis" + text: "At small scale, most failures look like bad prompts. At larger scale, failures become system problems: conflicts, drift, stale context, resource contention, unclear ownership, and missing review loops." + + - type: card-grid + heading: "The failures that show up at scale" + columns: 3 + cards: + - title: "File collisions" + body: "Multiple agents edit the same files without awareness of ownership or sequencing." + - title: "Scope drift" + body: "Agents solve adjacent problems and slowly move beyond the original objective." + - title: "Memory overload" + body: "More work creates more context than any single agent can safely consume." + - title: "Review bottlenecks" + body: "Parallel work becomes blocked if every change waits for one human gate." + - title: "Environment pressure" + body: "Builds, tests, browsers, and sandboxes compete for limited local resources." + - title: "Unclear accountability" + body: "Without traces, it is hard to know which agent made which decision and why." + + - type: feature-block + kicker: "SYSTEM SOLUTIONS" + heading: "Scale requires runtime primitives" + body: "Codebolt addresses these problems with pheromone coordination, deliberation councils, review-merge requests, drift tracking, context assembly, shadow git snapshots, and multi-environment routing." + diagram: | + failure mode → engine primitive + collisions → pheromones + drift → drift tracking + overload → context assembly + bottlenecks → agent review + resources → environments + accountability → narrative trace + + - type: cta-block + heading: "See the architecture built for parallel agent work." + buttons: + - { label: "Read Architecture", href: "/architecture", variant: "primary" } + - { label: "Back to Blogs", href: "/blog", variant: "secondary" } + + # ── Blog: Agent Deliberation ────────────── + - slug: "blog/agent-deliberation-decisions-together" + title: "Agent Deliberation: How Agents Make Decisions Together — Codebolt" + sections: + + - type: page-header + title: "Agent Deliberation: How Agents Make Decisions Together" + subtitle: "Inside the council model for proposals, debate, voting, and consensus between agents." + + - type: centered-text + variant: "thesis" + text: "When agents disagree, the system should not hide the disagreement or let the loudest response win. Codebolt deliberation gives agents a structured way to propose options, respond, vote, and preserve the rationale." + + - type: feature-block + kicker: "COUNCIL WORKFLOW" + heading: "Structured decisions beat implicit disagreement" + body: "A deliberation can be a decision, review, brainstorm, approval, or vote. Each participant contributes a response, the council records votes and outcomes, and the final decision remains traceable for future agents and humans." + diagram: | + proposal + ↓ + responses + ↓ + debate + ↓ + vote + ↓ + consensus + rationale + + - type: card-grid + heading: "Where deliberation helps" + columns: 3 + cards: + - title: "Architecture choices" + body: "Agents compare tradeoffs and record the reasoning behind the selected direction." + - title: "Review conflicts" + body: "Reviewer agents can request changes, debate risk, and converge on a merge decision." + - title: "Planning decisions" + body: "Specialized agents can prioritize tasks and choose a sequence based on constraints." + + - type: cta-block + heading: "Explore multi-agent deliberation in Codebolt." + buttons: + - { label: "View Orchestration", href: "/engine/agent-orchestration", variant: "primary" } + - { label: "Back to Blogs", href: "/blog", variant: "secondary" } + # ── About ────────────────────────────────── - slug: "about" title: "About — Codebolt" diff --git a/site/src/data/site-data.js b/site/src/data/site-data.js index 8b04f27..7334c27 100644 --- a/site/src/data/site-data.js +++ b/site/src/data/site-data.js @@ -108,6 +108,10 @@ export const navigation = { "label": "Pricing", "href": "/pricing" }, + { + "label": "Blogs", + "href": "/blog" + }, { "label": "Docs", "href": "https://docs.codebolt.ai", @@ -231,7 +235,7 @@ export const navigation = { "external": true }, { - "label": "Blog", + "label": "Blogs", "href": "/blog" }, { diff --git a/site/src/pages/blog.astro b/site/src/pages/blog.astro index c6f4a38..faf72f2 100644 --- a/site/src/pages/blog.astro +++ b/site/src/pages/blog.astro @@ -11,6 +11,6 @@ import BlogGrid from '../components/BlogGrid.astro'; subtitle="Engineering decisions, architecture deep-dives, and what we're learning about scaling agents." /> diff --git a/site/src/pages/blog/agent-deliberation-decisions-together.astro b/site/src/pages/blog/agent-deliberation-decisions-together.astro new file mode 100644 index 0000000..6738bf3 --- /dev/null +++ b/site/src/pages/blog/agent-deliberation-decisions-together.astro @@ -0,0 +1,44 @@ +--- +// Auto-generated from site content. Edit source content and regenerate. +import BaseLayout from '../../layouts/BaseLayout.astro'; +import { site, navigation } from '../../data/site-data.js'; +import PageHeader from '../../components/PageHeader.astro'; +import CenteredText from '../../components/CenteredText.astro'; +import FeatureBlock from '../../components/FeatureBlock.astro'; +import CardGrid from '../../components/CardGrid.astro'; +import CtaBlock from '../../components/CtaBlock.astro'; +--- + + + + + + + diff --git a/site/src/pages/blog/cli-to-autonomous-company-scaling-spectrum.astro b/site/src/pages/blog/cli-to-autonomous-company-scaling-spectrum.astro new file mode 100644 index 0000000..9b4414a --- /dev/null +++ b/site/src/pages/blog/cli-to-autonomous-company-scaling-spectrum.astro @@ -0,0 +1,43 @@ +--- +// Auto-generated from site content. Edit source content and regenerate. +import BaseLayout from '../../layouts/BaseLayout.astro'; +import { site, navigation } from '../../data/site-data.js'; +import PageHeader from '../../components/PageHeader.astro'; +import CenteredText from '../../components/CenteredText.astro'; +import ProgressionStrip from '../../components/ProgressionStrip.astro'; +import FeatureBlock from '../../components/FeatureBlock.astro'; +import CtaBlock from '../../components/CtaBlock.astro'; +--- + + + + + + + diff --git a/site/src/pages/blog/plugin-system-autonomous-applications.astro b/site/src/pages/blog/plugin-system-autonomous-applications.astro new file mode 100644 index 0000000..d328eca --- /dev/null +++ b/site/src/pages/blog/plugin-system-autonomous-applications.astro @@ -0,0 +1,43 @@ +--- +// Auto-generated from site content. Edit source content and regenerate. +import BaseLayout from '../../layouts/BaseLayout.astro'; +import { site, navigation } from '../../data/site-data.js'; +import PageHeader from '../../components/PageHeader.astro'; +import CenteredText from '../../components/CenteredText.astro'; +import ThreeColumnGrid from '../../components/ThreeColumnGrid.astro'; +import FeatureBlock from '../../components/FeatureBlock.astro'; +import CtaBlock from '../../components/CtaBlock.astro'; +--- + + + + \n
CHANNEL 1
\n

WebSocket actions

\n

Plugins can call runtime capabilities such as files, git, terminal, LLM, memory, and agent operations.

\n\n","
\n
CHANNEL 2
\n

Multiplexed events

\n

Plugins subscribe to task, job, chat, review, calendar, and workflow events as the engine changes.

\n
\n","
\n
CHANNEL 3
\n

HTTP routes

\n

Plugins can expose application routes and backend behavior close to the agent runtime.

\n
\n"]} + /> + + +
diff --git a/site/src/pages/blog/stigmergy-vs-message-passing.astro b/site/src/pages/blog/stigmergy-vs-message-passing.astro new file mode 100644 index 0000000..54576ee --- /dev/null +++ b/site/src/pages/blog/stigmergy-vs-message-passing.astro @@ -0,0 +1,40 @@ +--- +// Auto-generated from site content. Edit source content and regenerate. +import BaseLayout from '../../layouts/BaseLayout.astro'; +import { site, navigation } from '../../data/site-data.js'; +import PageHeader from '../../components/PageHeader.astro'; +import CenteredText from '../../components/CenteredText.astro'; +import ComparisonColumns from '../../components/ComparisonColumns.astro'; +import FeatureBlock from '../../components/FeatureBlock.astro'; +import CtaBlock from '../../components/CtaBlock.astro'; +--- + + + + + + + diff --git a/site/src/pages/blog/what-breaks-running-50-agents.astro b/site/src/pages/blog/what-breaks-running-50-agents.astro new file mode 100644 index 0000000..abea8f7 --- /dev/null +++ b/site/src/pages/blog/what-breaks-running-50-agents.astro @@ -0,0 +1,42 @@ +--- +// Auto-generated from site content. Edit source content and regenerate. +import BaseLayout from '../../layouts/BaseLayout.astro'; +import { site, navigation } from '../../data/site-data.js'; +import PageHeader from '../../components/PageHeader.astro'; +import CenteredText from '../../components/CenteredText.astro'; +import CardGrid from '../../components/CardGrid.astro'; +import FeatureBlock from '../../components/FeatureBlock.astro'; +import CtaBlock from '../../components/CtaBlock.astro'; +--- + + + + + + + diff --git a/site/src/pages/blog/why-we-built-an-engine-not-another-agent.astro b/site/src/pages/blog/why-we-built-an-engine-not-another-agent.astro new file mode 100644 index 0000000..737441a --- /dev/null +++ b/site/src/pages/blog/why-we-built-an-engine-not-another-agent.astro @@ -0,0 +1,45 @@ +--- +// Auto-generated from site content. Edit source content and regenerate. +import BaseLayout from '../../layouts/BaseLayout.astro'; +import { site, navigation } from '../../data/site-data.js'; +import PageHeader from '../../components/PageHeader.astro'; +import CenteredText from '../../components/CenteredText.astro'; +import CardGrid from '../../components/CardGrid.astro'; +import FeatureBlock from '../../components/FeatureBlock.astro'; +import CtaBlock from '../../components/CtaBlock.astro'; +--- + + + + + + +