Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 11 additions & 2 deletions apps/sim/app/(landing)/comparisons/[provider]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import { BrandIconTile, SimIconTile } from '@/app/(landing)/comparisons/componen
import { ComparisonCards } from '@/app/(landing)/comparisons/components/comparison-cards'
import { ComparisonLinkRow } from '@/app/(landing)/comparisons/components/comparison-link-row'
import { ComparisonTable } from '@/app/(landing)/comparisons/components/comparison-table'
import { MigrationSection } from '@/app/(landing)/comparisons/components/migration-section'
import { ProseText } from '@/app/(landing)/comparisons/components/prose-text'
import { getLibraryPostsForCompetitor } from '@/app/(landing)/comparisons/library-links'
import {
Expand Down Expand Up @@ -61,8 +62,10 @@ export async function generateMetadata({
}

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

<div className={cn(LANDING_CONTENT_WIDTH, LANDING_GUTTER)}>
<div className='border-[var(--border)] border-x'>
{competitor.migration ? (
<>
<MigrationSection migration={competitor.migration} />
<div className='h-px w-full bg-[var(--border)]' />
</>
) : null}
{competitor.betterThanAnswer ? (
<>
<section aria-labelledby='better-than-heading' className='px-6 py-10'>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { MigrationSection } from './migration-section'
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
import type { CompetitorMigration } from '@/lib/compare/data'
import { ProseText } from '@/app/(landing)/comparisons/components/prose-text'
import { ProseLink } from '@/app/(landing)/components/prose-page'

interface MigrationSectionProps {
migration: CompetitorMigration
}

const HEADING_CLASS =
'mb-4 text-[var(--text-primary)] text-xl leading-[100%] tracking-[-0.02em] lg:text-2xl'
const BODY_CLASS = 'max-w-[720px] text-[var(--text-body)] text-small leading-[150%]'

/**
* Where to go when the competitor shuts down, as a two-column destinations table, then the
* ordered steps for moving to Sim. Server-rendered, so answer engines read the table and steps
* without hydration.
*/
export function MigrationSection({ migration }: MigrationSectionProps) {
return (
<>
<section id='migration' aria-labelledby='migration-heading' className='px-6 py-10'>
<h2 id='migration-heading' className={HEADING_CLASS}>
{migration.heading}
</h2>
<p className={BODY_CLASS}>
<ProseText prose={migration.answer} />
</p>
<div className='mt-6 w-full overflow-x-auto rounded-xl border border-[var(--border)]'>
<table className='w-full table-fixed border-separate border-spacing-0 text-left'>
<caption className='sr-only'>{migration.heading}</caption>
<colgroup>
<col className='w-[34%]' />
<col />
</colgroup>
<thead>
<tr>
<th
scope='col'
className='bg-[var(--surface-1)] px-4 py-3 font-medium text-[var(--text-muted)] text-small'
>
Destination
</th>
<th
scope='col'
className='border-[var(--border)] border-l bg-[var(--surface-1)] px-4 py-3 font-medium text-[var(--text-muted)] text-small'
>
Choose it when
</th>
</tr>
</thead>
<tbody>
{migration.options.map((option) => (
<tr key={option.name}>
<th
scope='row'
className='border-[var(--border)] border-t px-4 py-3 align-top font-medium text-[var(--text-primary)] text-small leading-[150%]'
>
<ProseLink href={option.source.url}>{option.name}</ProseLink>
</th>
<td className='border-[var(--border)] border-t border-l px-4 py-3 align-top text-[var(--text-body)] text-small leading-[150%]'>
{option.fitsWhen}
</td>
</tr>
))}
</tbody>
</table>
</div>
</section>
<section
id='migration-steps'
aria-labelledby='migration-steps-heading'
className='px-6 pb-10'
>
<h2 id='migration-steps-heading' className={HEADING_CLASS}>
{migration.stepsHeading}
</h2>
<ol className='flex max-w-[720px] list-decimal flex-col gap-2 pl-5 text-[var(--text-body)] text-small leading-[150%]'>
{migration.steps.map((step, index) => (
<li key={index}>
<ProseText prose={step} />
</li>
))}
</ol>
</section>
</>
)
}
6 changes: 3 additions & 3 deletions apps/sim/content/library/openai-vs-n8n-vs-sim/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: 'Sim vs n8n vs OpenAI AgentKit: how an agent-first, an automation-f
seoTitle: 'Sim vs n8n vs OpenAI AgentKit: Which to Use in 2026?'
seoDescription: 'Sim, n8n and OpenAI AgentKit compared on model choice, self-hosting, licensing and pricing, with fit guidance for each type of team.'
date: 2025-10-06
updated: 2026-10-24
updated: 2026-10-29
authors:
- emir
readingTime: 18
Expand Down Expand Up @@ -103,7 +103,7 @@ This page compares the three architectures. For a detailed two-way breakdown of

## TL;DR

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/).
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).

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

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

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

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).
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).

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.

Expand Down
Loading
Loading