- Give your AI coding tools the information they really need -
-- AgentCTX encourages teams to treat context as a first class asset. Instead of long, unfocused prompts, you - maintain structured knowledge that AI tools can rely on, such as: -
-- Architecture & domain -
-- High level architecture and domain overview -
-# Project overview...
- Coding style
-- Coding styles, naming conventions, and review expectations -
-# Conventions...
- Security
-- Security considerations, secrets handling, and what must never be changed automatically -
-# Security...
- Documentation
-- Links to documentation, ADRs, and design docs +
+ Less drift, more alignment +
++ AgentCTX helps teams treat project context as a first class asset. You capture architecture, standards, + security, and documentation as linked knowledge assistants can rely on. When it stays current, every tool + follows the same rules, people onboard faster, and you can add or swap editors without starting over. +
+Consistency
++ Every assistant follows the same rules and understands the same project story. +
+Architecture & domain
++ High level architecture and domain overview +
+Faster onboarding
++ New team members get clear guidance from .agenstra/ and consistent behavior from their tools. +
+Coding style
++ Coding styles, naming conventions, and review expectations +
+AgentCTX
++ One context, every assistant
-# Docs...
Security
++ Security considerations, secrets handling, and what must never be changed automatically +
+Documentation
++ Links to documentation, ADRs, and design docs +
+Version control friendly
++ .agenstra/ lives in your repository with pull requests, reviews, and history. +
+Tool flexibility
++ You can add or swap AI tools without redefining everything from scratch. +
+- The richer and more accurate your context file is, the more reliable your AI coding tools become. -
- Less drift, more alignment -
-- -
-- Every assistant follows the same rules and understands the same project story. -
-+ Built for teams that code with AI every day +
++ AgentCTX is a natural fit for everybody who: +
+-
+
- + + Uses multiple AI coding tools across different editors + +
- + + Works in monorepos or large codebases with many contributors + +
- + + Cares about consistent standards and secure defaults + +
- + + Wants AI to feel like part of the engineering system, not a personal side tool + +
- -
-- New team members get clear guidance through the context file and consistent behavior from their tools. -
++ Platform engineers +
++ Standardize tool config across repos +
+- -
-- Context lives in your repository with pull requests, reviews, and history. -
+Dev leads
++ Keep teams aligned on standards +
+- -
-- You can add or swap AI tools without redefining everything from scratch. -
++ Security-conscious teams +
++ Govern what AI can see and do +
++ Open source maintainers +
++ One context for all contributors +
+- AgentCTX turns context from an afterthought into an asset. -
-- Built for teams that code with AI every day -
-- AgentCTX is a natural fit for software development teams! -
-Platform engineers
-- Standardize tool config across repos -
-Dev leads
-- Keep teams aligned on standards -
-Security-conscious teams
-Govern what AI can see and do
-Open source maintainers
-- One context for all contributors -
--
-
- - - - Uses multiple AI coding tools across different editors - - -
- - - - Works in monorepos or large codebases with many contributors - - -
- - - - Cares about consistent standards and secure defaults - - -
- - - - Wants AI to feel like part of the engineering system, not a personal side tool - - -
Add AgentCTX to your next sprint
- Set up AgentCTX in a single project first. Define a minimal context file that covers architecture, - standards, and how to run the app. Generate configs for your existing tools, gather feedback from the team, - and evolve the context over time. + Start with one repository. Define enough context that assistants understand your architecture, standards, + and how you ship. Generate configs for the tools your team already uses, gather feedback, and expand when + the approach sticks.
Once your team feels the difference, you can roll out AgentCTX across repositories to standardize how AI diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/agentctx/agentctx.component.scss b/libs/domains/framework/frontend/feature-portal/src/lib/agentctx/agentctx.component.scss index 6a95ef8a..84127c2b 100644 --- a/libs/domains/framework/frontend/feature-portal/src/lib/agentctx/agentctx.component.scss +++ b/libs/domains/framework/frontend/feature-portal/src/lib/agentctx/agentctx.component.scss @@ -1,115 +1,216 @@ @import '../page.component.scss'; -.agentctx-btn-primary { - background-color: var(--bs-primary); - border-color: var(--bs-primary); +.agentctx-context-map { + position: relative; + max-width: 100%; + margin-inline: auto; - &:hover { - background-color: var(--bs-primary-dark); - border-color: var(--bs-primary-dark); + &__svg { + display: none; } -} -.agentctx-btn-secondary { - border-width: 1.5px; - border-color: rgba(245, 245, 245, 0.3); + &__line { + stroke-width: 0.65; + stroke-linecap: round; + vector-effect: non-scaling-stroke; + } - &:hover { - background-color: rgba(245, 245, 245, 0.1); + &__line--spoke { + stroke: rgba(139, 92, 246, 0.16); } } -// Solution section background (plan) -.agentctx-solution-bg { - background: linear-gradient(180deg, rgba(33, 128, 141, 0.05) 0%, #fff 100%); +.agentctx-context-node, +.agentctx-context-benefit { + position: relative; + z-index: 1; } -.agentctx-diagram-box { - background: #fff; - border: 2px solid var(--bs-primary); +.agentctx-context-hub { + z-index: 2; +} - code { - color: var(--bs-gray); - } +.agentctx-context-node--hub { + background-color: var(--bs-white) !important; + background-image: linear-gradient(to right, rgba(139, 92, 246, 0.05) 0%, transparent 100%); } -.agentctx-file-list { - code { - color: var(--bs-gray); +@media (max-width: 991.98px) { + .agentctx-context-map { + display: grid; + grid-template-columns: 1fr; + grid-template-areas: + 'arch' + 'coding' + 'hub' + 'security' + 'doc' + 'ben1' + 'ben2' + 'ben3' + 'ben4'; + gap: 1rem; } -} -.agentctx-diagram-center { - background: rgba(139, 92, 246, 0.1); - color: var(--bs-primary); + .agentctx-context-node--arch { + grid-area: arch; + } - > code { - color: var(--bs-primary); + .agentctx-context-node--coding { + grid-area: coding; } -} -// Timeline (plan): vertical line and number circles -.agentctx-timeline { - position: relative; - padding-left: 0; -} + .agentctx-context-hub { + grid-area: hub; + } -.agentctx-timeline-number { - width: 56px; - height: 56px; - font-size: 1.5rem; -} + .agentctx-context-node--security { + grid-area: security; + } -// Content section background (plan) -.agentctx-content-bg { - background-color: var(--bs-body-bg-alt); -} + .agentctx-context-node--doc { + grid-area: doc; + } -.accordion-item { - border: 0 !important; -} + .agentctx-context-benefit--1 { + grid-area: ben1; + } -// Accordion header (plan) -.agentctx-accordion-header { - background: transparent !important; - font-weight: 600; + .agentctx-context-benefit--2 { + grid-area: ben2; + } - &:not(.collapsed) { - background: transparent !important; + .agentctx-context-benefit--3 { + grid-area: ben3; } -} -.agentctx-accordion-header::after { - color: var(--bs-success); + .agentctx-context-benefit--4 { + grid-area: ben4; + } } -// Audience section (plan) -.agentctx-audience-bg { - background: rgba(139, 92, 246, 0.03); -} +@media (min-width: 992px) { + .agentctx-context-map { + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr) minmax(0, 1fr); + grid-template-rows: auto auto auto; + grid-template-areas: + 'ben1 arch ben2' + 'coding hub security' + 'ben3 doc ben4'; + gap: 1.25rem 1rem; + max-width: 64rem; + align-items: stretch; + + &__svg { + display: block; + position: absolute; + inset: 0; + width: 100%; + height: 100%; + z-index: 0; + pointer-events: none; + } + } + + .agentctx-context-node--arch { + grid-area: arch; + } + + .agentctx-context-node--coding { + grid-area: coding; + } + + .agentctx-context-node--security { + grid-area: security; + } + + .agentctx-context-node--doc { + grid-area: doc; + } + + .agentctx-context-benefit--1 { + grid-area: ben1; + } -.agentctx-persona-avatar { - width: 64px; - height: 64px; + .agentctx-context-benefit--2 { + grid-area: ben2; + } + + .agentctx-context-benefit--3 { + grid-area: ben3; + } + + .agentctx-context-benefit--4 { + grid-area: ben4; + } + + .agentctx-context-hub { + grid-area: hub; + display: flex; + align-items: center; + justify-content: center; + padding: 0 0.5rem; + } } -.agentctx-persona-avatar-1 { - background: linear-gradient(135deg, var(--bs-primary) 0%, var(--bs-success) 100%); +.agentctx-step-num { + display: inline-flex; + flex-shrink: 0; + width: 2.25rem; + height: 2.25rem; + align-items: center; + justify-content: center; + font-size: 0.875rem; + font-weight: 700; + line-height: 1; +} + +@media (min-width: 1200px) { + .agentctx-how-track { + position: relative; + + &::before { + content: ''; + position: absolute; + top: calc(1.5rem + 1.125rem); + left: 8%; + right: 8%; + height: 1px; + margin-top: 1.5rem; + background: linear-gradient( + 90deg, + transparent 0%, + rgba(139, 92, 246, 0.2) 20%, + rgba(139, 92, 246, 0.35) 50%, + rgba(139, 92, 246, 0.2) 80%, + transparent 100% + ); + z-index: 0; + pointer-events: none; + } + } + + .agentctx-step-card { + position: relative; + z-index: 1; + } } -.agentctx-persona-avatar-2 { - background: linear-gradient(135deg, var(--bs-success) 0%, var(--bs-success-dark) 100%); +.agentctx-persona-dot { + width: 12px; + height: 12px; + background: var(--bs-primary); } -.agentctx-persona-avatar-3 { - background: linear-gradient(135deg, var(--bs-warning) 0%, #c96b4a 100%); +.agentctx-fit-list { + max-width: 36rem; } -.agentctx-persona-avatar-4 { - background: linear-gradient(135deg, var(--bs-secondary) 0%, #4a5258 100%); +.agentctx-audience-lead { + color: rgba(255, 255, 255, 0.82); } -// Code/pre in timeline pre code { background: none; padding: 0; diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/agentctx/agentctx.component.ts b/libs/domains/framework/frontend/feature-portal/src/lib/agentctx/agentctx.component.ts index 43d33a8d..6f1759be 100644 --- a/libs/domains/framework/frontend/feature-portal/src/lib/agentctx/agentctx.component.ts +++ b/libs/domains/framework/frontend/feature-portal/src/lib/agentctx/agentctx.component.ts @@ -22,12 +22,12 @@ export class PortalAgentCtxComponent implements OnInit { ngOnInit(): void { this.titleService.setTitle( - $localize`:@@featurePortalAgentctx-metaTitle:AgentCTX - One Context For All Your AI Coding Tools`, + $localize`:@@featurePortalAgentctx-metaTitle:One context for all your AI coding tools :: Agenstra`, ); this.metaService.addTags([ { name: 'description', - content: $localize`:@@featurePortalAgentctx-metaDescription:AgentCTX generates tool specific configuration from a single shared context. Keep Claude, Cursor, GitHub Copilot, and other AI coding tools aligned with one source of truth.`, + content: $localize`:@@featurePortalAgentctx-metaDescription:Maintain project context once and generate aligned configs for Claude, Cursor, GitHub Copilot, and other AI coding tools your team already uses.`, }, { name: 'keywords', diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.html b/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.html index 5cb4981f..fe0be8a7 100644 --- a/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.html +++ b/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.html @@ -3,11 +3,11 @@
- Fully managed control plane for your AI agents + Fully managed platform for your coding agents
Run Agenstra as a fully managed cloud service. Your agents stay in the tools, clouds, and environments you - already use. You don't deploy infrastructure or operate the control plane. + already use. You do not deploy infrastructure or operate the platform yourself.
-
+
+
+ Hosted on cloud providers your platform team already trusts
+
@@ -67,68 +72,81 @@
+
+
-
-
+
+
- The same control plane. But without maintaining it yourself!
+ The same platform without running it yourself
-
+
Agenstra Cloud is for teams that want governed agents in coding tools and environments they already use, with
upgrades, scaling, and platform operations handled for you.
-
- -
-
- Connect from cloud, on-prem, or hybrid agent runtimes. Your data and infrastructure stay yours.
-
- -
-
- Use the same concepts as self-hosted Agenstra: distributed infrastructure, shared prompts, tools,
- policies, and environments.
-
- -
-
- Central policies, audit-friendly logs, and clear separation between dev, staging, and production.
-
- -
-
- Focus on modeling agents and guardrails. We run the managed control plane and keep it up to date.
-
-
-
- Bring AI agents into how you already build software, without standing up another platform team.
-
-
-
+
+
+
+
+
+
+ Managed console + workspaces
+
+
+
+
+
+
+
+
+ Connect any runtime
+
+ Connect from cloud, on-prem, or hybrid agent runtimes. Your data and infrastructure stay yours.
+
+
+
+
+
+
+ Ready on day one
+
+ Same workspaces, knowledge, policies, and environments as self-hosted Agenstra and is ready on day one.
+
+
+
+
+
+
+
+
+ Governed environments
+
+ Central policies, audit-friendly logs, and clear separation between dev, staging, and production.
+
+
+
+
+
+
+
+
+ We operate it
+
+ Focus on agents and guardrails. We operate the platform and keep it current.
+
+
+
+
@@ -140,7 +158,7 @@
Cloud plans that match how you work
-
+
Pick a managed plan with clear billing. Each tier reflects service type, interval, and what is included. Same
storefront you use to subscribe and scale.
@@ -167,10 +185,10 @@
- @if (plansLoading()) {
+ @if (!plansLoaded() || (plansLoading() && plans().length === 0)) {
@for (s of planSkeletonPlaceholders; track s) {
@@ -184,6 +202,10 @@
+ Plans could not be loaded right now. Please refresh the page or try again later.
+
} @else if (plans().length === 0) {
Plans will appear here when they are available from billing.
@@ -191,11 +213,13 @@
-
+
{{ plan.name }}
- {{ plan.serviceTypeName }}
+ {{
+ plan.serviceTypeName
+ }}
€{{ plan.totalPrice | number: '1.2-2'
@@ -246,90 +270,89 @@ {{ plan.name }}
}
-
+
Getting started
-
-
-
-
- Choose a plan
-
-
-
-
-
- Log in to the interface
-
-
-
-
-
- Connect your agents
-
-
-
-
-
- Start building
-
-
-
+
+ -
+
+
+ Choose a plan
+
+
+ -
+
+
+ Log in to the interface
+
+
+ -
+
+
+ Connect your agents
+
+
+ -
+
+
+ Start building
+
+
+
-
-
+
+
-
- Where the control plane runs
-
-
- Technical outline of the infrastructure behind Agenstra Cloud. We add providers and regions deliberately.
- Security, latency, and your requirements drive the roadmap.
-
-
- @for (infrastructureProvider of infrastructureProviders; track infrastructureProvider.id) {
-
-
+
+ Where Agenstra Cloud runs
+
+ We choose providers and regions deliberately. Security, latency, and your requirements shape the roadmap.
+
+
+
+ @for (infrastructureProvider of infrastructureProviders; track infrastructureProvider.id; let idx = $index) {
+
+
+
-
- {{ infrastructureProvider.tagline }}
-
-
- - Datacenters
- - {{ infrastructureProvider.datacenters }}
- - Network
- - {{ infrastructureProvider.network }}
- - Hardware
- - {{ infrastructureProvider.hardware }}
-
+
+
+ {{ infrastructureProvider.name }}
+ {{ infrastructureProvider.tagline }}
+
+ -
+ Datacenters
+ {{ infrastructureProvider.datacenters }}
+
+ -
+ Network
+ {{ infrastructureProvider.network }}
+
+ -
+ Hardware
+ {{ infrastructureProvider.hardware }}
+
+
-
+
}
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.scss b/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.scss
index 5b726efc..1c5a1c52 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.scss
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.scss
@@ -1,6 +1,6 @@
@import '../page.component.scss';
-// Hero "From" price — same card pattern as pricing page cloud tier
+// Hero "From" price. Same card pattern as pricing page cloud tier.
.cloud-hero-price {
max-width: 17rem;
@@ -9,13 +9,100 @@
}
}
-.cloud-teaser-screenshot {
+.cloud-onboarding-track {
+ display: flex;
+ flex-direction: column;
+ gap: 1.25rem;
+}
+
+.cloud-onboarding-step {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ text-align: center;
+ gap: 0.5rem;
+}
+
+.cloud-onboarding-num {
+ display: inline-flex;
+ flex-shrink: 0;
+ width: 2rem;
+ height: 2rem;
+ align-items: center;
+ justify-content: center;
+ font-size: 0.8125rem;
+ font-weight: 700;
+ line-height: 1;
+}
+
+.cloud-onboarding-step-label {
+ max-width: 11rem;
+}
+
+@media (min-width: 992px) {
+ .cloud-onboarding-track {
+ display: grid;
+ grid-template-columns: repeat(4, 1fr);
+ gap: 1rem 0.75rem;
+ position: relative;
+
+ &::before {
+ content: '';
+ position: absolute;
+ top: 1rem;
+ left: 8%;
+ right: 8%;
+ height: 1px;
+ margin-top: -0.5px;
+ background: linear-gradient(
+ 90deg,
+ transparent 0%,
+ rgba(139, 92, 246, 0.2) 20%,
+ rgba(139, 92, 246, 0.35) 50%,
+ rgba(139, 92, 246, 0.2) 80%,
+ transparent 100%
+ );
+ z-index: 0;
+ pointer-events: none;
+ }
+ }
+
+ .cloud-onboarding-step {
+ position: relative;
+ z-index: 1;
+ padding: 0 0.25rem;
+ }
+
+ .cloud-onboarding-step-label {
+ max-width: none;
+ padding: 0 0.25rem;
+ }
+}
+
+.cloud-infra-card {
+ position: relative;
+ padding-left: 0.35rem;
+}
+
+.cloud-infra-card-accent {
position: absolute;
+ left: 0;
+ top: 0;
bottom: 0;
- left: 52.5%;
- min-width: 50%;
- height: 110%;
- width: auto;
+ width: 4px;
+ border-radius: 4px 0 0 4px;
+}
+
+.cloud-infra-card--primary .cloud-infra-card-accent {
+ background: var(--bs-primary);
+}
+
+.cloud-infra-card--secondary .cloud-infra-card-accent {
+ background: var(--bs-success);
+}
+
+.cloud-infra-spec-label {
+ min-width: 6.5rem;
}
.provider-logo {
@@ -142,14 +229,12 @@
max-width: 100%;
}
-#why {
- .engineering-text {
- line-height: 1.5rem;
- }
-}
-
@media (width >= 992px) {
.cloud-plans-row {
overflow-x: hidden;
}
}
+
+.cloud-why-visual-img {
+ margin-top: -8rem;
+}
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.ts b/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.ts
index 856585c1..5456ca7b 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.ts
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.ts
@@ -55,6 +55,10 @@ export class PortalCloudComponent implements OnInit, AfterViewInit {
initialValue: false,
});
+ readonly cheapestLoaded = toSignal(this.servicePlansFacade.getCheapestServicePlanOfferingLoaded$(), {
+ initialValue: false,
+ });
+
readonly plans = toSignal(this.servicePlansFacade.getServicePlans$(), {
initialValue: [],
});
@@ -63,6 +67,14 @@ export class PortalCloudComponent implements OnInit, AfterViewInit {
initialValue: false,
});
+ readonly plansLoaded = toSignal(this.servicePlansFacade.getServicePlansLoaded$(), {
+ initialValue: false,
+ });
+
+ readonly plansError = toSignal(this.servicePlansFacade.getServicePlansError$(), {
+ initialValue: null,
+ });
+
readonly plansScrollAtStart = signal(true);
readonly plansScrollAtEnd = signal(false);
@@ -89,12 +101,12 @@ export class PortalCloudComponent implements OnInit, AfterViewInit {
ngOnInit(): void {
this.titleService.setTitle(
- $localize`:@@featurePortalCloud-metaTitle:Agenstra Cloud - Fully Managed Control Plane For Your AI Agents`,
+ $localize`:@@featurePortalCloud-metaTitle:Fully managed cloud, zero platform ops :: Agenstra`,
);
this.metaService.addTags([
{
name: 'description',
- content: $localize`:@@featurePortalCloud-metaDescription:Agenstra Cloud is the fully managed, cloud hosted control plane for distributed AI agents. Design, deploy, and govern agents across tools, clouds, and environments without operating your own infrastructure.`,
+ content: $localize`:@@featurePortalCloud-metaDescription:Fully managed Agenstra control plane for distributed coding agents. Deploy, monitor, and govern agents across tools and environments without running your own ops stack.`,
},
{
name: 'keywords',
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/codeium-windsurf/codeium-windsurf.page.ts b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/codeium-windsurf/codeium-windsurf.page.ts
index fc82ce8c..7a0dca48 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/codeium-windsurf/codeium-windsurf.page.ts
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/codeium-windsurf/codeium-windsurf.page.ts
@@ -4,8 +4,8 @@ import { COMPARISON_TECHNOLOGY_FIT_LEAD } from '../shared/misc/comparison-techno
export const CODEIUM_WINDSURF_COMPARISON_PAGE: ComparisonPageConfig = {
slug: 'codeium-windsurf',
competitorDisplayName: 'Codeium / Windsurf',
- metaTitle: $localize`:@@featurePortalComparison-codeium-metaTitle:Codeium & Windsurf vs. Agenstra. AI agent platform comparison`,
- metaDescription: $localize`:@@featurePortalComparison-codeium-metaDescription:Compare Codeium and Windsurf with Agenstra’s multi-workspace agent control plane and browser IDE.`,
+ metaTitle: $localize`:@@featurePortalComparison-codeium-metaTitle:Codeium & Windsurf vs Agenstra :: Agenstra`,
+ metaDescription: $localize`:@@featurePortalComparison-codeium-metaDescription:Compare Codeium and Windsurf with Agenstra’s multi-workspace agent control plane, browser IDE, ticket workflows, and self-hosted governance for platform teams.`,
canonicalUrl: 'https://agenstra.com/compare/codeium-windsurf',
heroSubtitle: $localize`:@@featurePortalComparison-codeium-heroSubtitle:Broad IDE coverage and optional self-hosted backends versus a dedicated agent operations console.`,
overviewCompetitorLead: $localize`:@@featurePortalComparison-codeium-overviewCompetitor:Codeium reaches developers across many editors, while Windsurf offers a dedicated AI-native editing experience from the same vendor. Organizations choose them for broad rollout, inline help inside existing repos, and deployment options that keep sensitive workloads closer to home.`,
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/cursor/cursor.page.ts b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/cursor/cursor.page.ts
index e3d1c90e..d18afa96 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/cursor/cursor.page.ts
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/cursor/cursor.page.ts
@@ -4,8 +4,8 @@ import { COMPARISON_TECHNOLOGY_FIT_LEAD } from '../shared/misc/comparison-techno
export const CURSOR_COMPARISON_PAGE: ComparisonPageConfig = {
slug: 'cursor',
competitorDisplayName: 'Cursor',
- metaTitle: $localize`:@@featurePortalComparison-cursor-metaTitle:Cursor vs. Agenstra. AI agent platform comparison`,
- metaDescription: $localize`:@@featurePortalComparison-cursor-metaDescription:Compare Cursor’s AI-native editor with Agenstra’s web console and multi-workspace agent control plane.`,
+ metaTitle: $localize`:@@featurePortalComparison-cursor-metaTitle:Cursor vs Agenstra :: Agenstra`,
+ metaDescription: $localize`:@@featurePortalComparison-cursor-metaDescription:Compare Cursor’s AI-native editor with Agenstra’s web console, multi-workspace agent hosts, tickets, governance, and self-hosted delivery options.`,
canonicalUrl: 'https://agenstra.com/compare/cursor',
heroSubtitle: $localize`:@@featurePortalComparison-cursor-heroSubtitle:IDE-first velocity versus an operations-focused console for distributed agent hosts.`,
overviewCompetitorLead: $localize`:@@featurePortalComparison-cursor-overviewCompetitor:Cursor is an AI-first coding environment built around autocomplete, chat, and agent modes in the editor developers already use every day. It focuses on speed and depth inside the desktop workflow rather than running a separate fleet of agent hosts under your own control plane.`,
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/devin/devin.page.ts b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/devin/devin.page.ts
index 1f06f94b..8536f8b7 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/devin/devin.page.ts
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/devin/devin.page.ts
@@ -4,8 +4,8 @@ import { COMPARISON_TECHNOLOGY_FIT_LEAD } from '../shared/misc/comparison-techno
export const DEVIN_COMPARISON_PAGE: ComparisonPageConfig = {
slug: 'devin',
competitorDisplayName: 'Devin',
- metaTitle: $localize`:@@featurePortalComparison-devin-metaTitle:Devin vs. Agenstra. AI agent platform comparison`,
- metaDescription: $localize`:@@featurePortalComparison-devin-metaDescription:Compare Devin’s cloud autonomous engineer with Agenstra’s self-hosted multi-workspace control plane, tickets, knowledge, and deployments.`,
+ metaTitle: $localize`:@@featurePortalComparison-devin-metaTitle:Devin vs Agenstra :: Agenstra`,
+ metaDescription: $localize`:@@featurePortalComparison-devin-metaDescription:Compare Devin’s cloud autonomous engineer with Agenstra’s self-hosted control plane: workspaces, tickets, team knowledge, releases, and governance on your infrastructure.`,
canonicalUrl: 'https://agenstra.com/compare/devin',
heroSubtitle: $localize`:@@featurePortalComparison-devin-heroSubtitle:Cloud sessions from Cognition versus a control plane you run for many Docker-backed coding agents.`,
overviewCompetitorLead: $localize`:@@featurePortalComparison-devin-overviewCompetitor:Devin gives you a cloud-hosted autonomous engineer that works in a browser with Git and connects to the tools your teams already use for issues and delivery. It fits when you want the vendor to run the workspace and you value a managed experience over operating your own agent infrastructure.`,
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/github-copilot/github-copilot.page.ts b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/github-copilot/github-copilot.page.ts
index 37d0cfaf..449acb12 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/github-copilot/github-copilot.page.ts
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/github-copilot/github-copilot.page.ts
@@ -4,8 +4,8 @@ import { COMPARISON_TECHNOLOGY_FIT_LEAD } from '../shared/misc/comparison-techno
export const GITHUB_COPILOT_COMPARISON_PAGE: ComparisonPageConfig = {
slug: 'github-copilot',
competitorDisplayName: 'GitHub Copilot',
- metaTitle: $localize`:@@featurePortalComparison-copilot-metaTitle:GitHub Copilot vs. Agenstra. AI agent platform comparison`,
- metaDescription: $localize`:@@featurePortalComparison-copilot-metaDescription:Compare GitHub Copilot and Copilot coding agent with Agenstra’s self-hosted agent control plane.`,
+ metaTitle: $localize`:@@featurePortalComparison-copilot-metaTitle:GitHub Copilot vs Agenstra :: Agenstra`,
+ metaDescription: $localize`:@@featurePortalComparison-copilot-metaDescription:Compare GitHub Copilot and Copilot coding agent with Agenstra’s agent control plane, browser IDE, workspaces, tickets, and operations-focused governance.`,
canonicalUrl: 'https://agenstra.com/compare/github-copilot',
heroSubtitle: $localize`:@@featurePortalComparison-copilot-heroSubtitle:GitHub-native AI assistance versus an infrastructure-first agent operations stack.`,
overviewCompetitorLead: $localize`:@@featurePortalComparison-copilot-overviewCompetitor:GitHub Copilot brings AI assistance into GitHub and popular editors, with enterprise-grade access controls aligned to repos and organizations you already manage there. It fits teams that want GitHub to stay the hub for review, identity, and automation while AI stays close to pull requests and CI.`,
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/orq-ai/orq-ai.page.ts b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/orq-ai/orq-ai.page.ts
index 4f82a912..4ef4a57a 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/orq-ai/orq-ai.page.ts
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/orq-ai/orq-ai.page.ts
@@ -4,8 +4,8 @@ import { COMPARISON_TECHNOLOGY_FIT_LEAD } from '../shared/misc/comparison-techno
export const ORQ_AI_COMPARISON_PAGE: ComparisonPageConfig = {
slug: 'orq-ai',
competitorDisplayName: 'Orq.ai',
- metaTitle: $localize`:@@featurePortalComparison-orq-metaTitle:Orq.ai vs. Agenstra. AI agent platform comparison`,
- metaDescription: $localize`:@@featurePortalComparison-orq-metaDescription:Compare Orq.ai’s agent lifecycle platform with Agenstra’s self-hosted coding agent control plane.`,
+ metaTitle: $localize`:@@featurePortalComparison-orq-metaTitle:Orq.ai vs Agenstra :: Agenstra`,
+ metaDescription: $localize`:@@featurePortalComparison-orq-metaDescription:Compare Orq.ai’s agent lifecycle platform with Agenstra’s coding agent control plane: workspaces, delivery workflows, auditability, and infrastructure you control.`,
canonicalUrl: 'https://agenstra.com/compare/orq-ai',
heroSubtitle: $localize`:@@featurePortalComparison-orq-heroSubtitle:Managed experimentation and deployments versus ops-owned Docker agent infrastructure.`,
overviewCompetitorLead: $localize`:@@featurePortalComparison-orq-overviewCompetitor:Orq.ai helps teams prototype, deploy, and monitor generative AI agents and experiments across projects with roles and workspaces built for collaboration. It appeals when you want a hosted lifecycle platform for many AI use cases and compliance-aware deployment options from the vendor.`,
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/portkey/portkey.page.ts b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/portkey/portkey.page.ts
index 82b777fe..0436dcb9 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/portkey/portkey.page.ts
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/portkey/portkey.page.ts
@@ -4,8 +4,8 @@ import { COMPARISON_TECHNOLOGY_FIT_LEAD } from '../shared/misc/comparison-techno
export const PORTKEY_COMPARISON_PAGE: ComparisonPageConfig = {
slug: 'portkey',
competitorDisplayName: 'Portkey',
- metaTitle: $localize`:@@featurePortalComparison-portkey-metaTitle:Portkey vs. Agenstra. AI agent platform comparison`,
- metaDescription: $localize`:@@featurePortalComparison-portkey-metaDescription:Compare Portkey’s LLM gateway with Agenstra’s workspace-oriented agent control plane.`,
+ metaTitle: $localize`:@@featurePortalComparison-portkey-metaTitle:Portkey vs Agenstra :: Agenstra`,
+ metaDescription: $localize`:@@featurePortalComparison-portkey-metaDescription:Compare Portkey’s LLM gateway with Agenstra’s workspace-oriented agent control plane for coding agents, tickets, IDE access, and governed software delivery.`,
canonicalUrl: 'https://agenstra.com/compare/portkey',
heroSubtitle: $localize`:@@featurePortalComparison-portkey-heroSubtitle:Centralized model traffic governance versus Docker agent hosts with IDE and ticket workflows.`,
overviewCompetitorLead: $localize`:@@featurePortalComparison-portkey-overviewCompetitor:Portkey gives you a central gateway for model and agent traffic so you can enforce guardrails, trace usage, and switch providers without rewriting every application. Its strength is unified governance of LLM calls rather than a full product surface for coding agents, Git, and delivery boards.`,
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/layout/comparison-layout.component.html b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/layout/comparison-layout.component.html
index 33c3eeb1..4d26cdef 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/layout/comparison-layout.component.html
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/layout/comparison-layout.component.html
@@ -1,79 +1,93 @@
-
+
-
- {{ page.competitorDisplayName }}
- vs.
- Agenstra
-
- {{ page.heroSubtitle }}
+
+
+
+ {{ page.competitorDisplayName }}
+ vs.
+ Agenstra
+
+ {{ page.heroSubtitle }}
+
+
-
+
-
+
+
+ Two approaches to coding agents at scale
+
+
+
- {{ page.competitorDisplayName }}
- {{ page.overviewCompetitorLead }}
+
+
+
+
+ What they optimize for
+
+
+ {{ page.overviewCompetitorLead }}
+
- Agenstra
- {{ page.overviewAgenstraLead }}
+
+
+
+ What we optimize for
+
+ {{ page.overviewAgenstraLead }}
+
-
+
-
- Feature comparison
-
-
- The same thirteen capabilities appear on every page. You can compare vendors without chasing different rubrics.
-
-
+
+ Feature comparison
+
+ The same thirteen capabilities appear on every page. You can compare vendors without chasing different rubrics.
+
+
+
+
+
+ Hover an icon for a short rationale. Ratings follow a public research pass (Strong / Partial / Weak / N.A.) and
+ are meant for orientation. They are not a substitute for your own procurement review.
+
+
-
-
+
+
-
-
-
-
-
-
- Build with technology that fits your needs
-
- {{ page.technologyFitLead }}
-
-
-
- More comparisons
-
- @for (item of otherComparisons; track item.slug) {
- -
- {{ item.label }}
-
- }
-
-
-
-
+
+
+
+
+ Build with technology that fits your needs
+
+ {{ page.technologyFitLead }}
-
+
+
+
+
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/layout/comparison-layout.component.scss b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/layout/comparison-layout.component.scss
index cd961088..81f170ff 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/layout/comparison-layout.component.scss
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/layout/comparison-layout.component.scss
@@ -1,24 +1,55 @@
@import '../../../page.component.scss';
-.hero-lead.max-w-750 {
- max-width: 750px;
-}
-
-.max-w-750 {
- max-width: 750px;
-}
-
-.comparison-more-comparisons {
- @media (max-width: 991px) {
- position: relative !important;
- top: auto !important;
- right: auto !important;
- margin-top: 0 !important;
- margin-right: 0 !important;
- margin-left: 0 !important;
- margin-bottom: 0 !important;
- padding-top: 3rem !important;
- border-top-left-radius: var(--bs-border-radius-lg) !important;
- border-top-right-radius: var(--bs-border-radius-lg) !important;
+.comparison-vendor-icon {
+ width: 48px;
+ height: 48px;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 1.35rem;
+ flex-shrink: 0;
+}
+
+.comparison-vendor-icon--muted {
+ background: rgba(98, 108, 113, 0.12);
+ color: var(--bs-secondary);
+}
+
+.comparison-vendor-icon--primary {
+ background: rgba(139, 92, 246, 0.12);
+ color: var(--bs-primary);
+}
+
+.comparison-legend-pill {
+ background: var(--bs-body-tertiary);
+ color: var(--bs-body-color);
+ font-weight: 500;
+ padding: 0.4rem 0.85rem;
+}
+
+.comparison-fit-main {
+ background: rgba(255, 255, 255, 0.06);
+ backdrop-filter: blur(8px);
+}
+
+.comparison-fit-lead {
+ color: rgba(255, 255, 255, 0.88);
+}
+
+.comparison-more-panel {
+ background: rgba(255, 255, 255, 0.08);
+}
+
+.comparison-more-link {
+ color: rgba(255, 255, 255, 0.9);
+ padding: 0.35rem 0;
+ border-radius: 0.25rem;
+ transition:
+ color 0.2s ease,
+ padding-left 0.2s ease;
+
+ &:hover {
+ color: #fff;
+ padding-left: 0.25rem;
}
}
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.html b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.html
index 22635402..0ed6de7b 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.html
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.html
@@ -1,5 +1,5 @@
-
+
@for (row of rows; track row.dimension) {
-
+
{{ row.dimension }}
{{ row.question }}
-
+
@let ag = matrixStrengthVisual(row.agenstra);
-
+
@let co = matrixStrengthVisual(row.competitor);
-
- Hover an icon for a short rationale. Ratings follow a public research pass (Strong / Partial / Weak / N.A.) and are
- meant for orientation. They are not a substitute for your own procurement review.
-
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.scss b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.scss
index 49c2002b..7bd9a8d6 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.scss
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.scss
@@ -1,7 +1,11 @@
.comparison-matrix-table {
.table {
--bs-table-bg: var(--bs-white);
- --bs-table-hover-bg: rgba(255, 255, 255, 0.08);
+ --bs-table-hover-bg: rgba(139, 92, 246, 0.04);
+ }
+
+ thead th {
+ font-weight: 600;
}
}
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/tabnine-enterprise/tabnine-enterprise.page.ts b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/tabnine-enterprise/tabnine-enterprise.page.ts
index 16f29b51..cd2213d3 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/tabnine-enterprise/tabnine-enterprise.page.ts
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/tabnine-enterprise/tabnine-enterprise.page.ts
@@ -4,8 +4,8 @@ import { COMPARISON_TECHNOLOGY_FIT_LEAD } from '../shared/misc/comparison-techno
export const TABNINE_ENTERPRISE_COMPARISON_PAGE: ComparisonPageConfig = {
slug: 'tabnine-enterprise',
competitorDisplayName: 'Tabnine Enterprise',
- metaTitle: $localize`:@@featurePortalComparison-tabnine-metaTitle:Tabnine Enterprise vs. Agenstra. AI agent platform comparison`,
- metaDescription: $localize`:@@featurePortalComparison-tabnine-metaDescription:Compare self-hosted Tabnine Enterprise with Agenstra’s agent control plane and browser IDE.`,
+ metaTitle: $localize`:@@featurePortalComparison-tabnine-metaTitle:Tabnine vs Agenstra :: Agenstra`,
+ metaDescription: $localize`:@@featurePortalComparison-tabnine-metaDescription:Compare self-hosted Tabnine Enterprise with Agenstra’s agent control plane, browser IDE, workspace operations, tickets, and governance for coding agents.`,
canonicalUrl: 'https://agenstra.com/compare/tabnine-enterprise',
heroSubtitle: $localize`:@@featurePortalComparison-tabnine-heroSubtitle:Private assistant clusters versus containerized agent fleets with tickets and deployments.`,
overviewCompetitorLead: $localize`:@@featurePortalComparison-tabnine-overviewCompetitor:Tabnine Enterprise keeps AI coding assistance inside your VPC or data center so completions and chat stay on infrastructure you operate. It suits teams whose priority is private assistant coverage in familiar editors rather than a full agent operations layer for remote workspaces.`,
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/container/container.component.html b/libs/domains/framework/frontend/feature-portal/src/lib/container/container.component.html
index 9e3c990a..a4fa0c50 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/container/container.component.html
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/container/container.component.html
@@ -36,9 +36,9 @@
+ Hosted on cloud providers your platform team already trusts +
+
+
-
-
+
+
- The same control plane. But without maintaining it yourself!
+ The same platform without running it yourself
-
+
Agenstra Cloud is for teams that want governed agents in coding tools and environments they already use, with
upgrades, scaling, and platform operations handled for you.
-
- -
-
- Connect from cloud, on-prem, or hybrid agent runtimes. Your data and infrastructure stay yours.
-
- -
-
- Use the same concepts as self-hosted Agenstra: distributed infrastructure, shared prompts, tools,
- policies, and environments.
-
- -
-
- Central policies, audit-friendly logs, and clear separation between dev, staging, and production.
-
- -
-
- Focus on modeling agents and guardrails. We run the managed control plane and keep it up to date.
-
-
-
- Bring AI agents into how you already build software, without standing up another platform team.
-
-
-
+
+
+
+
+
+
+ Managed console + workspaces
+
+
+
+
+
+
+
+
+ Connect any runtime
+
+ Connect from cloud, on-prem, or hybrid agent runtimes. Your data and infrastructure stay yours.
+
+
+
+
+
+
+ Ready on day one
+
+ Same workspaces, knowledge, policies, and environments as self-hosted Agenstra and is ready on day one.
+
+
+
+
+
+
+
+
+ Governed environments
+
+ Central policies, audit-friendly logs, and clear separation between dev, staging, and production.
+
+
+
+
+
+
+
+
+ We operate it
+
+ Focus on agents and guardrails. We operate the platform and keep it current.
+
+
+
+
@@ -140,7 +158,7 @@
Cloud plans that match how you work
-
+
Pick a managed plan with clear billing. Each tier reflects service type, interval, and what is included. Same
storefront you use to subscribe and scale.
@@ -167,10 +185,10 @@
- @if (plansLoading()) {
+ @if (!plansLoaded() || (plansLoading() && plans().length === 0)) {
@for (s of planSkeletonPlaceholders; track s) {
@@ -184,6 +202,10 @@
+ Plans could not be loaded right now. Please refresh the page or try again later.
+
} @else if (plans().length === 0) {
Plans will appear here when they are available from billing.
@@ -191,11 +213,13 @@
-
+
{{ plan.name }}
- {{ plan.serviceTypeName }}
+ {{
+ plan.serviceTypeName
+ }}
€{{ plan.totalPrice | number: '1.2-2'
@@ -246,90 +270,89 @@ {{ plan.name }}
}
-
+
Getting started
-
-
-
-
- Choose a plan
-
-
-
-
-
- Log in to the interface
-
-
-
-
-
- Connect your agents
-
-
-
-
-
- Start building
-
-
-
+
+ -
+
+
+ Choose a plan
+
+
+ -
+
+
+ Log in to the interface
+
+
+ -
+
+
+ Connect your agents
+
+
+ -
+
+
+ Start building
+
+
+
-
-
+
+
-
- Where the control plane runs
-
-
- Technical outline of the infrastructure behind Agenstra Cloud. We add providers and regions deliberately.
- Security, latency, and your requirements drive the roadmap.
-
-
- @for (infrastructureProvider of infrastructureProviders; track infrastructureProvider.id) {
-
-
+
+ Where Agenstra Cloud runs
+
+ We choose providers and regions deliberately. Security, latency, and your requirements shape the roadmap.
+
+
+
+ @for (infrastructureProvider of infrastructureProviders; track infrastructureProvider.id; let idx = $index) {
+
+
+
-
- {{ infrastructureProvider.tagline }}
-
-
- - Datacenters
- - {{ infrastructureProvider.datacenters }}
- - Network
- - {{ infrastructureProvider.network }}
- - Hardware
- - {{ infrastructureProvider.hardware }}
-
+
+
+ {{ infrastructureProvider.name }}
+ {{ infrastructureProvider.tagline }}
+
+ -
+ Datacenters
+ {{ infrastructureProvider.datacenters }}
+
+ -
+ Network
+ {{ infrastructureProvider.network }}
+
+ -
+ Hardware
+ {{ infrastructureProvider.hardware }}
+
+
-
+
}
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.scss b/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.scss
index 5b726efc..1c5a1c52 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.scss
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.scss
@@ -1,6 +1,6 @@
@import '../page.component.scss';
-// Hero "From" price — same card pattern as pricing page cloud tier
+// Hero "From" price. Same card pattern as pricing page cloud tier.
.cloud-hero-price {
max-width: 17rem;
@@ -9,13 +9,100 @@
}
}
-.cloud-teaser-screenshot {
+.cloud-onboarding-track {
+ display: flex;
+ flex-direction: column;
+ gap: 1.25rem;
+}
+
+.cloud-onboarding-step {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ text-align: center;
+ gap: 0.5rem;
+}
+
+.cloud-onboarding-num {
+ display: inline-flex;
+ flex-shrink: 0;
+ width: 2rem;
+ height: 2rem;
+ align-items: center;
+ justify-content: center;
+ font-size: 0.8125rem;
+ font-weight: 700;
+ line-height: 1;
+}
+
+.cloud-onboarding-step-label {
+ max-width: 11rem;
+}
+
+@media (min-width: 992px) {
+ .cloud-onboarding-track {
+ display: grid;
+ grid-template-columns: repeat(4, 1fr);
+ gap: 1rem 0.75rem;
+ position: relative;
+
+ &::before {
+ content: '';
+ position: absolute;
+ top: 1rem;
+ left: 8%;
+ right: 8%;
+ height: 1px;
+ margin-top: -0.5px;
+ background: linear-gradient(
+ 90deg,
+ transparent 0%,
+ rgba(139, 92, 246, 0.2) 20%,
+ rgba(139, 92, 246, 0.35) 50%,
+ rgba(139, 92, 246, 0.2) 80%,
+ transparent 100%
+ );
+ z-index: 0;
+ pointer-events: none;
+ }
+ }
+
+ .cloud-onboarding-step {
+ position: relative;
+ z-index: 1;
+ padding: 0 0.25rem;
+ }
+
+ .cloud-onboarding-step-label {
+ max-width: none;
+ padding: 0 0.25rem;
+ }
+}
+
+.cloud-infra-card {
+ position: relative;
+ padding-left: 0.35rem;
+}
+
+.cloud-infra-card-accent {
position: absolute;
+ left: 0;
+ top: 0;
bottom: 0;
- left: 52.5%;
- min-width: 50%;
- height: 110%;
- width: auto;
+ width: 4px;
+ border-radius: 4px 0 0 4px;
+}
+
+.cloud-infra-card--primary .cloud-infra-card-accent {
+ background: var(--bs-primary);
+}
+
+.cloud-infra-card--secondary .cloud-infra-card-accent {
+ background: var(--bs-success);
+}
+
+.cloud-infra-spec-label {
+ min-width: 6.5rem;
}
.provider-logo {
@@ -142,14 +229,12 @@
max-width: 100%;
}
-#why {
- .engineering-text {
- line-height: 1.5rem;
- }
-}
-
@media (width >= 992px) {
.cloud-plans-row {
overflow-x: hidden;
}
}
+
+.cloud-why-visual-img {
+ margin-top: -8rem;
+}
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.ts b/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.ts
index 856585c1..5456ca7b 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.ts
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.ts
@@ -55,6 +55,10 @@ export class PortalCloudComponent implements OnInit, AfterViewInit {
initialValue: false,
});
+ readonly cheapestLoaded = toSignal(this.servicePlansFacade.getCheapestServicePlanOfferingLoaded$(), {
+ initialValue: false,
+ });
+
readonly plans = toSignal(this.servicePlansFacade.getServicePlans$(), {
initialValue: [],
});
@@ -63,6 +67,14 @@ export class PortalCloudComponent implements OnInit, AfterViewInit {
initialValue: false,
});
+ readonly plansLoaded = toSignal(this.servicePlansFacade.getServicePlansLoaded$(), {
+ initialValue: false,
+ });
+
+ readonly plansError = toSignal(this.servicePlansFacade.getServicePlansError$(), {
+ initialValue: null,
+ });
+
readonly plansScrollAtStart = signal(true);
readonly plansScrollAtEnd = signal(false);
@@ -89,12 +101,12 @@ export class PortalCloudComponent implements OnInit, AfterViewInit {
ngOnInit(): void {
this.titleService.setTitle(
- $localize`:@@featurePortalCloud-metaTitle:Agenstra Cloud - Fully Managed Control Plane For Your AI Agents`,
+ $localize`:@@featurePortalCloud-metaTitle:Fully managed cloud, zero platform ops :: Agenstra`,
);
this.metaService.addTags([
{
name: 'description',
- content: $localize`:@@featurePortalCloud-metaDescription:Agenstra Cloud is the fully managed, cloud hosted control plane for distributed AI agents. Design, deploy, and govern agents across tools, clouds, and environments without operating your own infrastructure.`,
+ content: $localize`:@@featurePortalCloud-metaDescription:Fully managed Agenstra control plane for distributed coding agents. Deploy, monitor, and govern agents across tools and environments without running your own ops stack.`,
},
{
name: 'keywords',
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/codeium-windsurf/codeium-windsurf.page.ts b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/codeium-windsurf/codeium-windsurf.page.ts
index fc82ce8c..7a0dca48 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/codeium-windsurf/codeium-windsurf.page.ts
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/codeium-windsurf/codeium-windsurf.page.ts
@@ -4,8 +4,8 @@ import { COMPARISON_TECHNOLOGY_FIT_LEAD } from '../shared/misc/comparison-techno
export const CODEIUM_WINDSURF_COMPARISON_PAGE: ComparisonPageConfig = {
slug: 'codeium-windsurf',
competitorDisplayName: 'Codeium / Windsurf',
- metaTitle: $localize`:@@featurePortalComparison-codeium-metaTitle:Codeium & Windsurf vs. Agenstra. AI agent platform comparison`,
- metaDescription: $localize`:@@featurePortalComparison-codeium-metaDescription:Compare Codeium and Windsurf with Agenstra’s multi-workspace agent control plane and browser IDE.`,
+ metaTitle: $localize`:@@featurePortalComparison-codeium-metaTitle:Codeium & Windsurf vs Agenstra :: Agenstra`,
+ metaDescription: $localize`:@@featurePortalComparison-codeium-metaDescription:Compare Codeium and Windsurf with Agenstra’s multi-workspace agent control plane, browser IDE, ticket workflows, and self-hosted governance for platform teams.`,
canonicalUrl: 'https://agenstra.com/compare/codeium-windsurf',
heroSubtitle: $localize`:@@featurePortalComparison-codeium-heroSubtitle:Broad IDE coverage and optional self-hosted backends versus a dedicated agent operations console.`,
overviewCompetitorLead: $localize`:@@featurePortalComparison-codeium-overviewCompetitor:Codeium reaches developers across many editors, while Windsurf offers a dedicated AI-native editing experience from the same vendor. Organizations choose them for broad rollout, inline help inside existing repos, and deployment options that keep sensitive workloads closer to home.`,
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/cursor/cursor.page.ts b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/cursor/cursor.page.ts
index e3d1c90e..d18afa96 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/cursor/cursor.page.ts
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/cursor/cursor.page.ts
@@ -4,8 +4,8 @@ import { COMPARISON_TECHNOLOGY_FIT_LEAD } from '../shared/misc/comparison-techno
export const CURSOR_COMPARISON_PAGE: ComparisonPageConfig = {
slug: 'cursor',
competitorDisplayName: 'Cursor',
- metaTitle: $localize`:@@featurePortalComparison-cursor-metaTitle:Cursor vs. Agenstra. AI agent platform comparison`,
- metaDescription: $localize`:@@featurePortalComparison-cursor-metaDescription:Compare Cursor’s AI-native editor with Agenstra’s web console and multi-workspace agent control plane.`,
+ metaTitle: $localize`:@@featurePortalComparison-cursor-metaTitle:Cursor vs Agenstra :: Agenstra`,
+ metaDescription: $localize`:@@featurePortalComparison-cursor-metaDescription:Compare Cursor’s AI-native editor with Agenstra’s web console, multi-workspace agent hosts, tickets, governance, and self-hosted delivery options.`,
canonicalUrl: 'https://agenstra.com/compare/cursor',
heroSubtitle: $localize`:@@featurePortalComparison-cursor-heroSubtitle:IDE-first velocity versus an operations-focused console for distributed agent hosts.`,
overviewCompetitorLead: $localize`:@@featurePortalComparison-cursor-overviewCompetitor:Cursor is an AI-first coding environment built around autocomplete, chat, and agent modes in the editor developers already use every day. It focuses on speed and depth inside the desktop workflow rather than running a separate fleet of agent hosts under your own control plane.`,
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/devin/devin.page.ts b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/devin/devin.page.ts
index 1f06f94b..8536f8b7 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/devin/devin.page.ts
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/devin/devin.page.ts
@@ -4,8 +4,8 @@ import { COMPARISON_TECHNOLOGY_FIT_LEAD } from '../shared/misc/comparison-techno
export const DEVIN_COMPARISON_PAGE: ComparisonPageConfig = {
slug: 'devin',
competitorDisplayName: 'Devin',
- metaTitle: $localize`:@@featurePortalComparison-devin-metaTitle:Devin vs. Agenstra. AI agent platform comparison`,
- metaDescription: $localize`:@@featurePortalComparison-devin-metaDescription:Compare Devin’s cloud autonomous engineer with Agenstra’s self-hosted multi-workspace control plane, tickets, knowledge, and deployments.`,
+ metaTitle: $localize`:@@featurePortalComparison-devin-metaTitle:Devin vs Agenstra :: Agenstra`,
+ metaDescription: $localize`:@@featurePortalComparison-devin-metaDescription:Compare Devin’s cloud autonomous engineer with Agenstra’s self-hosted control plane: workspaces, tickets, team knowledge, releases, and governance on your infrastructure.`,
canonicalUrl: 'https://agenstra.com/compare/devin',
heroSubtitle: $localize`:@@featurePortalComparison-devin-heroSubtitle:Cloud sessions from Cognition versus a control plane you run for many Docker-backed coding agents.`,
overviewCompetitorLead: $localize`:@@featurePortalComparison-devin-overviewCompetitor:Devin gives you a cloud-hosted autonomous engineer that works in a browser with Git and connects to the tools your teams already use for issues and delivery. It fits when you want the vendor to run the workspace and you value a managed experience over operating your own agent infrastructure.`,
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/github-copilot/github-copilot.page.ts b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/github-copilot/github-copilot.page.ts
index 37d0cfaf..449acb12 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/github-copilot/github-copilot.page.ts
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/github-copilot/github-copilot.page.ts
@@ -4,8 +4,8 @@ import { COMPARISON_TECHNOLOGY_FIT_LEAD } from '../shared/misc/comparison-techno
export const GITHUB_COPILOT_COMPARISON_PAGE: ComparisonPageConfig = {
slug: 'github-copilot',
competitorDisplayName: 'GitHub Copilot',
- metaTitle: $localize`:@@featurePortalComparison-copilot-metaTitle:GitHub Copilot vs. Agenstra. AI agent platform comparison`,
- metaDescription: $localize`:@@featurePortalComparison-copilot-metaDescription:Compare GitHub Copilot and Copilot coding agent with Agenstra’s self-hosted agent control plane.`,
+ metaTitle: $localize`:@@featurePortalComparison-copilot-metaTitle:GitHub Copilot vs Agenstra :: Agenstra`,
+ metaDescription: $localize`:@@featurePortalComparison-copilot-metaDescription:Compare GitHub Copilot and Copilot coding agent with Agenstra’s agent control plane, browser IDE, workspaces, tickets, and operations-focused governance.`,
canonicalUrl: 'https://agenstra.com/compare/github-copilot',
heroSubtitle: $localize`:@@featurePortalComparison-copilot-heroSubtitle:GitHub-native AI assistance versus an infrastructure-first agent operations stack.`,
overviewCompetitorLead: $localize`:@@featurePortalComparison-copilot-overviewCompetitor:GitHub Copilot brings AI assistance into GitHub and popular editors, with enterprise-grade access controls aligned to repos and organizations you already manage there. It fits teams that want GitHub to stay the hub for review, identity, and automation while AI stays close to pull requests and CI.`,
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/orq-ai/orq-ai.page.ts b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/orq-ai/orq-ai.page.ts
index 4f82a912..4ef4a57a 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/orq-ai/orq-ai.page.ts
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/orq-ai/orq-ai.page.ts
@@ -4,8 +4,8 @@ import { COMPARISON_TECHNOLOGY_FIT_LEAD } from '../shared/misc/comparison-techno
export const ORQ_AI_COMPARISON_PAGE: ComparisonPageConfig = {
slug: 'orq-ai',
competitorDisplayName: 'Orq.ai',
- metaTitle: $localize`:@@featurePortalComparison-orq-metaTitle:Orq.ai vs. Agenstra. AI agent platform comparison`,
- metaDescription: $localize`:@@featurePortalComparison-orq-metaDescription:Compare Orq.ai’s agent lifecycle platform with Agenstra’s self-hosted coding agent control plane.`,
+ metaTitle: $localize`:@@featurePortalComparison-orq-metaTitle:Orq.ai vs Agenstra :: Agenstra`,
+ metaDescription: $localize`:@@featurePortalComparison-orq-metaDescription:Compare Orq.ai’s agent lifecycle platform with Agenstra’s coding agent control plane: workspaces, delivery workflows, auditability, and infrastructure you control.`,
canonicalUrl: 'https://agenstra.com/compare/orq-ai',
heroSubtitle: $localize`:@@featurePortalComparison-orq-heroSubtitle:Managed experimentation and deployments versus ops-owned Docker agent infrastructure.`,
overviewCompetitorLead: $localize`:@@featurePortalComparison-orq-overviewCompetitor:Orq.ai helps teams prototype, deploy, and monitor generative AI agents and experiments across projects with roles and workspaces built for collaboration. It appeals when you want a hosted lifecycle platform for many AI use cases and compliance-aware deployment options from the vendor.`,
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/portkey/portkey.page.ts b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/portkey/portkey.page.ts
index 82b777fe..0436dcb9 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/portkey/portkey.page.ts
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/portkey/portkey.page.ts
@@ -4,8 +4,8 @@ import { COMPARISON_TECHNOLOGY_FIT_LEAD } from '../shared/misc/comparison-techno
export const PORTKEY_COMPARISON_PAGE: ComparisonPageConfig = {
slug: 'portkey',
competitorDisplayName: 'Portkey',
- metaTitle: $localize`:@@featurePortalComparison-portkey-metaTitle:Portkey vs. Agenstra. AI agent platform comparison`,
- metaDescription: $localize`:@@featurePortalComparison-portkey-metaDescription:Compare Portkey’s LLM gateway with Agenstra’s workspace-oriented agent control plane.`,
+ metaTitle: $localize`:@@featurePortalComparison-portkey-metaTitle:Portkey vs Agenstra :: Agenstra`,
+ metaDescription: $localize`:@@featurePortalComparison-portkey-metaDescription:Compare Portkey’s LLM gateway with Agenstra’s workspace-oriented agent control plane for coding agents, tickets, IDE access, and governed software delivery.`,
canonicalUrl: 'https://agenstra.com/compare/portkey',
heroSubtitle: $localize`:@@featurePortalComparison-portkey-heroSubtitle:Centralized model traffic governance versus Docker agent hosts with IDE and ticket workflows.`,
overviewCompetitorLead: $localize`:@@featurePortalComparison-portkey-overviewCompetitor:Portkey gives you a central gateway for model and agent traffic so you can enforce guardrails, trace usage, and switch providers without rewriting every application. Its strength is unified governance of LLM calls rather than a full product surface for coding agents, Git, and delivery boards.`,
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/layout/comparison-layout.component.html b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/layout/comparison-layout.component.html
index 33c3eeb1..4d26cdef 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/layout/comparison-layout.component.html
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/layout/comparison-layout.component.html
@@ -1,79 +1,93 @@
-
+
-
- {{ page.competitorDisplayName }}
- vs.
- Agenstra
-
- {{ page.heroSubtitle }}
+
+
+
+ {{ page.competitorDisplayName }}
+ vs.
+ Agenstra
+
+ {{ page.heroSubtitle }}
+
+
-
+
-
+
+
+ Two approaches to coding agents at scale
+
+
+
- {{ page.competitorDisplayName }}
- {{ page.overviewCompetitorLead }}
+
+
+
+
+ What they optimize for
+
+
+ {{ page.overviewCompetitorLead }}
+
- Agenstra
- {{ page.overviewAgenstraLead }}
+
+
+
+ What we optimize for
+
+ {{ page.overviewAgenstraLead }}
+
-
+
-
- Feature comparison
-
-
- The same thirteen capabilities appear on every page. You can compare vendors without chasing different rubrics.
-
-
+
+ Feature comparison
+
+ The same thirteen capabilities appear on every page. You can compare vendors without chasing different rubrics.
+
+
+
+
+
+ Hover an icon for a short rationale. Ratings follow a public research pass (Strong / Partial / Weak / N.A.) and
+ are meant for orientation. They are not a substitute for your own procurement review.
+
+
-
-
+
+
-
-
-
-
-
-
- Build with technology that fits your needs
-
- {{ page.technologyFitLead }}
-
-
-
- More comparisons
-
- @for (item of otherComparisons; track item.slug) {
- -
- {{ item.label }}
-
- }
-
-
-
-
+
+
+
+
+ Build with technology that fits your needs
+
+ {{ page.technologyFitLead }}
-
+
+
+
+
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/layout/comparison-layout.component.scss b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/layout/comparison-layout.component.scss
index cd961088..81f170ff 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/layout/comparison-layout.component.scss
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/layout/comparison-layout.component.scss
@@ -1,24 +1,55 @@
@import '../../../page.component.scss';
-.hero-lead.max-w-750 {
- max-width: 750px;
-}
-
-.max-w-750 {
- max-width: 750px;
-}
-
-.comparison-more-comparisons {
- @media (max-width: 991px) {
- position: relative !important;
- top: auto !important;
- right: auto !important;
- margin-top: 0 !important;
- margin-right: 0 !important;
- margin-left: 0 !important;
- margin-bottom: 0 !important;
- padding-top: 3rem !important;
- border-top-left-radius: var(--bs-border-radius-lg) !important;
- border-top-right-radius: var(--bs-border-radius-lg) !important;
+.comparison-vendor-icon {
+ width: 48px;
+ height: 48px;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 1.35rem;
+ flex-shrink: 0;
+}
+
+.comparison-vendor-icon--muted {
+ background: rgba(98, 108, 113, 0.12);
+ color: var(--bs-secondary);
+}
+
+.comparison-vendor-icon--primary {
+ background: rgba(139, 92, 246, 0.12);
+ color: var(--bs-primary);
+}
+
+.comparison-legend-pill {
+ background: var(--bs-body-tertiary);
+ color: var(--bs-body-color);
+ font-weight: 500;
+ padding: 0.4rem 0.85rem;
+}
+
+.comparison-fit-main {
+ background: rgba(255, 255, 255, 0.06);
+ backdrop-filter: blur(8px);
+}
+
+.comparison-fit-lead {
+ color: rgba(255, 255, 255, 0.88);
+}
+
+.comparison-more-panel {
+ background: rgba(255, 255, 255, 0.08);
+}
+
+.comparison-more-link {
+ color: rgba(255, 255, 255, 0.9);
+ padding: 0.35rem 0;
+ border-radius: 0.25rem;
+ transition:
+ color 0.2s ease,
+ padding-left 0.2s ease;
+
+ &:hover {
+ color: #fff;
+ padding-left: 0.25rem;
}
}
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.html b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.html
index 22635402..0ed6de7b 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.html
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.html
@@ -1,5 +1,5 @@
-
+
@for (row of rows; track row.dimension) {
-
+
{{ row.dimension }}
{{ row.question }}
-
+
@let ag = matrixStrengthVisual(row.agenstra);
-
+
@let co = matrixStrengthVisual(row.competitor);
-
- Hover an icon for a short rationale. Ratings follow a public research pass (Strong / Partial / Weak / N.A.) and are
- meant for orientation. They are not a substitute for your own procurement review.
-
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.scss b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.scss
index 49c2002b..7bd9a8d6 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.scss
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.scss
@@ -1,7 +1,11 @@
.comparison-matrix-table {
.table {
--bs-table-bg: var(--bs-white);
- --bs-table-hover-bg: rgba(255, 255, 255, 0.08);
+ --bs-table-hover-bg: rgba(139, 92, 246, 0.04);
+ }
+
+ thead th {
+ font-weight: 600;
}
}
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/tabnine-enterprise/tabnine-enterprise.page.ts b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/tabnine-enterprise/tabnine-enterprise.page.ts
index 16f29b51..cd2213d3 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/tabnine-enterprise/tabnine-enterprise.page.ts
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/tabnine-enterprise/tabnine-enterprise.page.ts
@@ -4,8 +4,8 @@ import { COMPARISON_TECHNOLOGY_FIT_LEAD } from '../shared/misc/comparison-techno
export const TABNINE_ENTERPRISE_COMPARISON_PAGE: ComparisonPageConfig = {
slug: 'tabnine-enterprise',
competitorDisplayName: 'Tabnine Enterprise',
- metaTitle: $localize`:@@featurePortalComparison-tabnine-metaTitle:Tabnine Enterprise vs. Agenstra. AI agent platform comparison`,
- metaDescription: $localize`:@@featurePortalComparison-tabnine-metaDescription:Compare self-hosted Tabnine Enterprise with Agenstra’s agent control plane and browser IDE.`,
+ metaTitle: $localize`:@@featurePortalComparison-tabnine-metaTitle:Tabnine vs Agenstra :: Agenstra`,
+ metaDescription: $localize`:@@featurePortalComparison-tabnine-metaDescription:Compare self-hosted Tabnine Enterprise with Agenstra’s agent control plane, browser IDE, workspace operations, tickets, and governance for coding agents.`,
canonicalUrl: 'https://agenstra.com/compare/tabnine-enterprise',
heroSubtitle: $localize`:@@featurePortalComparison-tabnine-heroSubtitle:Private assistant clusters versus containerized agent fleets with tickets and deployments.`,
overviewCompetitorLead: $localize`:@@featurePortalComparison-tabnine-overviewCompetitor:Tabnine Enterprise keeps AI coding assistance inside your VPC or data center so completions and chat stay on infrastructure you operate. It suits teams whose priority is private assistant coverage in familiar editors rather than a full agent operations layer for remote workspaces.`,
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/container/container.component.html b/libs/domains/framework/frontend/feature-portal/src/lib/container/container.component.html
index 9e3c990a..a4fa0c50 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/container/container.component.html
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/container/container.component.html
@@ -36,9 +36,9 @@
- The same control plane. But without maintaining it yourself! + The same platform without running it yourself
-+
Agenstra Cloud is for teams that want governed agents in coding tools and environments they already use, with upgrades, scaling, and platform operations handled for you.
--
-
- - - Connect from cloud, on-prem, or hybrid agent runtimes. Your data and infrastructure stay yours. - -
- - - Use the same concepts as self-hosted Agenstra: distributed infrastructure, shared prompts, tools, - policies, and environments. - -
- - - Central policies, audit-friendly logs, and clear separation between dev, staging, and production. - -
- - - Focus on modeling agents and guardrails. We run the managed control plane and keep it up to date. - -
- Bring AI agents into how you already build software, without standing up another platform team. -
+
+ Connect any runtime
++ Connect from cloud, on-prem, or hybrid agent runtimes. Your data and infrastructure stay yours. +
+Ready on day one
++ Same workspaces, knowledge, policies, and environments as self-hosted Agenstra and is ready on day one. +
+Governed environments
++ Central policies, audit-friendly logs, and clear separation between dev, staging, and production. +
+We operate it
++ Focus on agents and guardrails. We operate the platform and keep it current. +
+Cloud plans that match how you work
-+
Pick a managed plan with clear billing. Each tier reflects service type, interval, and what is included. Same storefront you use to subscribe and scale.
@@ -167,10 +185,10 @@
- @if (plansLoading()) {
+ @if (!plansLoaded() || (plansLoading() && plans().length === 0)) {
@for (s of planSkeletonPlaceholders; track s) {
@@ -184,6 +202,10 @@
+ Plans could not be loaded right now. Please refresh the page or try again later.
+
} @else if (plans().length === 0) {
Plans will appear here when they are available from billing.
@@ -191,11 +213,13 @@
-
+
{{ plan.name }}
- {{ plan.serviceTypeName }}
+ {{
+ plan.serviceTypeName
+ }}
€{{ plan.totalPrice | number: '1.2-2'
@@ -246,90 +270,89 @@ {{ plan.name }}
}
-
+
Getting started
-
-
-
-
- Choose a plan
-
-
-
-
-
- Log in to the interface
-
-
-
-
-
- Connect your agents
-
-
-
-
-
- Start building
-
-
-
+
+ -
+
+
+ Choose a plan
+
+
+ -
+
+
+ Log in to the interface
+
+
+ -
+
+
+ Connect your agents
+
+
+ -
+
+
+ Start building
+
+
+
-
-
+
+
-
- Where the control plane runs
-
-
- Technical outline of the infrastructure behind Agenstra Cloud. We add providers and regions deliberately.
- Security, latency, and your requirements drive the roadmap.
-
-
- @for (infrastructureProvider of infrastructureProviders; track infrastructureProvider.id) {
-
-
+
+ Where Agenstra Cloud runs
+
+ We choose providers and regions deliberately. Security, latency, and your requirements shape the roadmap.
+
+
+
+ @for (infrastructureProvider of infrastructureProviders; track infrastructureProvider.id; let idx = $index) {
+
+
+
-
- {{ infrastructureProvider.tagline }}
-
-
- - Datacenters
- - {{ infrastructureProvider.datacenters }}
- - Network
- - {{ infrastructureProvider.network }}
- - Hardware
- - {{ infrastructureProvider.hardware }}
-
+
+
+ {{ infrastructureProvider.name }}
+ {{ infrastructureProvider.tagline }}
+
+ -
+ Datacenters
+ {{ infrastructureProvider.datacenters }}
+
+ -
+ Network
+ {{ infrastructureProvider.network }}
+
+ -
+ Hardware
+ {{ infrastructureProvider.hardware }}
+
+
-
+
}
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.scss b/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.scss
index 5b726efc..1c5a1c52 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.scss
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.scss
@@ -1,6 +1,6 @@
@import '../page.component.scss';
-// Hero "From" price — same card pattern as pricing page cloud tier
+// Hero "From" price. Same card pattern as pricing page cloud tier.
.cloud-hero-price {
max-width: 17rem;
@@ -9,13 +9,100 @@
}
}
-.cloud-teaser-screenshot {
+.cloud-onboarding-track {
+ display: flex;
+ flex-direction: column;
+ gap: 1.25rem;
+}
+
+.cloud-onboarding-step {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ text-align: center;
+ gap: 0.5rem;
+}
+
+.cloud-onboarding-num {
+ display: inline-flex;
+ flex-shrink: 0;
+ width: 2rem;
+ height: 2rem;
+ align-items: center;
+ justify-content: center;
+ font-size: 0.8125rem;
+ font-weight: 700;
+ line-height: 1;
+}
+
+.cloud-onboarding-step-label {
+ max-width: 11rem;
+}
+
+@media (min-width: 992px) {
+ .cloud-onboarding-track {
+ display: grid;
+ grid-template-columns: repeat(4, 1fr);
+ gap: 1rem 0.75rem;
+ position: relative;
+
+ &::before {
+ content: '';
+ position: absolute;
+ top: 1rem;
+ left: 8%;
+ right: 8%;
+ height: 1px;
+ margin-top: -0.5px;
+ background: linear-gradient(
+ 90deg,
+ transparent 0%,
+ rgba(139, 92, 246, 0.2) 20%,
+ rgba(139, 92, 246, 0.35) 50%,
+ rgba(139, 92, 246, 0.2) 80%,
+ transparent 100%
+ );
+ z-index: 0;
+ pointer-events: none;
+ }
+ }
+
+ .cloud-onboarding-step {
+ position: relative;
+ z-index: 1;
+ padding: 0 0.25rem;
+ }
+
+ .cloud-onboarding-step-label {
+ max-width: none;
+ padding: 0 0.25rem;
+ }
+}
+
+.cloud-infra-card {
+ position: relative;
+ padding-left: 0.35rem;
+}
+
+.cloud-infra-card-accent {
position: absolute;
+ left: 0;
+ top: 0;
bottom: 0;
- left: 52.5%;
- min-width: 50%;
- height: 110%;
- width: auto;
+ width: 4px;
+ border-radius: 4px 0 0 4px;
+}
+
+.cloud-infra-card--primary .cloud-infra-card-accent {
+ background: var(--bs-primary);
+}
+
+.cloud-infra-card--secondary .cloud-infra-card-accent {
+ background: var(--bs-success);
+}
+
+.cloud-infra-spec-label {
+ min-width: 6.5rem;
}
.provider-logo {
@@ -142,14 +229,12 @@
max-width: 100%;
}
-#why {
- .engineering-text {
- line-height: 1.5rem;
- }
-}
-
@media (width >= 992px) {
.cloud-plans-row {
overflow-x: hidden;
}
}
+
+.cloud-why-visual-img {
+ margin-top: -8rem;
+}
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.ts b/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.ts
index 856585c1..5456ca7b 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.ts
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.ts
@@ -55,6 +55,10 @@ export class PortalCloudComponent implements OnInit, AfterViewInit {
initialValue: false,
});
+ readonly cheapestLoaded = toSignal(this.servicePlansFacade.getCheapestServicePlanOfferingLoaded$(), {
+ initialValue: false,
+ });
+
readonly plans = toSignal(this.servicePlansFacade.getServicePlans$(), {
initialValue: [],
});
@@ -63,6 +67,14 @@ export class PortalCloudComponent implements OnInit, AfterViewInit {
initialValue: false,
});
+ readonly plansLoaded = toSignal(this.servicePlansFacade.getServicePlansLoaded$(), {
+ initialValue: false,
+ });
+
+ readonly plansError = toSignal(this.servicePlansFacade.getServicePlansError$(), {
+ initialValue: null,
+ });
+
readonly plansScrollAtStart = signal(true);
readonly plansScrollAtEnd = signal(false);
@@ -89,12 +101,12 @@ export class PortalCloudComponent implements OnInit, AfterViewInit {
ngOnInit(): void {
this.titleService.setTitle(
- $localize`:@@featurePortalCloud-metaTitle:Agenstra Cloud - Fully Managed Control Plane For Your AI Agents`,
+ $localize`:@@featurePortalCloud-metaTitle:Fully managed cloud, zero platform ops :: Agenstra`,
);
this.metaService.addTags([
{
name: 'description',
- content: $localize`:@@featurePortalCloud-metaDescription:Agenstra Cloud is the fully managed, cloud hosted control plane for distributed AI agents. Design, deploy, and govern agents across tools, clouds, and environments without operating your own infrastructure.`,
+ content: $localize`:@@featurePortalCloud-metaDescription:Fully managed Agenstra control plane for distributed coding agents. Deploy, monitor, and govern agents across tools and environments without running your own ops stack.`,
},
{
name: 'keywords',
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/codeium-windsurf/codeium-windsurf.page.ts b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/codeium-windsurf/codeium-windsurf.page.ts
index fc82ce8c..7a0dca48 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/codeium-windsurf/codeium-windsurf.page.ts
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/codeium-windsurf/codeium-windsurf.page.ts
@@ -4,8 +4,8 @@ import { COMPARISON_TECHNOLOGY_FIT_LEAD } from '../shared/misc/comparison-techno
export const CODEIUM_WINDSURF_COMPARISON_PAGE: ComparisonPageConfig = {
slug: 'codeium-windsurf',
competitorDisplayName: 'Codeium / Windsurf',
- metaTitle: $localize`:@@featurePortalComparison-codeium-metaTitle:Codeium & Windsurf vs. Agenstra. AI agent platform comparison`,
- metaDescription: $localize`:@@featurePortalComparison-codeium-metaDescription:Compare Codeium and Windsurf with Agenstra’s multi-workspace agent control plane and browser IDE.`,
+ metaTitle: $localize`:@@featurePortalComparison-codeium-metaTitle:Codeium & Windsurf vs Agenstra :: Agenstra`,
+ metaDescription: $localize`:@@featurePortalComparison-codeium-metaDescription:Compare Codeium and Windsurf with Agenstra’s multi-workspace agent control plane, browser IDE, ticket workflows, and self-hosted governance for platform teams.`,
canonicalUrl: 'https://agenstra.com/compare/codeium-windsurf',
heroSubtitle: $localize`:@@featurePortalComparison-codeium-heroSubtitle:Broad IDE coverage and optional self-hosted backends versus a dedicated agent operations console.`,
overviewCompetitorLead: $localize`:@@featurePortalComparison-codeium-overviewCompetitor:Codeium reaches developers across many editors, while Windsurf offers a dedicated AI-native editing experience from the same vendor. Organizations choose them for broad rollout, inline help inside existing repos, and deployment options that keep sensitive workloads closer to home.`,
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/cursor/cursor.page.ts b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/cursor/cursor.page.ts
index e3d1c90e..d18afa96 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/cursor/cursor.page.ts
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/cursor/cursor.page.ts
@@ -4,8 +4,8 @@ import { COMPARISON_TECHNOLOGY_FIT_LEAD } from '../shared/misc/comparison-techno
export const CURSOR_COMPARISON_PAGE: ComparisonPageConfig = {
slug: 'cursor',
competitorDisplayName: 'Cursor',
- metaTitle: $localize`:@@featurePortalComparison-cursor-metaTitle:Cursor vs. Agenstra. AI agent platform comparison`,
- metaDescription: $localize`:@@featurePortalComparison-cursor-metaDescription:Compare Cursor’s AI-native editor with Agenstra’s web console and multi-workspace agent control plane.`,
+ metaTitle: $localize`:@@featurePortalComparison-cursor-metaTitle:Cursor vs Agenstra :: Agenstra`,
+ metaDescription: $localize`:@@featurePortalComparison-cursor-metaDescription:Compare Cursor’s AI-native editor with Agenstra’s web console, multi-workspace agent hosts, tickets, governance, and self-hosted delivery options.`,
canonicalUrl: 'https://agenstra.com/compare/cursor',
heroSubtitle: $localize`:@@featurePortalComparison-cursor-heroSubtitle:IDE-first velocity versus an operations-focused console for distributed agent hosts.`,
overviewCompetitorLead: $localize`:@@featurePortalComparison-cursor-overviewCompetitor:Cursor is an AI-first coding environment built around autocomplete, chat, and agent modes in the editor developers already use every day. It focuses on speed and depth inside the desktop workflow rather than running a separate fleet of agent hosts under your own control plane.`,
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/devin/devin.page.ts b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/devin/devin.page.ts
index 1f06f94b..8536f8b7 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/devin/devin.page.ts
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/devin/devin.page.ts
@@ -4,8 +4,8 @@ import { COMPARISON_TECHNOLOGY_FIT_LEAD } from '../shared/misc/comparison-techno
export const DEVIN_COMPARISON_PAGE: ComparisonPageConfig = {
slug: 'devin',
competitorDisplayName: 'Devin',
- metaTitle: $localize`:@@featurePortalComparison-devin-metaTitle:Devin vs. Agenstra. AI agent platform comparison`,
- metaDescription: $localize`:@@featurePortalComparison-devin-metaDescription:Compare Devin’s cloud autonomous engineer with Agenstra’s self-hosted multi-workspace control plane, tickets, knowledge, and deployments.`,
+ metaTitle: $localize`:@@featurePortalComparison-devin-metaTitle:Devin vs Agenstra :: Agenstra`,
+ metaDescription: $localize`:@@featurePortalComparison-devin-metaDescription:Compare Devin’s cloud autonomous engineer with Agenstra’s self-hosted control plane: workspaces, tickets, team knowledge, releases, and governance on your infrastructure.`,
canonicalUrl: 'https://agenstra.com/compare/devin',
heroSubtitle: $localize`:@@featurePortalComparison-devin-heroSubtitle:Cloud sessions from Cognition versus a control plane you run for many Docker-backed coding agents.`,
overviewCompetitorLead: $localize`:@@featurePortalComparison-devin-overviewCompetitor:Devin gives you a cloud-hosted autonomous engineer that works in a browser with Git and connects to the tools your teams already use for issues and delivery. It fits when you want the vendor to run the workspace and you value a managed experience over operating your own agent infrastructure.`,
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/github-copilot/github-copilot.page.ts b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/github-copilot/github-copilot.page.ts
index 37d0cfaf..449acb12 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/github-copilot/github-copilot.page.ts
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/github-copilot/github-copilot.page.ts
@@ -4,8 +4,8 @@ import { COMPARISON_TECHNOLOGY_FIT_LEAD } from '../shared/misc/comparison-techno
export const GITHUB_COPILOT_COMPARISON_PAGE: ComparisonPageConfig = {
slug: 'github-copilot',
competitorDisplayName: 'GitHub Copilot',
- metaTitle: $localize`:@@featurePortalComparison-copilot-metaTitle:GitHub Copilot vs. Agenstra. AI agent platform comparison`,
- metaDescription: $localize`:@@featurePortalComparison-copilot-metaDescription:Compare GitHub Copilot and Copilot coding agent with Agenstra’s self-hosted agent control plane.`,
+ metaTitle: $localize`:@@featurePortalComparison-copilot-metaTitle:GitHub Copilot vs Agenstra :: Agenstra`,
+ metaDescription: $localize`:@@featurePortalComparison-copilot-metaDescription:Compare GitHub Copilot and Copilot coding agent with Agenstra’s agent control plane, browser IDE, workspaces, tickets, and operations-focused governance.`,
canonicalUrl: 'https://agenstra.com/compare/github-copilot',
heroSubtitle: $localize`:@@featurePortalComparison-copilot-heroSubtitle:GitHub-native AI assistance versus an infrastructure-first agent operations stack.`,
overviewCompetitorLead: $localize`:@@featurePortalComparison-copilot-overviewCompetitor:GitHub Copilot brings AI assistance into GitHub and popular editors, with enterprise-grade access controls aligned to repos and organizations you already manage there. It fits teams that want GitHub to stay the hub for review, identity, and automation while AI stays close to pull requests and CI.`,
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/orq-ai/orq-ai.page.ts b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/orq-ai/orq-ai.page.ts
index 4f82a912..4ef4a57a 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/orq-ai/orq-ai.page.ts
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/orq-ai/orq-ai.page.ts
@@ -4,8 +4,8 @@ import { COMPARISON_TECHNOLOGY_FIT_LEAD } from '../shared/misc/comparison-techno
export const ORQ_AI_COMPARISON_PAGE: ComparisonPageConfig = {
slug: 'orq-ai',
competitorDisplayName: 'Orq.ai',
- metaTitle: $localize`:@@featurePortalComparison-orq-metaTitle:Orq.ai vs. Agenstra. AI agent platform comparison`,
- metaDescription: $localize`:@@featurePortalComparison-orq-metaDescription:Compare Orq.ai’s agent lifecycle platform with Agenstra’s self-hosted coding agent control plane.`,
+ metaTitle: $localize`:@@featurePortalComparison-orq-metaTitle:Orq.ai vs Agenstra :: Agenstra`,
+ metaDescription: $localize`:@@featurePortalComparison-orq-metaDescription:Compare Orq.ai’s agent lifecycle platform with Agenstra’s coding agent control plane: workspaces, delivery workflows, auditability, and infrastructure you control.`,
canonicalUrl: 'https://agenstra.com/compare/orq-ai',
heroSubtitle: $localize`:@@featurePortalComparison-orq-heroSubtitle:Managed experimentation and deployments versus ops-owned Docker agent infrastructure.`,
overviewCompetitorLead: $localize`:@@featurePortalComparison-orq-overviewCompetitor:Orq.ai helps teams prototype, deploy, and monitor generative AI agents and experiments across projects with roles and workspaces built for collaboration. It appeals when you want a hosted lifecycle platform for many AI use cases and compliance-aware deployment options from the vendor.`,
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/portkey/portkey.page.ts b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/portkey/portkey.page.ts
index 82b777fe..0436dcb9 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/portkey/portkey.page.ts
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/portkey/portkey.page.ts
@@ -4,8 +4,8 @@ import { COMPARISON_TECHNOLOGY_FIT_LEAD } from '../shared/misc/comparison-techno
export const PORTKEY_COMPARISON_PAGE: ComparisonPageConfig = {
slug: 'portkey',
competitorDisplayName: 'Portkey',
- metaTitle: $localize`:@@featurePortalComparison-portkey-metaTitle:Portkey vs. Agenstra. AI agent platform comparison`,
- metaDescription: $localize`:@@featurePortalComparison-portkey-metaDescription:Compare Portkey’s LLM gateway with Agenstra’s workspace-oriented agent control plane.`,
+ metaTitle: $localize`:@@featurePortalComparison-portkey-metaTitle:Portkey vs Agenstra :: Agenstra`,
+ metaDescription: $localize`:@@featurePortalComparison-portkey-metaDescription:Compare Portkey’s LLM gateway with Agenstra’s workspace-oriented agent control plane for coding agents, tickets, IDE access, and governed software delivery.`,
canonicalUrl: 'https://agenstra.com/compare/portkey',
heroSubtitle: $localize`:@@featurePortalComparison-portkey-heroSubtitle:Centralized model traffic governance versus Docker agent hosts with IDE and ticket workflows.`,
overviewCompetitorLead: $localize`:@@featurePortalComparison-portkey-overviewCompetitor:Portkey gives you a central gateway for model and agent traffic so you can enforce guardrails, trace usage, and switch providers without rewriting every application. Its strength is unified governance of LLM calls rather than a full product surface for coding agents, Git, and delivery boards.`,
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/layout/comparison-layout.component.html b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/layout/comparison-layout.component.html
index 33c3eeb1..4d26cdef 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/layout/comparison-layout.component.html
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/layout/comparison-layout.component.html
@@ -1,79 +1,93 @@
-
+
-
- {{ page.competitorDisplayName }}
- vs.
- Agenstra
-
- {{ page.heroSubtitle }}
+
+
+
+ {{ page.competitorDisplayName }}
+ vs.
+ Agenstra
+
+ {{ page.heroSubtitle }}
+
+
-
+
-
+
+
+ Two approaches to coding agents at scale
+
+
+
- {{ page.competitorDisplayName }}
- {{ page.overviewCompetitorLead }}
+
+
+
+
+ What they optimize for
+
+
+ {{ page.overviewCompetitorLead }}
+
- Agenstra
- {{ page.overviewAgenstraLead }}
+
+
+
+ What we optimize for
+
+ {{ page.overviewAgenstraLead }}
+
-
+
-
- Feature comparison
-
-
- The same thirteen capabilities appear on every page. You can compare vendors without chasing different rubrics.
-
-
+
+ Feature comparison
+
+ The same thirteen capabilities appear on every page. You can compare vendors without chasing different rubrics.
+
+
+
+
+
+ Hover an icon for a short rationale. Ratings follow a public research pass (Strong / Partial / Weak / N.A.) and
+ are meant for orientation. They are not a substitute for your own procurement review.
+
+
-
-
+
+
-
-
-
-
-
-
- Build with technology that fits your needs
-
- {{ page.technologyFitLead }}
-
-
-
- More comparisons
-
- @for (item of otherComparisons; track item.slug) {
- -
- {{ item.label }}
-
- }
-
-
-
-
+
+
+
+
+ Build with technology that fits your needs
+
+ {{ page.technologyFitLead }}
-
+
+
+
+
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/layout/comparison-layout.component.scss b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/layout/comparison-layout.component.scss
index cd961088..81f170ff 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/layout/comparison-layout.component.scss
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/layout/comparison-layout.component.scss
@@ -1,24 +1,55 @@
@import '../../../page.component.scss';
-.hero-lead.max-w-750 {
- max-width: 750px;
-}
-
-.max-w-750 {
- max-width: 750px;
-}
-
-.comparison-more-comparisons {
- @media (max-width: 991px) {
- position: relative !important;
- top: auto !important;
- right: auto !important;
- margin-top: 0 !important;
- margin-right: 0 !important;
- margin-left: 0 !important;
- margin-bottom: 0 !important;
- padding-top: 3rem !important;
- border-top-left-radius: var(--bs-border-radius-lg) !important;
- border-top-right-radius: var(--bs-border-radius-lg) !important;
+.comparison-vendor-icon {
+ width: 48px;
+ height: 48px;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 1.35rem;
+ flex-shrink: 0;
+}
+
+.comparison-vendor-icon--muted {
+ background: rgba(98, 108, 113, 0.12);
+ color: var(--bs-secondary);
+}
+
+.comparison-vendor-icon--primary {
+ background: rgba(139, 92, 246, 0.12);
+ color: var(--bs-primary);
+}
+
+.comparison-legend-pill {
+ background: var(--bs-body-tertiary);
+ color: var(--bs-body-color);
+ font-weight: 500;
+ padding: 0.4rem 0.85rem;
+}
+
+.comparison-fit-main {
+ background: rgba(255, 255, 255, 0.06);
+ backdrop-filter: blur(8px);
+}
+
+.comparison-fit-lead {
+ color: rgba(255, 255, 255, 0.88);
+}
+
+.comparison-more-panel {
+ background: rgba(255, 255, 255, 0.08);
+}
+
+.comparison-more-link {
+ color: rgba(255, 255, 255, 0.9);
+ padding: 0.35rem 0;
+ border-radius: 0.25rem;
+ transition:
+ color 0.2s ease,
+ padding-left 0.2s ease;
+
+ &:hover {
+ color: #fff;
+ padding-left: 0.25rem;
}
}
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.html b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.html
index 22635402..0ed6de7b 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.html
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.html
@@ -1,5 +1,5 @@
-
+
@for (row of rows; track row.dimension) {
-
+
{{ row.dimension }}
{{ row.question }}
-
+
@let ag = matrixStrengthVisual(row.agenstra);
-
+
@let co = matrixStrengthVisual(row.competitor);
-
- Hover an icon for a short rationale. Ratings follow a public research pass (Strong / Partial / Weak / N.A.) and are
- meant for orientation. They are not a substitute for your own procurement review.
-
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.scss b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.scss
index 49c2002b..7bd9a8d6 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.scss
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.scss
@@ -1,7 +1,11 @@
.comparison-matrix-table {
.table {
--bs-table-bg: var(--bs-white);
- --bs-table-hover-bg: rgba(255, 255, 255, 0.08);
+ --bs-table-hover-bg: rgba(139, 92, 246, 0.04);
+ }
+
+ thead th {
+ font-weight: 600;
}
}
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/tabnine-enterprise/tabnine-enterprise.page.ts b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/tabnine-enterprise/tabnine-enterprise.page.ts
index 16f29b51..cd2213d3 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/tabnine-enterprise/tabnine-enterprise.page.ts
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/tabnine-enterprise/tabnine-enterprise.page.ts
@@ -4,8 +4,8 @@ import { COMPARISON_TECHNOLOGY_FIT_LEAD } from '../shared/misc/comparison-techno
export const TABNINE_ENTERPRISE_COMPARISON_PAGE: ComparisonPageConfig = {
slug: 'tabnine-enterprise',
competitorDisplayName: 'Tabnine Enterprise',
- metaTitle: $localize`:@@featurePortalComparison-tabnine-metaTitle:Tabnine Enterprise vs. Agenstra. AI agent platform comparison`,
- metaDescription: $localize`:@@featurePortalComparison-tabnine-metaDescription:Compare self-hosted Tabnine Enterprise with Agenstra’s agent control plane and browser IDE.`,
+ metaTitle: $localize`:@@featurePortalComparison-tabnine-metaTitle:Tabnine vs Agenstra :: Agenstra`,
+ metaDescription: $localize`:@@featurePortalComparison-tabnine-metaDescription:Compare self-hosted Tabnine Enterprise with Agenstra’s agent control plane, browser IDE, workspace operations, tickets, and governance for coding agents.`,
canonicalUrl: 'https://agenstra.com/compare/tabnine-enterprise',
heroSubtitle: $localize`:@@featurePortalComparison-tabnine-heroSubtitle:Private assistant clusters versus containerized agent fleets with tickets and deployments.`,
overviewCompetitorLead: $localize`:@@featurePortalComparison-tabnine-overviewCompetitor:Tabnine Enterprise keeps AI coding assistance inside your VPC or data center so completions and chat stay on infrastructure you operate. It suits teams whose priority is private assistant coverage in familiar editors rather than a full agent operations layer for remote workspaces.`,
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/container/container.component.html b/libs/domains/framework/frontend/feature-portal/src/lib/container/container.component.html
index 9e3c990a..a4fa0c50 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/container/container.component.html
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/container/container.component.html
@@ -36,9 +36,9 @@
+ Plans could not be loaded right now. Please refresh the page or try again later. +
-
+
{{ plan.name }}
- {{ plan.serviceTypeName }}
+ {{
+ plan.serviceTypeName
+ }}
€{{ plan.totalPrice | number: '1.2-2'
@@ -246,90 +270,89 @@ {{ plan.name }}
}
-
+
Getting started
-
-
-
-
- Choose a plan
-
-
-
-
-
- Log in to the interface
-
-
-
-
-
- Connect your agents
-
-
-
-
-
- Start building
-
-
-
+
+ -
+
+
+ Choose a plan
+
+
+ -
+
+
+ Log in to the interface
+
+
+ -
+
+
+ Connect your agents
+
+
+ -
+
+
+ Start building
+
+
+
-
-
+
+
-
- Where the control plane runs
-
-
- Technical outline of the infrastructure behind Agenstra Cloud. We add providers and regions deliberately.
- Security, latency, and your requirements drive the roadmap.
-
-
- @for (infrastructureProvider of infrastructureProviders; track infrastructureProvider.id) {
-
-
+
+ Where Agenstra Cloud runs
+
+ We choose providers and regions deliberately. Security, latency, and your requirements shape the roadmap.
+
+
+
+ @for (infrastructureProvider of infrastructureProviders; track infrastructureProvider.id; let idx = $index) {
+
+
+
-
- {{ infrastructureProvider.tagline }}
-
-
- - Datacenters
- - {{ infrastructureProvider.datacenters }}
- - Network
- - {{ infrastructureProvider.network }}
- - Hardware
- - {{ infrastructureProvider.hardware }}
-
+
+
+ {{ infrastructureProvider.name }}
+ {{ infrastructureProvider.tagline }}
+
+ -
+ Datacenters
+ {{ infrastructureProvider.datacenters }}
+
+ -
+ Network
+ {{ infrastructureProvider.network }}
+
+ -
+ Hardware
+ {{ infrastructureProvider.hardware }}
+
+
-
+
}
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.scss b/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.scss
index 5b726efc..1c5a1c52 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.scss
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.scss
@@ -1,6 +1,6 @@
@import '../page.component.scss';
-// Hero "From" price — same card pattern as pricing page cloud tier
+// Hero "From" price. Same card pattern as pricing page cloud tier.
.cloud-hero-price {
max-width: 17rem;
@@ -9,13 +9,100 @@
}
}
-.cloud-teaser-screenshot {
+.cloud-onboarding-track {
+ display: flex;
+ flex-direction: column;
+ gap: 1.25rem;
+}
+
+.cloud-onboarding-step {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ text-align: center;
+ gap: 0.5rem;
+}
+
+.cloud-onboarding-num {
+ display: inline-flex;
+ flex-shrink: 0;
+ width: 2rem;
+ height: 2rem;
+ align-items: center;
+ justify-content: center;
+ font-size: 0.8125rem;
+ font-weight: 700;
+ line-height: 1;
+}
+
+.cloud-onboarding-step-label {
+ max-width: 11rem;
+}
+
+@media (min-width: 992px) {
+ .cloud-onboarding-track {
+ display: grid;
+ grid-template-columns: repeat(4, 1fr);
+ gap: 1rem 0.75rem;
+ position: relative;
+
+ &::before {
+ content: '';
+ position: absolute;
+ top: 1rem;
+ left: 8%;
+ right: 8%;
+ height: 1px;
+ margin-top: -0.5px;
+ background: linear-gradient(
+ 90deg,
+ transparent 0%,
+ rgba(139, 92, 246, 0.2) 20%,
+ rgba(139, 92, 246, 0.35) 50%,
+ rgba(139, 92, 246, 0.2) 80%,
+ transparent 100%
+ );
+ z-index: 0;
+ pointer-events: none;
+ }
+ }
+
+ .cloud-onboarding-step {
+ position: relative;
+ z-index: 1;
+ padding: 0 0.25rem;
+ }
+
+ .cloud-onboarding-step-label {
+ max-width: none;
+ padding: 0 0.25rem;
+ }
+}
+
+.cloud-infra-card {
+ position: relative;
+ padding-left: 0.35rem;
+}
+
+.cloud-infra-card-accent {
position: absolute;
+ left: 0;
+ top: 0;
bottom: 0;
- left: 52.5%;
- min-width: 50%;
- height: 110%;
- width: auto;
+ width: 4px;
+ border-radius: 4px 0 0 4px;
+}
+
+.cloud-infra-card--primary .cloud-infra-card-accent {
+ background: var(--bs-primary);
+}
+
+.cloud-infra-card--secondary .cloud-infra-card-accent {
+ background: var(--bs-success);
+}
+
+.cloud-infra-spec-label {
+ min-width: 6.5rem;
}
.provider-logo {
@@ -142,14 +229,12 @@
max-width: 100%;
}
-#why {
- .engineering-text {
- line-height: 1.5rem;
- }
-}
-
@media (width >= 992px) {
.cloud-plans-row {
overflow-x: hidden;
}
}
+
+.cloud-why-visual-img {
+ margin-top: -8rem;
+}
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.ts b/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.ts
index 856585c1..5456ca7b 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.ts
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/cloud/cloud.component.ts
@@ -55,6 +55,10 @@ export class PortalCloudComponent implements OnInit, AfterViewInit {
initialValue: false,
});
+ readonly cheapestLoaded = toSignal(this.servicePlansFacade.getCheapestServicePlanOfferingLoaded$(), {
+ initialValue: false,
+ });
+
readonly plans = toSignal(this.servicePlansFacade.getServicePlans$(), {
initialValue: [],
});
@@ -63,6 +67,14 @@ export class PortalCloudComponent implements OnInit, AfterViewInit {
initialValue: false,
});
+ readonly plansLoaded = toSignal(this.servicePlansFacade.getServicePlansLoaded$(), {
+ initialValue: false,
+ });
+
+ readonly plansError = toSignal(this.servicePlansFacade.getServicePlansError$(), {
+ initialValue: null,
+ });
+
readonly plansScrollAtStart = signal(true);
readonly plansScrollAtEnd = signal(false);
@@ -89,12 +101,12 @@ export class PortalCloudComponent implements OnInit, AfterViewInit {
ngOnInit(): void {
this.titleService.setTitle(
- $localize`:@@featurePortalCloud-metaTitle:Agenstra Cloud - Fully Managed Control Plane For Your AI Agents`,
+ $localize`:@@featurePortalCloud-metaTitle:Fully managed cloud, zero platform ops :: Agenstra`,
);
this.metaService.addTags([
{
name: 'description',
- content: $localize`:@@featurePortalCloud-metaDescription:Agenstra Cloud is the fully managed, cloud hosted control plane for distributed AI agents. Design, deploy, and govern agents across tools, clouds, and environments without operating your own infrastructure.`,
+ content: $localize`:@@featurePortalCloud-metaDescription:Fully managed Agenstra control plane for distributed coding agents. Deploy, monitor, and govern agents across tools and environments without running your own ops stack.`,
},
{
name: 'keywords',
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/codeium-windsurf/codeium-windsurf.page.ts b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/codeium-windsurf/codeium-windsurf.page.ts
index fc82ce8c..7a0dca48 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/codeium-windsurf/codeium-windsurf.page.ts
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/codeium-windsurf/codeium-windsurf.page.ts
@@ -4,8 +4,8 @@ import { COMPARISON_TECHNOLOGY_FIT_LEAD } from '../shared/misc/comparison-techno
export const CODEIUM_WINDSURF_COMPARISON_PAGE: ComparisonPageConfig = {
slug: 'codeium-windsurf',
competitorDisplayName: 'Codeium / Windsurf',
- metaTitle: $localize`:@@featurePortalComparison-codeium-metaTitle:Codeium & Windsurf vs. Agenstra. AI agent platform comparison`,
- metaDescription: $localize`:@@featurePortalComparison-codeium-metaDescription:Compare Codeium and Windsurf with Agenstra’s multi-workspace agent control plane and browser IDE.`,
+ metaTitle: $localize`:@@featurePortalComparison-codeium-metaTitle:Codeium & Windsurf vs Agenstra :: Agenstra`,
+ metaDescription: $localize`:@@featurePortalComparison-codeium-metaDescription:Compare Codeium and Windsurf with Agenstra’s multi-workspace agent control plane, browser IDE, ticket workflows, and self-hosted governance for platform teams.`,
canonicalUrl: 'https://agenstra.com/compare/codeium-windsurf',
heroSubtitle: $localize`:@@featurePortalComparison-codeium-heroSubtitle:Broad IDE coverage and optional self-hosted backends versus a dedicated agent operations console.`,
overviewCompetitorLead: $localize`:@@featurePortalComparison-codeium-overviewCompetitor:Codeium reaches developers across many editors, while Windsurf offers a dedicated AI-native editing experience from the same vendor. Organizations choose them for broad rollout, inline help inside existing repos, and deployment options that keep sensitive workloads closer to home.`,
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/cursor/cursor.page.ts b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/cursor/cursor.page.ts
index e3d1c90e..d18afa96 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/cursor/cursor.page.ts
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/cursor/cursor.page.ts
@@ -4,8 +4,8 @@ import { COMPARISON_TECHNOLOGY_FIT_LEAD } from '../shared/misc/comparison-techno
export const CURSOR_COMPARISON_PAGE: ComparisonPageConfig = {
slug: 'cursor',
competitorDisplayName: 'Cursor',
- metaTitle: $localize`:@@featurePortalComparison-cursor-metaTitle:Cursor vs. Agenstra. AI agent platform comparison`,
- metaDescription: $localize`:@@featurePortalComparison-cursor-metaDescription:Compare Cursor’s AI-native editor with Agenstra’s web console and multi-workspace agent control plane.`,
+ metaTitle: $localize`:@@featurePortalComparison-cursor-metaTitle:Cursor vs Agenstra :: Agenstra`,
+ metaDescription: $localize`:@@featurePortalComparison-cursor-metaDescription:Compare Cursor’s AI-native editor with Agenstra’s web console, multi-workspace agent hosts, tickets, governance, and self-hosted delivery options.`,
canonicalUrl: 'https://agenstra.com/compare/cursor',
heroSubtitle: $localize`:@@featurePortalComparison-cursor-heroSubtitle:IDE-first velocity versus an operations-focused console for distributed agent hosts.`,
overviewCompetitorLead: $localize`:@@featurePortalComparison-cursor-overviewCompetitor:Cursor is an AI-first coding environment built around autocomplete, chat, and agent modes in the editor developers already use every day. It focuses on speed and depth inside the desktop workflow rather than running a separate fleet of agent hosts under your own control plane.`,
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/devin/devin.page.ts b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/devin/devin.page.ts
index 1f06f94b..8536f8b7 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/devin/devin.page.ts
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/devin/devin.page.ts
@@ -4,8 +4,8 @@ import { COMPARISON_TECHNOLOGY_FIT_LEAD } from '../shared/misc/comparison-techno
export const DEVIN_COMPARISON_PAGE: ComparisonPageConfig = {
slug: 'devin',
competitorDisplayName: 'Devin',
- metaTitle: $localize`:@@featurePortalComparison-devin-metaTitle:Devin vs. Agenstra. AI agent platform comparison`,
- metaDescription: $localize`:@@featurePortalComparison-devin-metaDescription:Compare Devin’s cloud autonomous engineer with Agenstra’s self-hosted multi-workspace control plane, tickets, knowledge, and deployments.`,
+ metaTitle: $localize`:@@featurePortalComparison-devin-metaTitle:Devin vs Agenstra :: Agenstra`,
+ metaDescription: $localize`:@@featurePortalComparison-devin-metaDescription:Compare Devin’s cloud autonomous engineer with Agenstra’s self-hosted control plane: workspaces, tickets, team knowledge, releases, and governance on your infrastructure.`,
canonicalUrl: 'https://agenstra.com/compare/devin',
heroSubtitle: $localize`:@@featurePortalComparison-devin-heroSubtitle:Cloud sessions from Cognition versus a control plane you run for many Docker-backed coding agents.`,
overviewCompetitorLead: $localize`:@@featurePortalComparison-devin-overviewCompetitor:Devin gives you a cloud-hosted autonomous engineer that works in a browser with Git and connects to the tools your teams already use for issues and delivery. It fits when you want the vendor to run the workspace and you value a managed experience over operating your own agent infrastructure.`,
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/github-copilot/github-copilot.page.ts b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/github-copilot/github-copilot.page.ts
index 37d0cfaf..449acb12 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/github-copilot/github-copilot.page.ts
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/github-copilot/github-copilot.page.ts
@@ -4,8 +4,8 @@ import { COMPARISON_TECHNOLOGY_FIT_LEAD } from '../shared/misc/comparison-techno
export const GITHUB_COPILOT_COMPARISON_PAGE: ComparisonPageConfig = {
slug: 'github-copilot',
competitorDisplayName: 'GitHub Copilot',
- metaTitle: $localize`:@@featurePortalComparison-copilot-metaTitle:GitHub Copilot vs. Agenstra. AI agent platform comparison`,
- metaDescription: $localize`:@@featurePortalComparison-copilot-metaDescription:Compare GitHub Copilot and Copilot coding agent with Agenstra’s self-hosted agent control plane.`,
+ metaTitle: $localize`:@@featurePortalComparison-copilot-metaTitle:GitHub Copilot vs Agenstra :: Agenstra`,
+ metaDescription: $localize`:@@featurePortalComparison-copilot-metaDescription:Compare GitHub Copilot and Copilot coding agent with Agenstra’s agent control plane, browser IDE, workspaces, tickets, and operations-focused governance.`,
canonicalUrl: 'https://agenstra.com/compare/github-copilot',
heroSubtitle: $localize`:@@featurePortalComparison-copilot-heroSubtitle:GitHub-native AI assistance versus an infrastructure-first agent operations stack.`,
overviewCompetitorLead: $localize`:@@featurePortalComparison-copilot-overviewCompetitor:GitHub Copilot brings AI assistance into GitHub and popular editors, with enterprise-grade access controls aligned to repos and organizations you already manage there. It fits teams that want GitHub to stay the hub for review, identity, and automation while AI stays close to pull requests and CI.`,
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/orq-ai/orq-ai.page.ts b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/orq-ai/orq-ai.page.ts
index 4f82a912..4ef4a57a 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/orq-ai/orq-ai.page.ts
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/orq-ai/orq-ai.page.ts
@@ -4,8 +4,8 @@ import { COMPARISON_TECHNOLOGY_FIT_LEAD } from '../shared/misc/comparison-techno
export const ORQ_AI_COMPARISON_PAGE: ComparisonPageConfig = {
slug: 'orq-ai',
competitorDisplayName: 'Orq.ai',
- metaTitle: $localize`:@@featurePortalComparison-orq-metaTitle:Orq.ai vs. Agenstra. AI agent platform comparison`,
- metaDescription: $localize`:@@featurePortalComparison-orq-metaDescription:Compare Orq.ai’s agent lifecycle platform with Agenstra’s self-hosted coding agent control plane.`,
+ metaTitle: $localize`:@@featurePortalComparison-orq-metaTitle:Orq.ai vs Agenstra :: Agenstra`,
+ metaDescription: $localize`:@@featurePortalComparison-orq-metaDescription:Compare Orq.ai’s agent lifecycle platform with Agenstra’s coding agent control plane: workspaces, delivery workflows, auditability, and infrastructure you control.`,
canonicalUrl: 'https://agenstra.com/compare/orq-ai',
heroSubtitle: $localize`:@@featurePortalComparison-orq-heroSubtitle:Managed experimentation and deployments versus ops-owned Docker agent infrastructure.`,
overviewCompetitorLead: $localize`:@@featurePortalComparison-orq-overviewCompetitor:Orq.ai helps teams prototype, deploy, and monitor generative AI agents and experiments across projects with roles and workspaces built for collaboration. It appeals when you want a hosted lifecycle platform for many AI use cases and compliance-aware deployment options from the vendor.`,
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/portkey/portkey.page.ts b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/portkey/portkey.page.ts
index 82b777fe..0436dcb9 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/portkey/portkey.page.ts
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/portkey/portkey.page.ts
@@ -4,8 +4,8 @@ import { COMPARISON_TECHNOLOGY_FIT_LEAD } from '../shared/misc/comparison-techno
export const PORTKEY_COMPARISON_PAGE: ComparisonPageConfig = {
slug: 'portkey',
competitorDisplayName: 'Portkey',
- metaTitle: $localize`:@@featurePortalComparison-portkey-metaTitle:Portkey vs. Agenstra. AI agent platform comparison`,
- metaDescription: $localize`:@@featurePortalComparison-portkey-metaDescription:Compare Portkey’s LLM gateway with Agenstra’s workspace-oriented agent control plane.`,
+ metaTitle: $localize`:@@featurePortalComparison-portkey-metaTitle:Portkey vs Agenstra :: Agenstra`,
+ metaDescription: $localize`:@@featurePortalComparison-portkey-metaDescription:Compare Portkey’s LLM gateway with Agenstra’s workspace-oriented agent control plane for coding agents, tickets, IDE access, and governed software delivery.`,
canonicalUrl: 'https://agenstra.com/compare/portkey',
heroSubtitle: $localize`:@@featurePortalComparison-portkey-heroSubtitle:Centralized model traffic governance versus Docker agent hosts with IDE and ticket workflows.`,
overviewCompetitorLead: $localize`:@@featurePortalComparison-portkey-overviewCompetitor:Portkey gives you a central gateway for model and agent traffic so you can enforce guardrails, trace usage, and switch providers without rewriting every application. Its strength is unified governance of LLM calls rather than a full product surface for coding agents, Git, and delivery boards.`,
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/layout/comparison-layout.component.html b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/layout/comparison-layout.component.html
index 33c3eeb1..4d26cdef 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/layout/comparison-layout.component.html
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/layout/comparison-layout.component.html
@@ -1,79 +1,93 @@
-
+
-
- {{ page.competitorDisplayName }}
- vs.
- Agenstra
-
- {{ page.heroSubtitle }}
+
+
+
+ {{ page.competitorDisplayName }}
+ vs.
+ Agenstra
+
+ {{ page.heroSubtitle }}
+
+
-
+
-
+
+
+ Two approaches to coding agents at scale
+
+
+
- {{ page.competitorDisplayName }}
- {{ page.overviewCompetitorLead }}
+
+
+
+
+ What they optimize for
+
+
+ {{ page.overviewCompetitorLead }}
+
- Agenstra
- {{ page.overviewAgenstraLead }}
+
+
+
+ What we optimize for
+
+ {{ page.overviewAgenstraLead }}
+
-
+
-
- Feature comparison
-
-
- The same thirteen capabilities appear on every page. You can compare vendors without chasing different rubrics.
-
-
+
+ Feature comparison
+
+ The same thirteen capabilities appear on every page. You can compare vendors without chasing different rubrics.
+
+
+
+
+
+ Hover an icon for a short rationale. Ratings follow a public research pass (Strong / Partial / Weak / N.A.) and
+ are meant for orientation. They are not a substitute for your own procurement review.
+
+
-
-
+
+
-
-
-
-
-
-
- Build with technology that fits your needs
-
- {{ page.technologyFitLead }}
-
-
-
- More comparisons
-
- @for (item of otherComparisons; track item.slug) {
- -
- {{ item.label }}
-
- }
-
-
-
-
+
+
+
+
+ Build with technology that fits your needs
+
+ {{ page.technologyFitLead }}
-
+
+
+
+
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/layout/comparison-layout.component.scss b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/layout/comparison-layout.component.scss
index cd961088..81f170ff 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/layout/comparison-layout.component.scss
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/layout/comparison-layout.component.scss
@@ -1,24 +1,55 @@
@import '../../../page.component.scss';
-.hero-lead.max-w-750 {
- max-width: 750px;
-}
-
-.max-w-750 {
- max-width: 750px;
-}
-
-.comparison-more-comparisons {
- @media (max-width: 991px) {
- position: relative !important;
- top: auto !important;
- right: auto !important;
- margin-top: 0 !important;
- margin-right: 0 !important;
- margin-left: 0 !important;
- margin-bottom: 0 !important;
- padding-top: 3rem !important;
- border-top-left-radius: var(--bs-border-radius-lg) !important;
- border-top-right-radius: var(--bs-border-radius-lg) !important;
+.comparison-vendor-icon {
+ width: 48px;
+ height: 48px;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 1.35rem;
+ flex-shrink: 0;
+}
+
+.comparison-vendor-icon--muted {
+ background: rgba(98, 108, 113, 0.12);
+ color: var(--bs-secondary);
+}
+
+.comparison-vendor-icon--primary {
+ background: rgba(139, 92, 246, 0.12);
+ color: var(--bs-primary);
+}
+
+.comparison-legend-pill {
+ background: var(--bs-body-tertiary);
+ color: var(--bs-body-color);
+ font-weight: 500;
+ padding: 0.4rem 0.85rem;
+}
+
+.comparison-fit-main {
+ background: rgba(255, 255, 255, 0.06);
+ backdrop-filter: blur(8px);
+}
+
+.comparison-fit-lead {
+ color: rgba(255, 255, 255, 0.88);
+}
+
+.comparison-more-panel {
+ background: rgba(255, 255, 255, 0.08);
+}
+
+.comparison-more-link {
+ color: rgba(255, 255, 255, 0.9);
+ padding: 0.35rem 0;
+ border-radius: 0.25rem;
+ transition:
+ color 0.2s ease,
+ padding-left 0.2s ease;
+
+ &:hover {
+ color: #fff;
+ padding-left: 0.25rem;
}
}
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.html b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.html
index 22635402..0ed6de7b 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.html
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.html
@@ -1,5 +1,5 @@
-
+
@for (row of rows; track row.dimension) {
-
+
{{ row.dimension }}
{{ row.question }}
-
+
@let ag = matrixStrengthVisual(row.agenstra);
-
+
@let co = matrixStrengthVisual(row.competitor);
-
- Hover an icon for a short rationale. Ratings follow a public research pass (Strong / Partial / Weak / N.A.) and are
- meant for orientation. They are not a substitute for your own procurement review.
-
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.scss b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.scss
index 49c2002b..7bd9a8d6 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.scss
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.scss
@@ -1,7 +1,11 @@
.comparison-matrix-table {
.table {
--bs-table-bg: var(--bs-white);
- --bs-table-hover-bg: rgba(255, 255, 255, 0.08);
+ --bs-table-hover-bg: rgba(139, 92, 246, 0.04);
+ }
+
+ thead th {
+ font-weight: 600;
}
}
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/tabnine-enterprise/tabnine-enterprise.page.ts b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/tabnine-enterprise/tabnine-enterprise.page.ts
index 16f29b51..cd2213d3 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/tabnine-enterprise/tabnine-enterprise.page.ts
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/tabnine-enterprise/tabnine-enterprise.page.ts
@@ -4,8 +4,8 @@ import { COMPARISON_TECHNOLOGY_FIT_LEAD } from '../shared/misc/comparison-techno
export const TABNINE_ENTERPRISE_COMPARISON_PAGE: ComparisonPageConfig = {
slug: 'tabnine-enterprise',
competitorDisplayName: 'Tabnine Enterprise',
- metaTitle: $localize`:@@featurePortalComparison-tabnine-metaTitle:Tabnine Enterprise vs. Agenstra. AI agent platform comparison`,
- metaDescription: $localize`:@@featurePortalComparison-tabnine-metaDescription:Compare self-hosted Tabnine Enterprise with Agenstra’s agent control plane and browser IDE.`,
+ metaTitle: $localize`:@@featurePortalComparison-tabnine-metaTitle:Tabnine vs Agenstra :: Agenstra`,
+ metaDescription: $localize`:@@featurePortalComparison-tabnine-metaDescription:Compare self-hosted Tabnine Enterprise with Agenstra’s agent control plane, browser IDE, workspace operations, tickets, and governance for coding agents.`,
canonicalUrl: 'https://agenstra.com/compare/tabnine-enterprise',
heroSubtitle: $localize`:@@featurePortalComparison-tabnine-heroSubtitle:Private assistant clusters versus containerized agent fleets with tickets and deployments.`,
overviewCompetitorLead: $localize`:@@featurePortalComparison-tabnine-overviewCompetitor:Tabnine Enterprise keeps AI coding assistance inside your VPC or data center so completions and chat stay on infrastructure you operate. It suits teams whose priority is private assistant coverage in familiar editors rather than a full agent operations layer for remote workspaces.`,
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/container/container.component.html b/libs/domains/framework/frontend/feature-portal/src/lib/container/container.component.html
index 9e3c990a..a4fa0c50 100644
--- a/libs/domains/framework/frontend/feature-portal/src/lib/container/container.component.html
+++ b/libs/domains/framework/frontend/feature-portal/src/lib/container/container.component.html
@@ -36,9 +36,9 @@
{{ plan.name }}
- {{ plan.serviceTypeName }} + {{ + plan.serviceTypeName + }}{{ plan.name }}
}Getting started
--
+
-
+
+
+ Choose a plan +
+
+ -
+
+
+ Log in to the interface +
+
+ -
+
+
+ Connect your agents +
+
+ -
+
+
+ Start building +
+
+
- Where the control plane runs -
-- Technical outline of the infrastructure behind Agenstra Cloud. We add providers and regions deliberately. - Security, latency, and your requirements drive the roadmap. -
-Where Agenstra Cloud runs
++ We choose providers and regions deliberately. Security, latency, and your requirements shape the roadmap. +
+{{ infrastructureProvider.tagline }}
--
-
- Datacenters -
- {{ infrastructureProvider.datacenters }} -
- Network -
- {{ infrastructureProvider.network }} -
- Hardware -
- {{ infrastructureProvider.hardware }} -
{{ infrastructureProvider.tagline }}
+-
+
- + Datacenters + {{ infrastructureProvider.datacenters }} + +
- + Network + {{ infrastructureProvider.network }} + +
- + Hardware + {{ infrastructureProvider.hardware }} + +
- {{ page.competitorDisplayName }} - vs. - Agenstra -
-{{ page.heroSubtitle }}
++ {{ page.competitorDisplayName }} + vs. + Agenstra +
+{{ page.heroSubtitle }}
++ Two approaches to coding agents at scale +
+{{ page.competitorDisplayName }}
-{{ page.overviewCompetitorLead }}
++ What they optimize for +
+{{ page.overviewCompetitorLead }}
+Agenstra
-{{ page.overviewAgenstraLead }}
+What we optimize for
+{{ page.overviewAgenstraLead }}
+- Feature comparison -
-- The same thirteen capabilities appear on every page. You can compare vendors without chasing different rubrics. -
-Feature comparison
++ The same thirteen capabilities appear on every page. You can compare vendors without chasing different rubrics. +
++ Hover an icon for a short rationale. Ratings follow a public research pass (Strong / Partial / Weak / N.A.) and + are meant for orientation. They are not a substitute for your own procurement review. +
+- Build with technology that fits your needs -
-{{ page.technologyFitLead }}
-More comparisons
--
- @for (item of otherComparisons; track item.slug) {
-
- - {{ item.label }} - - } -
+ Build with technology that fits your needs +
+{{ page.technologyFitLead }}
-| @for (row of rows; track row.dimension) { | |||||
|---|---|---|---|---|---|
| + |
{{ row.dimension }}
{{ row.question }}
|
- + | @let ag = matrixStrengthVisual(row.agenstra); | -+ | @let co = matrixStrengthVisual(row.competitor); |
- Hover an icon for a short rationale. Ratings follow a public research pass (Strong / Partial / Weak / N.A.) and are - meant for orientation. They are not a substitute for your own procurement review. -
diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.scss b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.scss index 49c2002b..7bd9a8d6 100644 --- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.scss +++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/shared/matrix/comparison-matrix.component.scss @@ -1,7 +1,11 @@ .comparison-matrix-table { .table { --bs-table-bg: var(--bs-white); - --bs-table-hover-bg: rgba(255, 255, 255, 0.08); + --bs-table-hover-bg: rgba(139, 92, 246, 0.04); + } + + thead th { + font-weight: 600; } } diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/tabnine-enterprise/tabnine-enterprise.page.ts b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/tabnine-enterprise/tabnine-enterprise.page.ts index 16f29b51..cd2213d3 100644 --- a/libs/domains/framework/frontend/feature-portal/src/lib/comparison/tabnine-enterprise/tabnine-enterprise.page.ts +++ b/libs/domains/framework/frontend/feature-portal/src/lib/comparison/tabnine-enterprise/tabnine-enterprise.page.ts @@ -4,8 +4,8 @@ import { COMPARISON_TECHNOLOGY_FIT_LEAD } from '../shared/misc/comparison-techno export const TABNINE_ENTERPRISE_COMPARISON_PAGE: ComparisonPageConfig = { slug: 'tabnine-enterprise', competitorDisplayName: 'Tabnine Enterprise', - metaTitle: $localize`:@@featurePortalComparison-tabnine-metaTitle:Tabnine Enterprise vs. Agenstra. AI agent platform comparison`, - metaDescription: $localize`:@@featurePortalComparison-tabnine-metaDescription:Compare self-hosted Tabnine Enterprise with Agenstra’s agent control plane and browser IDE.`, + metaTitle: $localize`:@@featurePortalComparison-tabnine-metaTitle:Tabnine vs Agenstra :: Agenstra`, + metaDescription: $localize`:@@featurePortalComparison-tabnine-metaDescription:Compare self-hosted Tabnine Enterprise with Agenstra’s agent control plane, browser IDE, workspace operations, tickets, and governance for coding agents.`, canonicalUrl: 'https://agenstra.com/compare/tabnine-enterprise', heroSubtitle: $localize`:@@featurePortalComparison-tabnine-heroSubtitle:Private assistant clusters versus containerized agent fleets with tickets and deployments.`, overviewCompetitorLead: $localize`:@@featurePortalComparison-tabnine-overviewCompetitor:Tabnine Enterprise keeps AI coding assistance inside your VPC or data center so completions and chat stay on infrastructure you operate. It suits teams whose priority is private assistant coverage in familiar editors rather than a full agent operations layer for remote workspaces.`, diff --git a/libs/domains/framework/frontend/feature-portal/src/lib/container/container.component.html b/libs/domains/framework/frontend/feature-portal/src/lib/container/container.component.html index 9e3c990a..a4fa0c50 100644 --- a/libs/domains/framework/frontend/feature-portal/src/lib/container/container.component.html +++ b/libs/domains/framework/frontend/feature-portal/src/lib/container/container.component.html @@ -36,9 +36,9 @@