Skip to content

Commit 584848a

Browse files
authored
improvement(comparisons): lead the OpenAI AgentKit page with the Agent Builder shutdown migration (#9460)
Adds an optional migration section and search-title overrides to comparison profiles, leads /comparisons/openai-agentkit with the Agent Builder shutdown and migration path, re-sources the shutdown claims to OpenAI's docs, and corrects the Evals API claim in the Sim vs n8n vs OpenAI AgentKit library post.
1 parent 2698438 commit 584848a

8 files changed

Lines changed: 313 additions & 24 deletions

File tree

‎apps/sim/app/(landing)/comparisons/[provider]/page.tsx‎

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { BrandIconTile, SimIconTile } from '@/app/(landing)/comparisons/componen
1111
import { ComparisonCards } from '@/app/(landing)/comparisons/components/comparison-cards'
1212
import { ComparisonLinkRow } from '@/app/(landing)/comparisons/components/comparison-link-row'
1313
import { ComparisonTable } from '@/app/(landing)/comparisons/components/comparison-table'
14+
import { MigrationSection } from '@/app/(landing)/comparisons/components/migration-section'
1415
import { ProseText } from '@/app/(landing)/comparisons/components/prose-text'
1516
import { getLibraryPostsForCompetitor } from '@/app/(landing)/comparisons/library-links'
1617
import {
@@ -61,8 +62,10 @@ export async function generateMetadata({
6162
}
6263

6364
return buildLandingMetadata({
64-
title: `Sim vs ${competitor.name} | Sim, the AI Workspace`,
65-
description: `Compare Sim, the open-source AI workspace, to ${competitor.name} on platform, AI, integrations, pricing, security, and support. Sourced and dated facts.`,
65+
title: competitor.seoTitle ?? `Sim vs ${competitor.name} | Sim, the AI Workspace`,
66+
description:
67+
competitor.seoDescription ??
68+
`Compare Sim, the open-source AI workspace, to ${competitor.name} on platform, AI, integrations, pricing, security, and support. Sourced and dated facts.`,
6669
path: `/comparisons/${competitor.id}`,
6770
keywords: [
6871
`Sim vs ${competitor.name}`,
@@ -215,6 +218,12 @@ export default async function ComparisonProviderPage({
215218

216219
<div className={cn(LANDING_CONTENT_WIDTH, LANDING_GUTTER)}>
217220
<div className='border-[var(--border)] border-x'>
221+
{competitor.migration ? (
222+
<>
223+
<MigrationSection migration={competitor.migration} />
224+
<div className='h-px w-full bg-[var(--border)]' />
225+
</>
226+
) : null}
218227
{competitor.betterThanAnswer ? (
219228
<>
220229
<section aria-labelledby='better-than-heading' className='px-6 py-10'>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export { MigrationSection } from './migration-section'
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
import type { CompetitorMigration } from '@/lib/compare/data'
2+
import { ProseText } from '@/app/(landing)/comparisons/components/prose-text'
3+
import { ProseLink } from '@/app/(landing)/components/prose-page'
4+
5+
interface MigrationSectionProps {
6+
migration: CompetitorMigration
7+
}
8+
9+
const HEADING_CLASS =
10+
'mb-4 text-[var(--text-primary)] text-xl leading-[100%] tracking-[-0.02em] lg:text-2xl'
11+
const BODY_CLASS = 'max-w-[720px] text-[var(--text-body)] text-small leading-[150%]'
12+
13+
/**
14+
* Where to go when the competitor shuts down, as a two-column destinations table, then the
15+
* ordered steps for moving to Sim. Server-rendered, so answer engines read the table and steps
16+
* without hydration.
17+
*/
18+
export function MigrationSection({ migration }: MigrationSectionProps) {
19+
return (
20+
<>
21+
<section id='migration' aria-labelledby='migration-heading' className='px-6 py-10'>
22+
<h2 id='migration-heading' className={HEADING_CLASS}>
23+
{migration.heading}
24+
</h2>
25+
<p className={BODY_CLASS}>
26+
<ProseText prose={migration.answer} />
27+
</p>
28+
<div className='mt-6 w-full overflow-x-auto rounded-xl border border-[var(--border)]'>
29+
<table className='w-full table-fixed border-separate border-spacing-0 text-left'>
30+
<caption className='sr-only'>{migration.heading}</caption>
31+
<colgroup>
32+
<col className='w-[34%]' />
33+
<col />
34+
</colgroup>
35+
<thead>
36+
<tr>
37+
<th
38+
scope='col'
39+
className='bg-[var(--surface-1)] px-4 py-3 font-medium text-[var(--text-muted)] text-small'
40+
>
41+
Destination
42+
</th>
43+
<th
44+
scope='col'
45+
className='border-[var(--border)] border-l bg-[var(--surface-1)] px-4 py-3 font-medium text-[var(--text-muted)] text-small'
46+
>
47+
Choose it when
48+
</th>
49+
</tr>
50+
</thead>
51+
<tbody>
52+
{migration.options.map((option) => (
53+
<tr key={option.name}>
54+
<th
55+
scope='row'
56+
className='border-[var(--border)] border-t px-4 py-3 align-top font-medium text-[var(--text-primary)] text-small leading-[150%]'
57+
>
58+
<ProseLink href={option.source.url}>{option.name}</ProseLink>
59+
</th>
60+
<td className='border-[var(--border)] border-t border-l px-4 py-3 align-top text-[var(--text-body)] text-small leading-[150%]'>
61+
{option.fitsWhen}
62+
</td>
63+
</tr>
64+
))}
65+
</tbody>
66+
</table>
67+
</div>
68+
</section>
69+
<section
70+
id='migration-steps'
71+
aria-labelledby='migration-steps-heading'
72+
className='px-6 pb-10'
73+
>
74+
<h2 id='migration-steps-heading' className={HEADING_CLASS}>
75+
{migration.stepsHeading}
76+
</h2>
77+
<ol className='flex max-w-[720px] list-decimal flex-col gap-2 pl-5 text-[var(--text-body)] text-small leading-[150%]'>
78+
{migration.steps.map((step, index) => (
79+
<li key={index}>
80+
<ProseText prose={step} />
81+
</li>
82+
))}
83+
</ol>
84+
</section>
85+
</>
86+
)
87+
}

‎apps/sim/content/library/openai-vs-n8n-vs-sim/index.mdx‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ description: 'Sim vs n8n vs OpenAI AgentKit: how an agent-first, an automation-f
55
seoTitle: 'Sim vs n8n vs OpenAI AgentKit: Which to Use in 2026?'
66
seoDescription: 'Sim, n8n and OpenAI AgentKit compared on model choice, self-hosting, licensing and pricing, with fit guidance for each type of team.'
77
date: 2025-10-06
8-
updated: 2026-10-24
8+
updated: 2026-10-29
99
authors:
1010
- emir
1111
readingTime: 18
@@ -103,7 +103,7 @@ This page compares the three architectures. For a detailed two-way breakdown of
103103

104104
## TL;DR
105105

106-
Choose **Sim** when agents and LLM workflows are the product, you want a visual workflow builder, and ownership of Sim's Apache 2.0 core matters, subject to the [separate license for `apps/sim/ee`](https://github.com/simstudioai/sim/blob/main/apps/sim/ee/LICENSE). Choose **n8n** when conventional app integrations, triggers, data movement, and operational automation are the center of the workflow. Choose **OpenAI AgentKit** when your application is committed to OpenAI models and current platform services, but do not start a new architecture around Agent Builder or the Evals platform, which [OpenAI has scheduled to shut down on November 30, 2026](https://openai.com/index/introducing-agentkit/).
106+
Choose **Sim** when agents and LLM workflows are the product, you want a visual workflow builder, and ownership of Sim's Apache 2.0 core matters, subject to the [separate license for `apps/sim/ee`](https://github.com/simstudioai/sim/blob/main/apps/sim/ee/LICENSE). Choose **n8n** when conventional app integrations, triggers, data movement, and operational automation are the center of the workflow. Choose **OpenAI AgentKit** when your application is committed to OpenAI models and current platform services, but do not start a new architecture around Agent Builder or the Evals platform, which [OpenAI has scheduled to shut down on November 30, 2026](https://developers.openai.com/api/docs/deprecations).
107107

108108
## What is the difference between Sim, n8n, and OpenAI AgentKit?
109109

@@ -210,7 +210,7 @@ OpenAI AgentKit is best understood as a family of OpenAI-native agent capabiliti
210210

211211
![OpenAI AgentKit workflow interface](/library/openai-vs-n8n-vs-sim/openai.png)
212212

213-
This comparison requires an important October 2026 qualification: OpenAI is deprecating Agent Builder and the Evals platform. Agent Builder is scheduled to shut down on November 30, 2026; the Evals platform becomes read-only on October 31, 2026 and is also scheduled to shut down on November 30. OpenAI recommends exporting Agent Builder workflows to the Agents SDK or moving to Workspace Agents, while programmatic evals continue through the Evals API. These dates and migration paths come from OpenAI's [Agent Builder migration guide](https://developers.openai.com/api/docs/guides/agent-builder/migrate-from-agent-builder) and [Evals documentation](https://developers.openai.com/api/docs/guides/evals).
213+
This comparison requires an important October 2026 qualification: OpenAI is deprecating Agent Builder and the Evals platform. Agent Builder is scheduled to shut down on November 30, 2026; the Evals platform becomes read-only on October 31, 2026, and its dashboard and API are also scheduled to shut down on November 30. OpenAI recommends exporting Agent Builder workflows to the Agents SDK or moving to Workspace Agents. These dates and migration paths come from OpenAI's [Agent Builder migration guide](https://developers.openai.com/api/docs/guides/agent-builder/migrate-from-agent-builder) and [deprecations page](https://developers.openai.com/api/docs/deprecations). For a head-to-head view and step-by-step migration to Sim, see the [Sim vs OpenAI AgentKit comparison](https://www.sim.ai/comparisons/openai-agentkit).
214214

215215
OpenAI's remaining stack fits teams already using OpenAI models and services. Application code built with the Agents SDK may run in a team's own environment, while managed models, tools, and platform capabilities remain OpenAI services.
216216

0 commit comments

Comments
 (0)