From eb0e304706063b0473117f1dd93fc83a916d84be Mon Sep 17 00:00:00 2001
From: Emir Karabeg
Date: Sat, 11 Apr 2026 19:26:14 -0700
Subject: [PATCH 01/13] improvement: seo, geo, signup, posthog
---
.claude/rules/constitution.md | 71 +++++++
.cursor/rules/constitution.mdc | 76 +++++++
apps/docs/app/[lang]/[[...slug]]/page.tsx | 12 +-
apps/docs/app/[lang]/layout.tsx | 2 +-
apps/docs/app/layout.tsx | 22 +-
apps/docs/app/llms.txt/route.ts | 4 +-
apps/docs/components/structured-data.tsx | 10 +-
.../content/docs/en/getting-started/index.mdx | 14 +-
apps/docs/content/docs/en/index.mdx | 12 +-
.../content/docs/en/introduction/index.mdx | 22 +-
apps/docs/public/favicon/site.webmanifest | 4 +-
apps/docs/public/llms.txt | 32 ++-
apps/sim/app/(auth)/login/login-form.tsx | 7 +-
apps/sim/app/(auth)/signup/signup-form.tsx | 22 +-
apps/sim/app/(landing)/blog/layout.tsx | 2 +-
apps/sim/app/(landing)/blog/page.tsx | 2 +-
.../components/auth-modal/auth-modal.tsx | 193 ++++++++++++++++++
.../collaboration/collaboration.tsx | 81 ++++----
.../components/features/features.tsx | 29 ++-
.../components/footer/footer-cta.tsx | 26 ++-
.../(landing)/components/footer/footer.tsx | 8 +-
.../app/(landing)/components/hero/hero.tsx | 38 ++--
.../landing-preview-panel.tsx | 45 ++--
.../navbar/components/product-dropdown.tsx | 8 +-
.../(landing)/components/navbar/navbar.tsx | 119 ++++++-----
.../(landing)/components/pricing/pricing.tsx | 62 +++---
.../(landing)/components/structured-data.tsx | 39 ++--
.../components/templates/templates.tsx | 6 +
.../components/template-card-button.tsx | 2 +
.../(landing)/integrations/[slug]/page.tsx | 83 ++++----
apps/sim/app/(landing)/integrations/page.tsx | 18 +-
apps/sim/app/(landing)/landing-analytics.tsx | 9 +-
apps/sim/app/(landing)/landing.tsx | 7 +-
apps/sim/app/(landing)/models/page.tsx | 9 +-
apps/sim/app/(landing)/models/utils.ts | 2 +-
apps/sim/app/(landing)/partners/page.tsx | 14 +-
apps/sim/app/api/auth/providers/route.ts | 9 +
apps/sim/app/llms-full.txt/route.ts | 8 +-
apps/sim/app/llms.txt/route.ts | 10 +-
apps/sim/app/manifest.ts | 7 +-
apps/sim/app/page.tsx | 22 +-
apps/sim/app/robots.ts | 10 +
apps/sim/app/sitemap.ts | 14 ++
apps/sim/ee/whitelabeling/metadata.ts | 19 +-
apps/sim/lib/blog/seo.ts | 2 +-
apps/sim/lib/posthog/events.ts | 28 ++-
apps/sim/public/llms.txt | 45 ++--
47 files changed, 903 insertions(+), 383 deletions(-)
create mode 100644 .claude/rules/constitution.md
create mode 100644 .cursor/rules/constitution.mdc
create mode 100644 apps/sim/app/(landing)/components/auth-modal/auth-modal.tsx
create mode 100644 apps/sim/app/api/auth/providers/route.ts
diff --git a/.claude/rules/constitution.md b/.claude/rules/constitution.md
new file mode 100644
index 00000000000..6881c060ee8
--- /dev/null
+++ b/.claude/rules/constitution.md
@@ -0,0 +1,71 @@
+# Sim — Language & Positioning
+
+When editing user-facing copy (landing pages, docs, metadata, marketing), follow these rules.
+
+## Identity
+
+Sim is the **AI workspace** where teams build and run AI agents. Not a workflow tool, not an agent framework, not an automation platform.
+
+**Short definition:** Sim is the open-source AI workspace where teams build, deploy, and manage AI agents.
+
+**Full definition:** Sim is the open-source AI workspace where teams build, deploy, and manage AI agents. Connect 1,000+ integrations and every major LLM to create agents that automate real work — visually, conversationally, or with code.
+
+## Audience
+
+**Primary:** Teams building AI agents for their organization — IT, operations, and technical teams who need governance, security, lifecycle management, and collaboration.
+
+**Secondary:** Individual builders and developers who care about speed, flexibility, and open source.
+
+## Required Language
+
+| Concept | Use | Never use |
+|---------|-----|-----------|
+| The product | "AI workspace" | "workflow tool", "automation platform", "agent framework" |
+| Building | "build agents", "create agents" | "create workflows" (unless describing the workflow module specifically) |
+| Visual builder | "workflow builder" or "visual builder" | "canvas", "graph editor" |
+| Mothership | "Mothership" (capitalized) | "chat", "AI assistant", "copilot" |
+| Deployment | "deploy", "ship" | "publish", "activate" |
+| Audience | "teams", "builders" | "users", "customers" (in marketing copy) |
+| What agents do | "automate real work" | "automate tasks", "automate workflows" |
+| Our advantage | "open-source AI workspace" | "open-source platform" |
+
+## Tone
+
+- **Direct.** Short sentences. Active voice. Lead with what it does.
+- **Concrete.** Name specific things — "Slack bots, compliance agents, data pipelines" — not abstractions.
+- **Confident, not loud.** No exclamation marks or superlatives.
+- **Simple.** If a 16-year-old can't understand the sentence, rewrite it.
+
+## Claim Hierarchy
+
+When describing Sim, always lead with the most differentiated claim:
+
+1. **What it is:** "The AI workspace for teams"
+2. **What you do:** "Build, deploy, and manage AI agents"
+3. **How:** "Visually, conversationally, or with code"
+4. **Scale:** "1,000+ integrations, every major LLM"
+5. **Trust:** "Open source. SOC2. Trusted by 100,000+ builders."
+
+## Module Descriptions
+
+| Module | One-liner |
+|--------|-----------|
+| **Mothership** | Your AI command center. Build and manage everything in natural language. |
+| **Workflows** | The visual builder. Connect blocks, models, and integrations into agent logic. |
+| **Knowledge Base** | Your agents' memory. Upload docs, sync sources, build vector databases. |
+| **Tables** | A database, built in. Store, query, and wire structured data into agent runs. |
+| **Files** | Upload, create, and share. One store for your team and every agent. |
+| **Logs** | Full visibility, every run. Trace execution block by block. |
+
+## What We Never Say
+
+- Never call Sim "just a workflow tool"
+- Never compare only on integration count — we win on AI-native capabilities
+- Never use "no-code" as the primary descriptor — say "visually, conversationally, or with code"
+- Never promise unshipped features
+- Never use jargon ("RAG", "vector database", "MCP") without plain-English explanation on public pages
+- Avoid "agentic workforce" as a primary term — use "AI agents"
+
+## Vision
+
+Sim becomes the default environment where teams build AI agents — not a tool you visit for one task, but a workspace you live in. Workflows are one module; Mothership is another. The workspace is the constant; the interface adapts.
diff --git a/.cursor/rules/constitution.mdc b/.cursor/rules/constitution.mdc
new file mode 100644
index 00000000000..94186db6e3a
--- /dev/null
+++ b/.cursor/rules/constitution.mdc
@@ -0,0 +1,76 @@
+---
+description: Sim product language, positioning, and tone guidelines
+globs: ["apps/sim/app/(landing)/**", "apps/sim/app/(home)/**", "apps/docs/**", "apps/sim/app/manifest.ts", "apps/sim/app/sitemap.ts", "apps/sim/app/robots.ts", "apps/sim/app/llms.txt/**", "apps/sim/app/llms-full.txt/**", "apps/sim/app/(landing)/**/structured-data*", "apps/docs/**/structured-data*", "**/metadata*", "**/seo*"]
+---
+
+# Sim — Language & Positioning
+
+When editing user-facing copy (landing pages, docs, metadata, marketing), follow these rules.
+
+## Identity
+
+Sim is the **AI workspace** where teams build and run AI agents. Not a workflow tool, not an agent framework, not an automation platform.
+
+**Short definition:** Sim is the open-source AI workspace where teams build, deploy, and manage AI agents.
+
+**Full definition:** Sim is the open-source AI workspace where teams build, deploy, and manage AI agents. Connect 1,000+ integrations and every major LLM to create agents that automate real work — visually, conversationally, or with code.
+
+## Audience
+
+**Primary:** Teams building AI agents for their organization — IT, operations, and technical teams who need governance, security, lifecycle management, and collaboration.
+
+**Secondary:** Individual builders and developers who care about speed, flexibility, and open source.
+
+## Required Language
+
+| Concept | Use | Never use |
+|---------|-----|-----------|
+| The product | "AI workspace" | "workflow tool", "automation platform", "agent framework" |
+| Building | "build agents", "create agents" | "create workflows" (unless describing the workflow module specifically) |
+| Visual builder | "workflow builder" or "visual builder" | "canvas", "graph editor" |
+| Mothership | "Mothership" (capitalized) | "chat", "AI assistant", "copilot" |
+| Deployment | "deploy", "ship" | "publish", "activate" |
+| Audience | "teams", "builders" | "users", "customers" (in marketing copy) |
+| What agents do | "automate real work" | "automate tasks", "automate workflows" |
+| Our advantage | "open-source AI workspace" | "open-source platform" |
+
+## Tone
+
+- **Direct.** Short sentences. Active voice. Lead with what it does.
+- **Concrete.** Name specific things — "Slack bots, compliance agents, data pipelines" — not abstractions.
+- **Confident, not loud.** No exclamation marks or superlatives.
+- **Simple.** If a 16-year-old can't understand the sentence, rewrite it.
+
+## Claim Hierarchy
+
+When describing Sim, always lead with the most differentiated claim:
+
+1. **What it is:** "The AI workspace for teams"
+2. **What you do:** "Build, deploy, and manage AI agents"
+3. **How:** "Visually, conversationally, or with code"
+4. **Scale:** "1,000+ integrations, every major LLM"
+5. **Trust:** "Open source. SOC2. Trusted by 100,000+ builders."
+
+## Module Descriptions
+
+| Module | One-liner |
+|--------|-----------|
+| **Mothership** | Your AI command center. Build and manage everything in natural language. |
+| **Workflows** | The visual builder. Connect blocks, models, and integrations into agent logic. |
+| **Knowledge Base** | Your agents' memory. Upload docs, sync sources, build vector databases. |
+| **Tables** | A database, built in. Store, query, and wire structured data into agent runs. |
+| **Files** | Upload, create, and share. One store for your team and every agent. |
+| **Logs** | Full visibility, every run. Trace execution block by block. |
+
+## What We Never Say
+
+- Never call Sim "just a workflow tool"
+- Never compare only on integration count — we win on AI-native capabilities
+- Never use "no-code" as the primary descriptor — say "visually, conversationally, or with code"
+- Never promise unshipped features
+- Never use jargon ("RAG", "vector database", "MCP") without plain-English explanation on public pages
+- Avoid "agentic workforce" as a primary term — use "AI agents"
+
+## Vision
+
+Sim becomes the default environment where teams build AI agents — not a tool you visit for one task, but a workspace you live in. Workflows are one module; Mothership is another. The workspace is the constant; the interface adapts.
diff --git a/apps/docs/app/[lang]/[[...slug]]/page.tsx b/apps/docs/app/[lang]/[[...slug]]/page.tsx
index 94b9531ec12..d01cd5d3598 100644
--- a/apps/docs/app/[lang]/[[...slug]]/page.tsx
+++ b/apps/docs/app/[lang]/[[...slug]]/page.tsx
@@ -280,12 +280,12 @@ export async function generateMetadata(props: {
title: data.title,
description:
data.description ||
- 'Documentation for Sim — the open-source platform to build AI agents and run your agentic workforce.',
+ 'Documentation for Sim — the open-source AI workspace where teams build, deploy, and manage AI agents.',
keywords: [
'AI agents',
- 'agentic workforce',
- 'AI agent platform',
- 'agentic workflows',
+ 'AI workspace',
+ 'AI agent builder',
+ 'build AI agents',
'LLM orchestration',
'AI automation',
'knowledge base',
@@ -300,7 +300,7 @@ export async function generateMetadata(props: {
title: data.title,
description:
data.description ||
- 'Documentation for Sim — the open-source platform to build AI agents and run your agentic workforce.',
+ 'Documentation for Sim — the open-source AI workspace where teams build, deploy, and manage AI agents.',
url: fullUrl,
siteName: 'Sim Documentation',
type: 'article',
@@ -322,7 +322,7 @@ export async function generateMetadata(props: {
title: data.title,
description:
data.description ||
- 'Documentation for Sim — the open-source platform to build AI agents and run your agentic workforce.',
+ 'Documentation for Sim — the open-source AI workspace where teams build, deploy, and manage AI agents.',
images: [ogImageUrl],
creator: '@simdotai',
site: '@simdotai',
diff --git a/apps/docs/app/[lang]/layout.tsx b/apps/docs/app/[lang]/layout.tsx
index 5f9ca80cdd1..c500f440cbb 100644
--- a/apps/docs/app/[lang]/layout.tsx
+++ b/apps/docs/app/[lang]/layout.tsx
@@ -66,7 +66,7 @@ export default async function Layout({ children, params }: LayoutProps) {
'@type': 'WebSite',
name: 'Sim Documentation',
description:
- 'Documentation for Sim — the open-source platform to build AI agents and run your agentic workforce. Connect 1,000+ integrations and LLMs to deploy and orchestrate agentic workflows.',
+ 'Documentation for Sim — the open-source AI workspace where teams build, deploy, and manage AI agents. Connect 1,000+ integrations and every major LLM.',
url: 'https://docs.sim.ai',
publisher: {
'@type': 'Organization',
diff --git a/apps/docs/app/layout.tsx b/apps/docs/app/layout.tsx
index ae83961eabd..80332d4c353 100644
--- a/apps/docs/app/layout.tsx
+++ b/apps/docs/app/layout.tsx
@@ -14,29 +14,27 @@ export const viewport: Viewport = {
export const metadata = {
metadataBase: new URL('https://docs.sim.ai'),
title: {
- default: 'Sim Documentation — Build AI Agents & Run Your Agentic Workforce',
+ default: 'Sim Documentation — The AI Workspace for Teams',
template: '%s | Sim Docs',
},
description:
- 'Documentation for Sim — the open-source platform to build AI agents and run your agentic workforce. Connect 1,000+ integrations and LLMs to deploy and orchestrate agentic workflows.',
+ 'Documentation for Sim — the open-source AI workspace where teams build, deploy, and manage AI agents. Connect 1,000+ integrations and every major LLM.',
applicationName: 'Sim Docs',
generator: 'Next.js',
referrer: 'origin-when-cross-origin' as const,
keywords: [
+ 'AI workspace',
+ 'AI agent builder',
'AI agents',
- 'agentic workforce',
- 'AI agent platform',
+ 'build AI agents',
'open-source AI agents',
- 'agentic workflows',
'LLM orchestration',
'AI integrations',
'knowledge base',
'AI automation',
- 'workflow builder',
- 'AI workflow orchestration',
+ 'visual workflow builder',
'enterprise AI',
'AI agent deployment',
- 'intelligent automation',
'AI tools',
],
authors: [{ name: 'Sim Team', url: 'https://sim.ai' }],
@@ -65,9 +63,9 @@ export const metadata = {
alternateLocale: ['es_ES', 'fr_FR', 'de_DE', 'ja_JP', 'zh_CN'],
url: 'https://docs.sim.ai',
siteName: 'Sim Documentation',
- title: 'Sim Documentation — Build AI Agents & Run Your Agentic Workforce',
+ title: 'Sim Documentation — The AI Workspace for Teams',
description:
- 'Documentation for Sim — the open-source platform to build AI agents and run your agentic workforce. Connect 1,000+ integrations and LLMs to deploy and orchestrate agentic workflows.',
+ 'Documentation for Sim — the open-source AI workspace where teams build, deploy, and manage AI agents. Connect 1,000+ integrations and every major LLM.',
images: [
{
url: 'https://docs.sim.ai/api/og?title=Sim%20Documentation',
@@ -79,9 +77,9 @@ export const metadata = {
},
twitter: {
card: 'summary_large_image',
- title: 'Sim Documentation — Build AI Agents & Run Your Agentic Workforce',
+ title: 'Sim Documentation — The AI Workspace for Teams',
description:
- 'Documentation for Sim — the open-source platform to build AI agents and run your agentic workforce. Connect 1,000+ integrations and LLMs to deploy and orchestrate agentic workflows.',
+ 'Documentation for Sim — the open-source AI workspace where teams build, deploy, and manage AI agents. Connect 1,000+ integrations and every major LLM.',
creator: '@simdotai',
site: '@simdotai',
images: ['https://docs.sim.ai/api/og?title=Sim%20Documentation'],
diff --git a/apps/docs/app/llms.txt/route.ts b/apps/docs/app/llms.txt/route.ts
index 352f4cc9043..c47d08d6b9e 100644
--- a/apps/docs/app/llms.txt/route.ts
+++ b/apps/docs/app/llms.txt/route.ts
@@ -37,9 +37,9 @@ export async function GET() {
const manifest = `# Sim Documentation
-> The open-source platform to build AI agents and run your agentic workforce.
+> The open-source AI workspace where teams build, deploy, and manage AI agents.
-Sim is the open-source platform to build AI agents and run your agentic workforce. Connect 1,000+ integrations and LLMs to deploy and orchestrate agentic workflows. Create agents, workflows, knowledge bases, tables, and docs. Trusted by over 100,000 builders.
+Sim is the open-source AI workspace where teams build, deploy, and manage AI agents. Connect 1,000+ integrations and every major LLM to create agents that automate real work — visually, conversationally, or with code. Trusted by over 100,000 builders.
## Documentation Overview
diff --git a/apps/docs/components/structured-data.tsx b/apps/docs/components/structured-data.tsx
index 0a77701f859..cf9b74c6c09 100644
--- a/apps/docs/components/structured-data.tsx
+++ b/apps/docs/components/structured-data.tsx
@@ -70,10 +70,11 @@ export function StructuredData({
'@context': 'https://schema.org',
'@type': 'SoftwareApplication',
name: 'Sim',
- applicationCategory: 'DeveloperApplication',
+ applicationCategory: 'BusinessApplication',
+ applicationSubCategory: 'AI Workspace',
operatingSystem: 'Any',
description:
- 'Sim is the open-source platform to build AI agents and run your agentic workforce. Connect 1,000+ integrations and LLMs to deploy and orchestrate agentic workflows. Create agents, workflows, knowledge bases, tables, and docs.',
+ 'Sim is the open-source AI workspace where teams build, deploy, and manage AI agents. Connect 1,000+ integrations and every major LLM to create agents that automate real work.',
url: baseUrl,
author: {
'@type': 'Organization',
@@ -84,8 +85,9 @@ export function StructuredData({
category: 'Developer Tools',
},
featureList: [
- 'AI agent creation',
- 'Agentic workflow orchestration',
+ 'AI workspace for teams',
+ 'Mothership — natural language agent creation',
+ 'Visual workflow builder',
'1,000+ integrations',
'LLM orchestration (OpenAI, Anthropic, Google, xAI, Mistral, Perplexity)',
'Knowledge base creation',
diff --git a/apps/docs/content/docs/en/getting-started/index.mdx b/apps/docs/content/docs/en/getting-started/index.mdx
index 0f25b32a621..f63be54314d 100644
--- a/apps/docs/content/docs/en/getting-started/index.mdx
+++ b/apps/docs/content/docs/en/getting-started/index.mdx
@@ -170,17 +170,17 @@ Build, test, and refine workflows quickly with immediate feedback
## Next Steps
-
- Discover API, Function, Condition, and other workflow blocks
+
+ Discover API, Function, Condition, and other blocks
- Connect 160+ services including Gmail, Slack, Notion, and more
+ Connect 1,000+ services including Gmail, Slack, Notion, and more
Write custom functions for advanced data processing
-
- Make your workflow accessible via REST API or webhooks
+
+ Make your agent accessible via REST API or webhooks
@@ -188,7 +188,7 @@ Build, test, and refine workflows quickly with immediate feedback
**Need detailed explanations?** Visit the [Blocks documentation](/blocks) for comprehensive guides on each component.
-**Looking for integrations?** Explore the [Tools documentation](/tools) to see all 160+ available integrations.
+**Looking for integrations?** Explore the [Tools documentation](/tools) to see all 1,000+ available integrations.
**Ready to go live?** Learn about [Execution and Deployment](/execution) to make your workflows production-ready.
@@ -199,5 +199,5 @@ Build, test, and refine workflows quickly with immediate feedback
{ question: "Can I use a different AI model instead of GPT-4o?", answer: "Yes. The Agent block supports models from OpenAI, Anthropic, Google, Groq, Cerebras, DeepSeek, Mistral, xAI, and more. You can select any available model from the dropdown. If you self-host, you can also use local models through Ollama." },
{ question: "Can I import workflows from other tools?", answer: "Sim does not currently support importing workflows from other automation platforms. However, you can use the Copilot feature to describe what you want in natural language and have it build the workflow for you, which is often faster than manual recreation." },
{ question: "What if my workflow does not produce the expected output?", answer: "Use the Chat panel to test iteratively and inspect outputs from each block. You can click the dropdown to view different block outputs and pinpoint where the issue is. The execution logs (accessible from the Logs tab) show detailed information about each step including token usage, costs, and any errors." },
- { question: "Where do I go after completing this tutorial?", answer: "Explore the Blocks documentation to learn about Condition, Router, Function, and API blocks. Browse the Tools section to discover 160+ integrations you can add to your agents. When you are ready to deploy, check the Execution docs for REST API, webhook, and scheduled trigger options." },
+ { question: "Where do I go after completing this tutorial?", answer: "Explore the Blocks documentation to learn about Condition, Router, Function, and API blocks. Browse the Tools section to discover 1,000+ integrations you can add to your agents. When you are ready to deploy, check the Execution docs for REST API, webhook, and scheduled trigger options." },
]} />
diff --git a/apps/docs/content/docs/en/index.mdx b/apps/docs/content/docs/en/index.mdx
index a327eb44c08..6ad3ec93550 100644
--- a/apps/docs/content/docs/en/index.mdx
+++ b/apps/docs/content/docs/en/index.mdx
@@ -6,7 +6,7 @@ import { Card, Cards } from 'fumadocs-ui/components/card'
# Sim Documentation
-Welcome to Sim, a visual workflow builder for AI applications. Build powerful AI agents, automation workflows, and data processing pipelines by connecting blocks on a canvas.
+Welcome to Sim, the open-source AI workspace where teams build, deploy, and manage AI agents. Create agents visually with the workflow builder, conversationally through Mothership, or programmatically with the API — connected to 1,000+ integrations and every major LLM.
## Quick Start
@@ -15,13 +15,13 @@ Welcome to Sim, a visual workflow builder for AI applications. Build powerful AI
Learn what you can build with Sim
- Create your first workflow in 10 minutes
+ Build your first agent in 10 minutes
-
+
Learn about the building blocks
- Explore 80+ built-in integrations
+ Explore 1,000+ integrations
@@ -35,10 +35,10 @@ Welcome to Sim, a visual workflow builder for AI applications. Build powerful AI
Work with workflow and environment variables
- Monitor workflow runs and manage costs
+ Monitor agent runs and manage costs
- Start workflows via API, webhooks, or schedules
+ Start agents via API, webhooks, or schedules
diff --git a/apps/docs/content/docs/en/introduction/index.mdx b/apps/docs/content/docs/en/introduction/index.mdx
index 1b6cdc9ecae..891667249f7 100644
--- a/apps/docs/content/docs/en/introduction/index.mdx
+++ b/apps/docs/content/docs/en/introduction/index.mdx
@@ -8,7 +8,7 @@ import { Image } from '@/components/ui/image'
import { Video } from '@/components/ui/video'
import { FAQ } from '@/components/ui/faq'
-Sim is an open-source visual workflow builder for building and deploying AI agent workflows. Design intelligent automation systems using a no-code interface—connect AI models, databases, APIs, and business tools through an intuitive drag-and-drop canvas. Whether you're building chatbots, automating business processes, or orchestrating complex data pipelines, Sim provides the tools to bring your AI workflows to life.
+Sim is the open-source AI workspace where teams build, deploy, and manage AI agents. Create agents visually with the workflow builder, conversationally through Mothership, or programmatically with the API. Connect AI models, databases, APIs, and 1,000+ business tools to build agents that automate real work — from chatbots and compliance agents to data pipelines and ITSM automation.
- Create your first workflow in 10 minutes
+ Build your first agent in 10 minutes
-
+
Learn about the building blocks
- Explore 160+ built-in integrations
+ Explore 1,000+ integrations
Set up workspace roles and permissions
@@ -121,9 +121,9 @@ Ready to build your first AI workflow?
{ question: "Is Sim free to use?", answer: "Sim offers a free Community plan with 1,000 one-time credits to get started. Paid plans start at $25/month (Pro) with 5,000 credits and go up to $100/month (Max) with 20,000 credits. Annual billing is available at a 15% discount. You can also self-host Sim for free on your own infrastructure." },
{ question: "Is Sim open source?", answer: "Yes. Sim is open source under the Apache 2.0 license. The full source code is available on GitHub and you can self-host it, contribute to development, or modify it for your own needs. Enterprise features (SSO, access control) have a separate license that requires a subscription for production use." },
{ question: "Which AI models and providers are supported?", answer: "Sim supports 15+ providers including OpenAI, Anthropic, Google Gemini, Groq, Cerebras, DeepSeek, Mistral, xAI, and OpenRouter. You can also run local models through Ollama or VLLM at no API cost. Bring Your Own Key (BYOK) is supported so you can use your own API keys at base provider pricing with no markup." },
- { question: "Do I need coding experience to use Sim?", answer: "No. Sim is a no-code visual builder where you design workflows by dragging blocks onto a canvas and connecting them. For advanced use cases, the Function block lets you write custom JavaScript, but it is entirely optional." },
+ { question: "Do I need coding experience to use Sim?", answer: "No. Sim lets you build agents visually by dragging blocks onto a canvas and connecting them, or conversationally through Mothership using natural language. For advanced use cases, the Function block lets you write custom JavaScript, and the full API/SDK is available for programmatic access." },
{ question: "Can I self-host Sim?", answer: "Yes. Sim provides Docker Compose configurations for self-hosted deployments. The stack includes the Sim application, a PostgreSQL database with pgvector, and a realtime collaboration server. You can also integrate local AI models via Ollama for a fully offline setup." },
{ question: "Is there a limit on how many workflows I can create?", answer: "There is no limit on the number of workflows you can create on any plan. Usage limits apply to execution credits, rate limits, and file storage, which vary by plan tier." },
- { question: "What integrations are available?", answer: "Sim offers 160+ native integrations across categories including AI models, communication tools (Gmail, Slack, Teams, Telegram), productivity apps (Notion, Google Workspace, Airtable), development tools (GitHub, Jira, Linear), search services (Google Search, Perplexity, Exa), and databases (PostgreSQL, Supabase, Pinecone). For anything not built in, you can use the MCP (Model Context Protocol) support to connect custom services." },
- { question: "How does Sim compare to other workflow automation tools?", answer: "Sim is purpose-built for AI agent workflows rather than general task automation. It provides a visual canvas for orchestrating LLM-powered agents with built-in support for tool use, structured outputs, conditional branching, and real-time collaboration. The Copilot feature also lets you build and modify workflows using natural language." },
+ { question: "What integrations are available?", answer: "Sim offers 1,000+ native integrations across categories including AI models, communication tools (Gmail, Slack, Teams, Telegram), productivity apps (Notion, Google Workspace, Airtable), development tools (GitHub, Jira, Linear), search services (Google Search, Perplexity, Exa), and databases (PostgreSQL, Supabase, Pinecone). For anything not built in, you can use the MCP (Model Context Protocol) support to connect custom services." },
+ { question: "How does Sim compare to other AI agent builders?", answer: "Sim is an AI workspace — not just a workflow tool or an agent framework. It combines a visual workflow builder, Mothership for natural-language agent creation, knowledge bases, tables, and full observability in one environment. Teams build agents visually, conversationally, or with code, then deploy and manage them with enterprise governance, real-time collaboration, and staging-to-production workflows." },
]} />
diff --git a/apps/docs/public/favicon/site.webmanifest b/apps/docs/public/favicon/site.webmanifest
index 9bb874a0218..8905a552b58 100644
--- a/apps/docs/public/favicon/site.webmanifest
+++ b/apps/docs/public/favicon/site.webmanifest
@@ -1,7 +1,7 @@
{
- "name": "Sim Documentation — Build AI Agents & Run Your Agentic Workforce",
+ "name": "Sim Documentation — The AI Workspace for Teams",
"short_name": "Sim Docs",
- "description": "Documentation for Sim — the open-source platform to build AI agents and run your agentic workforce. Connect 1,000+ integrations and LLMs to deploy and orchestrate agentic workflows.",
+ "description": "Documentation for Sim — the open-source AI workspace where teams build, deploy, and manage AI agents. Connect 1,000+ integrations and every major LLM.",
"start_url": "/",
"scope": "/",
"icons": [
diff --git a/apps/docs/public/llms.txt b/apps/docs/public/llms.txt
index 8d03f2491c3..aad99e364ef 100644
--- a/apps/docs/public/llms.txt
+++ b/apps/docs/public/llms.txt
@@ -1,13 +1,15 @@
# Sim Documentation
-Sim is a visual workflow builder for AI applications that lets you build AI agent workflows visually. Create powerful AI agents, automation workflows, and data processing pipelines by connecting blocks on a canvas—no coding required.
+Sim is the open-source AI workspace where teams build, deploy, and manage AI agents. Create agents visually with the workflow builder, conversationally through Mothership, or programmatically with the API — connected to 1,000+ integrations and every major LLM.
## What is Sim?
-Sim provides a complete ecosystem for AI workflow automation including:
+Sim provides a complete AI workspace including:
+- Mothership — natural language agent creation and workspace management
- Visual workflow builder with drag-and-drop interface
-- AI agent creation and automation
-- 80+ built-in integrations (OpenAI, Slack, Gmail, GitHub, etc.)
+- 1,000+ built-in integrations (OpenAI, Anthropic, Slack, Gmail, GitHub, etc.)
+- Knowledge bases for retrieval-augmented generation
+- Built-in tables for structured data
- Real-time team collaboration
- Multiple deployment options (cloud-hosted or self-hosted)
- Custom integrations via MCP protocol
@@ -16,22 +18,22 @@ Sim provides a complete ecosystem for AI workflow automation including:
Here are the key areas covered in our documentation:
-/introduction - Getting started with Sim visual workflow builder
-/getting-started - Quick start guide for building your first workflow
-/blocks - Understanding workflow blocks (AI agents, APIs, functions)
-/tools - 80+ built-in integrations and tools
+/introduction - Getting started with Sim AI workspace
+/getting-started - Quick start guide for building your first agent
+/blocks - Understanding blocks (AI agents, APIs, functions)
+/tools - 1,000+ integrations and tools
/webhooks - Webhook triggers and handling
/mcp - Custom integrations via MCP protocol
/deployment - Cloud-hosted vs self-hosted deployment
/permissions - Team collaboration and workspace management
/collaboration - Real-time editing and team features
-/workflows - Building complex automation workflows
+/workflows - Building agent logic with the visual builder
## Technical Information
- Framework: Fumadocs (Next.js-based documentation platform)
- Content: MDX files with interactive examples
-- Languages: English (primary), French, Chinese
+- Languages: English (primary), Spanish, French, German, Japanese, Chinese
- Search: AI-powered search and assistance available
## Complete Documentation
@@ -40,14 +42,10 @@ For the full documentation with all pages, examples, and interactive features, v
## Additional Resources
-- GitHub repository with workflow examples
+- GitHub repository with agent examples
- Discord community for support and discussions
-- 80+ built-in integrations with detailed guides
+- 1,000+ built-in integrations with detailed guides
- MCP protocol documentation for custom integrations
- Self-hosting guides and Docker deployment
-For the complete documentation with interactive examples and visual workflow builder guides, visit https://docs.sim.ai
-
----
-
-Last updated: 2025-09-15
\ No newline at end of file
+For the complete documentation visit https://docs.sim.ai
diff --git a/apps/sim/app/(auth)/login/login-form.tsx b/apps/sim/app/(auth)/login/login-form.tsx
index 8a43548acb4..27119bf1806 100644
--- a/apps/sim/app/(auth)/login/login-form.tsx
+++ b/apps/sim/app/(auth)/login/login-form.tsx
@@ -1,6 +1,6 @@
'use client'
-import { useRef, useState } from 'react'
+import { useEffect, useRef, useState } from 'react'
import { createLogger } from '@sim/logger'
import { Eye, EyeOff, Loader2 } from 'lucide-react'
import Link from 'next/link'
@@ -20,6 +20,7 @@ import { validateCallbackUrl } from '@/lib/core/security/input-validation'
import { cn } from '@/lib/core/utils/cn'
import { getBaseUrl } from '@/lib/core/utils/urls'
import { quickValidateEmail } from '@/lib/messaging/email/validation'
+import { captureClientEvent } from '@/lib/posthog/client'
import { AUTH_SUBMIT_BTN } from '@/app/(auth)/components/auth-button-classes'
import { SocialLoginButtons } from '@/app/(auth)/components/social-login-buttons'
import { SSOLoginButton } from '@/app/(auth)/components/sso-login-button'
@@ -113,6 +114,10 @@ export default function LoginPage({
: null
)
+ useEffect(() => {
+ captureClientEvent('login_page_viewed', {})
+ }, [])
+
const handleEmailChange = (e: React.ChangeEvent) => {
const newEmail = e.target.value
setEmail(newEmail)
diff --git a/apps/sim/app/(auth)/signup/signup-form.tsx b/apps/sim/app/(auth)/signup/signup-form.tsx
index afb27cd729a..8207531456a 100644
--- a/apps/sim/app/(auth)/signup/signup-form.tsx
+++ b/apps/sim/app/(auth)/signup/signup-form.tsx
@@ -12,7 +12,7 @@ import { client, useSession } from '@/lib/auth/auth-client'
import { getEnv, isFalsy, isTruthy } from '@/lib/core/config/env'
import { cn } from '@/lib/core/utils/cn'
import { quickValidateEmail } from '@/lib/messaging/email/validation'
-import { captureEvent } from '@/lib/posthog/client'
+import { captureClientEvent, captureEvent } from '@/lib/posthog/client'
import { AUTH_SUBMIT_BTN } from '@/app/(auth)/components/auth-button-classes'
import { SocialLoginButtons } from '@/app/(auth)/components/social-login-buttons'
import { SSOLoginButton } from '@/app/(auth)/components/sso-login-button'
@@ -71,15 +71,13 @@ const validateEmailField = (emailValue: string): string[] => {
return errors
}
-function SignupFormContent({
- githubAvailable,
- googleAvailable,
- isProduction,
-}: {
+interface SignupFormProps {
githubAvailable: boolean
googleAvailable: boolean
isProduction: boolean
-}) {
+}
+
+function SignupFormContent({ githubAvailable, googleAvailable, isProduction }: SignupFormProps) {
const router = useRouter()
const searchParams = useSearchParams()
const { refetch: refetchSession } = useSession()
@@ -87,8 +85,8 @@ function SignupFormContent({
const [isLoading, setIsLoading] = useState(false)
useEffect(() => {
- captureEvent(posthog, 'signup_page_viewed', {})
- }, [posthog])
+ captureClientEvent('signup_page_viewed', {})
+ }, [])
const [showPassword, setShowPassword] = useState(false)
const [password, setPassword] = useState('')
const [passwordErrors, setPasswordErrors] = useState([])
@@ -629,11 +627,7 @@ export default function SignupPage({
githubAvailable,
googleAvailable,
isProduction,
-}: {
- githubAvailable: boolean
- googleAvailable: boolean
- isProduction: boolean
-}) {
+}: SignupFormProps) {
return (
Loading...
}
diff --git a/apps/sim/app/(landing)/blog/layout.tsx b/apps/sim/app/(landing)/blog/layout.tsx
index 6d505132e37..512f41a32ee 100644
--- a/apps/sim/app/(landing)/blog/layout.tsx
+++ b/apps/sim/app/(landing)/blog/layout.tsx
@@ -10,7 +10,7 @@ export default async function StudioLayout({ children }: { children: React.React
name: 'Sim',
url: 'https://sim.ai',
description:
- 'Sim is an open-source platform for building, testing, and deploying AI agent workflows.',
+ 'Sim is the open-source AI workspace where teams build, deploy, and manage AI agents.',
logo: 'https://sim.ai/logo/primary/small.png',
sameAs: [
'https://x.com/simdotai',
diff --git a/apps/sim/app/(landing)/blog/page.tsx b/apps/sim/app/(landing)/blog/page.tsx
index 9bae1dd8aea..992287c65ed 100644
--- a/apps/sim/app/(landing)/blog/page.tsx
+++ b/apps/sim/app/(landing)/blog/page.tsx
@@ -19,7 +19,7 @@ export async function generateMetadata({
const title = titleParts.join(' — ')
const description = tag
- ? `Sim blog posts tagged "${tag}" — insights and guides for building AI agent workflows.`
+ ? `Sim blog posts tagged "${tag}" — insights and guides for building AI agents.`
: 'Announcements, insights, and guides for building AI agent workflows.'
const canonicalParams = new URLSearchParams()
diff --git a/apps/sim/app/(landing)/components/auth-modal/auth-modal.tsx b/apps/sim/app/(landing)/components/auth-modal/auth-modal.tsx
new file mode 100644
index 00000000000..8b399f36842
--- /dev/null
+++ b/apps/sim/app/(landing)/components/auth-modal/auth-modal.tsx
@@ -0,0 +1,193 @@
+'use client'
+
+import { useCallback, useEffect, useState } from 'react'
+import { Loader2, X } from 'lucide-react'
+import { useRouter } from 'next/navigation'
+import { Modal, ModalClose, ModalContent, ModalTitle, ModalTrigger } from '@/components/emcn'
+import { GithubIcon, GoogleIcon } from '@/components/icons'
+import { client } from '@/lib/auth/auth-client'
+import { captureClientEvent } from '@/lib/posthog/client'
+import type { PostHogEventMap } from '@/lib/posthog/events'
+import { getBrandConfig } from '@/ee/whitelabeling'
+
+type AuthView = 'login' | 'signup'
+
+interface AuthModalProps {
+ children: React.ReactNode
+ defaultView?: AuthView
+ source: PostHogEventMap['auth_modal_opened']['source']
+}
+
+interface ProviderStatus {
+ githubAvailable: boolean
+ googleAvailable: boolean
+ isProduction: boolean
+}
+
+let fetchPromise: Promise | null = null
+
+function fetchProviderStatus(): Promise {
+ if (fetchPromise) return fetchPromise
+ fetchPromise = fetch('/api/auth/providers')
+ .then((r) => r.json())
+ .then((data: ProviderStatus) => data)
+ .catch(() => {
+ fetchPromise = null
+ return { githubAvailable: false, googleAvailable: false, isProduction: false }
+ })
+ return fetchPromise
+}
+
+export function AuthModal({ children, defaultView = 'login', source }: AuthModalProps) {
+ const router = useRouter()
+ const [open, setOpen] = useState(false)
+ const [view, setView] = useState(defaultView)
+ const [providerStatus, setProviderStatus] = useState(null)
+ const [socialLoading, setSocialLoading] = useState<'github' | 'google' | null>(null)
+ const brand = getBrandConfig()
+
+ useEffect(() => {
+ fetchProviderStatus().then(setProviderStatus)
+ }, [])
+
+ const hasSocial = providerStatus?.githubAvailable || providerStatus?.googleAvailable
+
+ const handleOpenChange = useCallback(
+ (nextOpen: boolean) => {
+ if (nextOpen && !hasSocial) {
+ router.push(defaultView === 'login' ? '/login' : '/signup')
+ return
+ }
+ setOpen(nextOpen)
+ if (nextOpen) {
+ setView(defaultView)
+ captureClientEvent('auth_modal_opened', { view: defaultView, source })
+ }
+ },
+ [defaultView, hasSocial, router, source]
+ )
+
+ const handleSocialLogin = useCallback(async (provider: 'github' | 'google') => {
+ setSocialLoading(provider)
+ try {
+ await client.signIn.social({ provider, callbackURL: '/workspace' })
+ } catch {
+ // Redirect handles success; errors are typically cancelled flows
+ } finally {
+ setSocialLoading(null)
+ }
+ }, [])
+
+ const handleEmailContinue = useCallback(() => {
+ setOpen(false)
+ router.push(view === 'login' ? '/login' : '/signup')
+ }, [router, view])
+
+ return (
+
+ {children}
+
+
+ {view === 'login' ? 'Log in' : 'Create account'}
+
+
+
+
+
+ Close
+
+
+ {!providerStatus ? (
+
+
+
+ ) : (
+ <>
+
+
+
+
+ Start building.
+
+
+ {view === 'login' ? 'Log in to continue' : 'Create free account'}
+
+
+ {view === 'login' ? "Don't have an account? " : 'Already have an account? '}
+
+
+
+ >
+ )}
+
+
+
+ )
+}
diff --git a/apps/sim/app/(landing)/components/collaboration/collaboration.tsx b/apps/sim/app/(landing)/components/collaboration/collaboration.tsx
index 5db2aad66c0..13200885ba7 100644
--- a/apps/sim/app/(landing)/components/collaboration/collaboration.tsx
+++ b/apps/sim/app/(landing)/components/collaboration/collaboration.tsx
@@ -4,6 +4,8 @@ import { useCallback, useEffect, useRef, useState } from 'react'
import Image from 'next/image'
import Link from 'next/link'
import { Badge } from '@/components/emcn'
+import { AuthModal } from '@/app/(landing)/components/auth-modal/auth-modal'
+import { trackLandingCta } from '@/app/(landing)/landing-analytics'
interface DotGridProps {
className?: string
@@ -250,10 +252,10 @@ export default function Collaboration() {
- Sim supports real-time multiplayer collaboration. Teams can build AI agents together
- in a shared workspace with live cursors, presence indicators, and concurrent editing.
- Features include role-based access control, shared workflows, and team workspace
- management.
+ Sim supports real-time multiplayer collaboration. Teams build AI agents together in a
+ shared workspace with live cursors, presence indicators, and concurrent editing.
+ Features include role-based access control, shared agents and workflows, and team
+ workspace management.
@@ -261,45 +263,54 @@ export default function Collaboration() {
in real-time inside your workspace.
))}
- Design powerful workflows, connect your data, and monitor every run — all in one
- platform.
+ Build agents, connect your data, and monitor every run — all in one workspace.
@@ -265,12 +265,21 @@ export default function Features() {
{FEATURE_TABS[activeTab].description}
- Sim is an open-source AI agent platform. Sim lets teams build AI agents and run an agentic
- workforce by connecting 1,000+ integrations and LLMs — including OpenAI, Anthropic Claude,
- Google Gemini, Mistral, and xAI Grok — to deploy and orchestrate agentic workflows. Users
- create agents, workflows, knowledge bases, tables, and docs. Sim is trusted by over 100,000
- builders at startups and Fortune 500 companies. Sim is SOC2 compliant.
+ Sim is the open-source AI workspace where teams build, deploy, and manage AI agents. Connect
+ 1,000+ integrations and every major LLM — including OpenAI, Anthropic Claude, Google Gemini,
+ Mistral, and xAI Grok — to create agents that automate real work. Build agents visually with
+ the workflow builder, conversationally through Mothership, or programmatically with the API.
+ Trusted by over 100,000 builders at startups and Fortune 500 companies. SOC2 compliant.
@@ -65,16 +65,22 @@ export default function Hero() {
Get a demo
-
- trackLandingCta({ label: 'Get started', section: 'hero', destination: '/signup' })
- }
- >
- Get started
-
+
+
+
diff --git a/apps/sim/app/(landing)/components/landing-preview/components/landing-preview-panel/landing-preview-panel.tsx b/apps/sim/app/(landing)/components/landing-preview/components/landing-preview-panel/landing-preview-panel.tsx
index ef5929963e7..6e7ba497aeb 100644
--- a/apps/sim/app/(landing)/components/landing-preview/components/landing-preview-panel/landing-preview-panel.tsx
+++ b/apps/sim/app/(landing)/components/landing-preview/components/landing-preview-panel/landing-preview-panel.tsx
@@ -3,13 +3,13 @@
import { memo, useCallback, useEffect, useRef, useState } from 'react'
import { AnimatePresence, motion } from 'framer-motion'
import { ArrowUp } from 'lucide-react'
-import Link from 'next/link'
import { useRouter } from 'next/navigation'
import { createPortal } from 'react-dom'
import { Blimp, BubbleChatPreview, ChevronDown, MoreHorizontal, Play } from '@/components/emcn'
import { AgentIcon, HubspotIcon, OpenAIIcon, SalesforceIcon } from '@/components/icons'
import { LandingPromptStorage } from '@/lib/core/utils/browser-storage'
import { captureClientEvent } from '@/lib/posthog/client'
+import { AuthModal } from '@/app/(landing)/components/auth-modal/auth-modal'
import {
EASE_OUT,
type EditorPromptData,
@@ -19,6 +19,7 @@ import {
TYPE_INTERVAL_MS,
TYPE_START_BUFFER_MS,
} from '@/app/(landing)/components/landing-preview/components/landing-preview-workflow/workflow-data'
+import { trackLandingCta } from '@/app/(landing)/landing-analytics'
type PanelTab = 'copilot' | 'editor'
@@ -44,6 +45,11 @@ export function useLandingSubmit() {
const trimmed = text.trim()
if (!trimmed) return
LandingPromptStorage.store(trimmed)
+ trackLandingCta({
+ label: 'Prompt submit',
+ section: 'landing_preview',
+ destination: '/signup',
+ })
router.push('/signup')
},
[router]
@@ -175,20 +181,29 @@ export const LandingPreviewPanel = memo(function LandingPreviewPanel({
- setCursorPos({ x: e.clientX, y: e.clientY })}
- onMouseLeave={() => setCursorPos(null)}
- >
-
@@ -335,32 +346,40 @@ export default function Navbar({ logoOnly = false, blogPosts = [] }: NavbarProps
) : (
<>
- {
- trackLandingCta({ label: 'Log in', section: 'navbar', destination: '/login' })
- setMobileMenuOpen(false)
- }}
- aria-label='Log in'
- >
- Log in
-
- {
- trackLandingCta({
- label: 'Get started',
- section: 'navbar',
- destination: '/signup',
- })
- setMobileMenuOpen(false)
- }}
- aria-label='Get started with Sim'
- >
- Get started
-
+
+
+
+
+
+
>
)}
diff --git a/apps/sim/app/(landing)/components/pricing/pricing.tsx b/apps/sim/app/(landing)/components/pricing/pricing.tsx
index d4d0789467c..dac481c5908 100644
--- a/apps/sim/app/(landing)/components/pricing/pricing.tsx
+++ b/apps/sim/app/(landing)/components/pricing/pricing.tsx
@@ -1,7 +1,7 @@
'use client'
-import Link from 'next/link'
import { Badge } from '@/components/emcn'
+import { AuthModal } from '@/app/(landing)/components/auth-modal/auth-modal'
import { DemoRequestModal } from '@/app/(landing)/components/demo-request/demo-request-modal'
import { trackLandingCta } from '@/app/(landing)/landing-analytics'
@@ -37,7 +37,7 @@ const PRICING_TIERS: PricingTier[] = [
{
id: 'pro',
name: 'Pro',
- description: 'For professionals building production workflows',
+ description: 'For professionals deploying AI agents',
price: '$25',
billingPeriod: 'per month',
color: '#00F701',
@@ -55,7 +55,7 @@ const PRICING_TIERS: PricingTier[] = [
{
id: 'max',
name: 'Max',
- description: 'For power users and teams building at scale',
+ description: 'For teams building AI agents at scale',
price: '$100',
billingPeriod: 'per month',
color: '#FA4EDF',
@@ -163,33 +163,37 @@ function PricingCard({ tier }: PricingCardProps) {
) : isPro ? (
-
- trackLandingCta({
- label: tier.cta.label,
- section: 'pricing',
- destination: tier.cta.href || '/signup',
- })
- }
- >
- {tier.cta.label}
-
+
+
+
) : (
-
- trackLandingCta({
- label: tier.cta.label,
- section: 'pricing',
- destination: tier.cta.href || '/signup',
- })
- }
- >
- {tier.cta.label}
-
+
+
+
)}
diff --git a/apps/sim/app/(landing)/components/structured-data.tsx b/apps/sim/app/(landing)/components/structured-data.tsx
index 1fc0122650a..b03c4fb45e9 100644
--- a/apps/sim/app/(landing)/components/structured-data.tsx
+++ b/apps/sim/app/(landing)/components/structured-data.tsx
@@ -27,7 +27,7 @@ export default function StructuredData() {
name: 'Sim',
alternateName: 'Sim Studio',
description:
- 'Sim is the open-source platform to build AI agents and run your agentic workforce. Connect 1,000+ integrations and LLMs to deploy and orchestrate agentic workflows.',
+ 'Sim is the open-source AI workspace where teams build, deploy, and manage AI agents. Connect 1,000+ integrations and every major LLM to create agents that automate real work.',
url: 'https://sim.ai',
logo: {
'@type': 'ImageObject',
@@ -55,9 +55,9 @@ export default function StructuredData() {
'@type': 'WebSite',
'@id': 'https://sim.ai/#website',
url: 'https://sim.ai',
- name: 'Sim — Build AI Agents & Run Your Agentic Workforce',
+ name: 'Sim — The AI Workspace | Build, Deploy & Manage AI Agents',
description:
- 'Sim is the open-source platform to build AI agents and run your agentic workforce. Connect 1,000+ integrations and LLMs to deploy and orchestrate agentic workflows. Join 100,000+ builders.',
+ 'Sim is the open-source AI workspace where teams build, deploy, and manage AI agents. Connect 1,000+ integrations and every major LLM. Join 100,000+ builders.',
publisher: { '@id': 'https://sim.ai/#organization' },
inLanguage: 'en-US',
},
@@ -65,13 +65,13 @@ export default function StructuredData() {
'@type': 'WebPage',
'@id': 'https://sim.ai/#webpage',
url: 'https://sim.ai',
- name: 'Sim — Build AI Agents & Run Your Agentic Workforce',
+ name: 'Sim — The AI Workspace | Build, Deploy & Manage AI Agents',
isPartOf: { '@id': 'https://sim.ai/#website' },
about: { '@id': 'https://sim.ai/#software' },
datePublished: '2024-01-01T00:00:00+00:00',
dateModified: new Date().toISOString(),
description:
- 'Sim is the open-source platform to build AI agents and run your agentic workforce. Connect 1,000+ integrations and LLMs to deploy and orchestrate agentic workflows. Create agents, workflows, knowledge bases, tables, and docs.',
+ 'Sim is the open-source AI workspace where teams build, deploy, and manage AI agents. Connect 1,000+ integrations and every major LLM to create agents that automate real work.',
breadcrumb: { '@id': 'https://sim.ai/#breadcrumb' },
inLanguage: 'en-US',
speakable: {
@@ -91,12 +91,14 @@ export default function StructuredData() {
'@type': 'WebApplication',
'@id': 'https://sim.ai/#software',
url: 'https://sim.ai',
- name: 'Sim — Build AI Agents & Run Your Agentic Workforce',
+ name: 'Sim — The AI Workspace',
description:
- 'Sim is the open-source platform to build AI agents and run your agentic workforce. Connect 1,000+ integrations and LLMs to deploy and orchestrate agentic workflows. Create agents, workflows, knowledge bases, tables, and docs. Trusted by over 100,000 builders. SOC2 compliant.',
- applicationCategory: 'DeveloperApplication',
+ 'Sim is the open-source AI workspace where teams build, deploy, and manage AI agents. Connect 1,000+ integrations and every major LLM to create agents that automate real work — visually, conversationally, or with code. Trusted by over 100,000 builders. SOC2 compliant.',
+ applicationCategory: 'BusinessApplication',
+ applicationSubCategory: 'AI Workspace',
operatingSystem: 'Web',
browserRequirements: 'Requires a modern browser with JavaScript enabled',
+ installUrl: 'https://sim.ai/signup',
offers: [
{
'@type': 'Offer',
@@ -135,8 +137,9 @@ export default function StructuredData() {
},
],
featureList: [
- 'AI agent creation',
- 'Agentic workflow orchestration',
+ 'AI workspace for teams',
+ 'Mothership — natural language agent creation',
+ 'Visual workflow builder',
'1,000+ integrations',
'LLM orchestration (OpenAI, Anthropic, Google, xAI, Mistral, Perplexity)',
'Knowledge base creation',
@@ -176,19 +179,27 @@ export default function StructuredData() {
codeRepository: 'https://github.com/simstudioai/sim',
programmingLanguage: ['TypeScript', 'Python'],
runtimePlatform: 'Node.js',
- license: 'https://opensource.org/licenses/AGPL-3.0',
+ license: 'https://opensource.org/licenses/Apache-2.0',
isPartOf: { '@id': 'https://sim.ai/#software' },
},
{
'@type': 'FAQPage',
'@id': 'https://sim.ai/#faq',
mainEntity: [
+ {
+ '@type': 'Question',
+ name: 'What is the best AI agent builder?',
+ acceptedAnswer: {
+ '@type': 'Answer',
+ text: 'Sim is the open-source AI workspace trusted by over 100,000 builders for creating, deploying, and managing AI agents. Build agents visually with the workflow builder, conversationally through Mothership, or programmatically with the API. Sim connects to 1,000+ integrations and all major LLMs (OpenAI, Anthropic, Google, xAI, Mistral), and includes knowledge bases, tables, real-time collaboration, and enterprise governance. Free tier available. SOC2 compliant. Self-hostable.',
+ },
+ },
{
'@type': 'Question',
name: 'What is Sim?',
acceptedAnswer: {
'@type': 'Answer',
- text: 'Sim is the open-source platform to build AI agents and run your agentic workforce. Teams connect 1,000+ integrations and LLMs to deploy and orchestrate agentic workflows. Create agents, workflows, knowledge bases, tables, and docs. Trusted by over 100,000 builders. SOC2 compliant.',
+ text: 'Sim is the open-source AI workspace where teams build, deploy, and manage AI agents. Connect 1,000+ integrations and every major LLM to create agents that automate real work — visually, conversationally, or with code. The workspace includes Mothership for natural-language creation, a visual workflow builder, knowledge bases, tables, and full observability. Trusted by over 100,000 builders. SOC2 compliant.',
},
},
{
@@ -212,7 +223,7 @@ export default function StructuredData() {
name: 'Do I need coding skills to use Sim?',
acceptedAnswer: {
'@type': 'Answer',
- text: 'No coding skills are required. Sim provides a visual interface for building AI agents and agentic workflows. Developers can also use custom functions, the API, and the CLI/SDK for advanced use cases.',
+ text: 'No coding skills are required. Sim provides multiple ways to build agents: a visual workflow builder for drag-and-drop creation, Mothership for building in natural language, and templates for common use cases. Developers can also use custom functions, the API, and the CLI/SDK for advanced use cases.',
},
},
{
@@ -228,7 +239,7 @@ export default function StructuredData() {
name: 'Is Sim open source?',
acceptedAnswer: {
'@type': 'Answer',
- text: 'Yes. Sim is fully open source under the AGPL-3.0 license. The source code is available on GitHub at github.com/simstudioai/sim. You can self-host Sim or use the hosted version at sim.ai.',
+ text: 'Yes. Sim is fully open source under the Apache 2.0 license. The source code is available on GitHub at github.com/simstudioai/sim. You can self-host Sim or use the hosted version at sim.ai.',
},
},
{
diff --git a/apps/sim/app/(landing)/components/templates/templates.tsx b/apps/sim/app/(landing)/components/templates/templates.tsx
index ecb9ae7fd37..9c2e16c14b8 100644
--- a/apps/sim/app/(landing)/components/templates/templates.tsx
+++ b/apps/sim/app/(landing)/components/templates/templates.tsx
@@ -9,6 +9,7 @@ import { Badge, ChevronDown } from '@/components/emcn'
import { LandingWorkflowSeedStorage } from '@/lib/core/utils/browser-storage'
import { cn } from '@/lib/core/utils/cn'
import { TEMPLATE_WORKFLOWS } from '@/app/(landing)/components/templates/template-workflows'
+import { trackLandingCta } from '@/app/(landing)/landing-analytics'
const logger = createLogger('LandingTemplates')
@@ -297,6 +298,11 @@ export default function Templates() {
})
} finally {
setIsPreparingTemplate(false)
+ trackLandingCta({
+ label: activeWorkflow.name,
+ section: 'landing_preview',
+ destination: '/signup',
+ })
router.push('/signup')
}
}, [
diff --git a/apps/sim/app/(landing)/integrations/[slug]/components/template-card-button.tsx b/apps/sim/app/(landing)/integrations/[slug]/components/template-card-button.tsx
index 5fffa1121b6..4f2a91d7e73 100644
--- a/apps/sim/app/(landing)/integrations/[slug]/components/template-card-button.tsx
+++ b/apps/sim/app/(landing)/integrations/[slug]/components/template-card-button.tsx
@@ -3,6 +3,7 @@
import { useRouter } from 'next/navigation'
import { LandingPromptStorage } from '@/lib/core/utils/browser-storage'
import { cn } from '@/lib/core/utils/cn'
+import { trackLandingCta } from '@/app/(landing)/landing-analytics'
interface TemplateCardButtonProps {
prompt: string
@@ -15,6 +16,7 @@ export function TemplateCardButton({ prompt, className, children }: TemplateCard
function handleClick() {
LandingPromptStorage.store(prompt)
+ trackLandingCta({ label: 'Template card', section: 'integrations', destination: '/signup' })
router.push('/signup')
}
diff --git a/apps/sim/app/(landing)/integrations/[slug]/page.tsx b/apps/sim/app/(landing)/integrations/[slug]/page.tsx
index 35290f9e711..a0002e40736 100644
--- a/apps/sim/app/(landing)/integrations/[slug]/page.tsx
+++ b/apps/sim/app/(landing)/integrations/[slug]/page.tsx
@@ -3,6 +3,7 @@ import Image from 'next/image'
import Link from 'next/link'
import { notFound } from 'next/navigation'
import { getBaseUrl } from '@/lib/core/utils/urls'
+import { AuthModal } from '@/app/(landing)/components/auth-modal/auth-modal'
import { TEMPLATES } from '@/app/workspace/[workspaceId]/home/components/template-prompts/consts'
import { IntegrationIcon } from '../components/integration-icon'
import { blockTypeToIconMap } from '../data/icon-mapping'
@@ -85,18 +86,18 @@ function buildFAQs(integration: Integration): FAQItem[] {
const faqs: FAQItem[] = [
{
question: `What is Sim's ${name} integration?`,
- answer: `Sim's ${name} integration lets you build AI-powered workflows that automate tasks in ${name} without writing code. ${description} You can connect ${name} to hundreds of other services in the same workflow — from CRMs and spreadsheets to messaging tools and databases.`,
+ answer: `Sim's ${name} integration lets you build AI agents that automate tasks in ${name} without writing code. ${description} You can connect ${name} to hundreds of other services in the same agent — from CRMs and spreadsheets to messaging tools and databases.`,
},
{
question: `What can I automate with ${name} in Sim?`,
answer:
topOpNames.length > 0
? `With Sim you can: ${topOpNames.join('; ')}${operations.length > 5 ? `; and ${operations.length - 5} more tools` : ''}. Each action runs inside an AI agent block, so you can combine ${name} with LLM reasoning, conditional logic, and data from any other connected service.`
- : `Sim lets you automate ${name} workflows by connecting it to an AI agent that can read from it, write to it, and chain it together with other services — all driven by natural-language instructions instead of rigid rules.`,
+ : `Sim lets you automate ${name} by connecting it to an AI agent that can read from it, write to it, and chain it together with other services — all driven by natural-language instructions instead of rigid rules.`,
},
{
question: `How do I connect ${name} to Sim?`,
- answer: `Getting started takes under five minutes: (1) Create a free account at sim.ai. (2) Open a new workflow. (3) Drag a ${name} block onto the canvas. (4) ${authStep} (5) Choose the tool you want to use, wire it to the inputs you need, and click Run. Your automation is live.`,
+ answer: `Getting started takes under five minutes: (1) Create a free account at sim.ai. (2) Open your workspace and create an agent. (3) Drag a ${name} block onto the canvas. (4) ${authStep} (5) Choose the tool you want to use, wire it to the inputs you need, and click Run. Your agent is live.`,
},
{
question: `Can I use ${name} as a tool inside an AI agent in Sim?`,
@@ -106,19 +107,19 @@ function buildFAQs(integration: Integration): FAQItem[] {
? [
{
question: `How do I ${topOpNames[0].toLowerCase()} with ${name} in Sim?`,
- answer: `Add a ${name} block to your workflow and select "${topOpNames[0]}" as the tool. Fill in the required fields — you can reference outputs from earlier steps, such as text generated by an AI agent or data fetched from another integration. No code is required.`,
+ answer: `Add a ${name} block to your agent and select "${topOpNames[0]}" as the tool. Fill in the required fields — you can reference outputs from earlier steps, such as text generated by an AI agent or data fetched from another integration. No code is required.`,
},
]
: []),
...(triggers.length > 0
? [
{
- question: `How do I trigger a Sim workflow from ${name} automatically?`,
- answer: `Add a ${name} trigger block to your workflow and copy the generated webhook URL. Paste that URL into ${name}'s webhook settings and select the events you want to listen for (${triggers.map((t) => t.name).join(', ')}). From that point on, every matching event in ${name} instantly fires your workflow — no polling, no delay.`,
+ question: `How do I trigger a Sim agent from ${name} automatically?`,
+ answer: `Add a ${name} trigger block to your agent and copy the generated webhook URL. Paste that URL into ${name}'s webhook settings and select the events you want to listen for (${triggers.map((t) => t.name).join(', ')}). From that point on, every matching event in ${name} instantly runs your agent — no polling, no delay.`,
},
{
- question: `What data does Sim receive when a ${name} event triggers a workflow?`,
- answer: `When ${name} fires a webhook, Sim receives the full event payload that ${name} sends — typically the record or object that changed, along with metadata like the event type and timestamp. Inside your workflow, every field from that payload is available as a variable you can pass to AI agents, conditions, or other integrations.`,
+ question: `What data does Sim receive when a ${name} event triggers an agent?`,
+ answer: `When ${name} fires a webhook, Sim receives the full event payload that ${name} sends — typically the record or object that changed, along with metadata like the event type and timestamp. Inside your agent, every field from that payload is available as a variable you can pass to AI blocks, conditions, or other integrations.`,
},
]
: []),
@@ -156,7 +157,7 @@ export async function generateMetadata({
.slice(0, 3)
.map((o) => o.name)
.join(', ')
- const metaDesc = `Automate ${name} with AI-powered workflows on Sim. ${description.slice(0, 100).trimEnd()}. Free to start.`
+ const metaDesc = `Automate ${name} with AI agents in Sim. ${description.slice(0, 100).trimEnd()}. Free to start.`
return {
title: `${name} Integration`,
@@ -166,15 +167,15 @@ export async function generateMetadata({
`${name} integration`,
`automate ${name}`,
`connect ${name}`,
- `${name} workflow`,
+ `${name} AI agent`,
`${name} AI automation`,
...(opSample ? [`${name} ${opSample}`] : []),
- 'workflow automation',
- 'no-code automation',
- 'AI agent workflow',
+ 'AI workspace integrations',
+ 'AI agent integrations',
+ 'AI agent builder',
],
openGraph: {
- title: `${name} Integration — AI Workflow Automation | Sim`,
+ title: `${name} Integration | Sim AI Workspace`,
description: `Connect ${name} to ${INTEGRATION_COUNT - 1}+ tools using AI agents. ${description.slice(0, 100).trimEnd()}.`,
url: `${baseUrl}/integrations/${slug}`,
type: 'website',
@@ -190,7 +191,7 @@ export async function generateMetadata({
twitter: {
card: 'summary_large_image',
title: `${name} Integration | Sim`,
- description: `Automate ${name} with AI-powered workflows. Connect to ${INTEGRATION_COUNT - 1}+ tools. Free to start.`,
+ description: `Automate ${name} with AI agents in Sim. Connect to ${INTEGRATION_COUNT - 1}+ tools. Free to start.`,
images: [{ url: `${baseUrl}/opengraph-image.png`, alt: `${name} Integration — Sim` }],
},
alternates: { canonical: `${baseUrl}/integrations/${slug}` },
@@ -249,7 +250,7 @@ export default async function IntegrationPage({ params }: { params: Promise<{ sl
'@context': 'https://schema.org',
'@type': 'HowTo',
name: `How to automate ${name} with Sim`,
- description: `Step-by-step guide to connecting ${name} to AI-powered workflows in Sim.`,
+ description: `Step-by-step guide to connecting ${name} to AI agents in Sim.`,
step: [
{
'@type': 'HowToStep',
@@ -261,13 +262,13 @@ export default async function IntegrationPage({ params }: { params: Promise<{ sl
'@type': 'HowToStep',
position: 2,
name: `Add a ${name} block`,
- text: `Open a workflow, drag a ${name} block onto the canvas, and authenticate with your ${name} credentials.`,
+ text: `Open your workspace, drag a ${name} block onto the canvas, and authenticate with your ${name} credentials.`,
},
{
'@type': 'HowToStep',
position: 3,
name: 'Configure and run',
- text: `Choose the operation you want, connect it to an AI agent, and run your workflow. Automate anything in ${name} without code.`,
+ text: `Choose the operation you want, connect it to an AI agent, and deploy. Automate anything in ${name} without code.`,
},
],
}
@@ -366,12 +367,14 @@ export default async function IntegrationPage({ params }: { params: Promise<{ sl
{/* CTAs */}
-
- Start building free
-
+
+
+
- Connect a {name} webhook to Sim and your workflow fires the instant an event happens
- — no polling, no delay.
+ Connect a {name} webhook to Sim and your agent runs the instant an event happens —
+ no polling, no delay.
- Ready-to-use workflows featuring {name}. Click any to build it instantly.
+ Ready-to-use templates featuring {name}. Click any to build it instantly.
- Build your first AI workflow with {name} in minutes. Connect to every tool your team
- uses. Free to start — no credit card required.
+ Build your first AI agent with {name} in minutes. Connect to every tool your team uses.
+ Free to start — no credit card required.
-
- Build for free
-
+
+
+
diff --git a/apps/sim/app/(landing)/integrations/page.tsx b/apps/sim/app/(landing)/integrations/page.tsx
index bdc67a537bd..60927489eeb 100644
--- a/apps/sim/app/(landing)/integrations/page.tsx
+++ b/apps/sim/app/(landing)/integrations/page.tsx
@@ -30,17 +30,17 @@ const featured = FEATURED_SLUGS.map((s) => bySlug.get(s)).filter(
export const metadata: Metadata = {
title: 'Integrations',
- description: `Connect ${INTEGRATION_COUNT}+ apps and services with Sim's AI workflow automation. Build intelligent pipelines with ${TOP_NAMES.join(', ')}, and more.`,
+ description: `Connect ${INTEGRATION_COUNT}+ apps and services in Sim's AI workspace. Build agents that automate real work with ${TOP_NAMES.join(', ')}, and more.`,
keywords: [
- 'workflow automation integrations',
- 'AI workflow automation',
- 'no-code automation',
+ 'AI workspace integrations',
+ 'AI agent integrations',
+ 'AI agent builder integrations',
...TOP_NAMES.flatMap((n) => [`${n} integration`, `${n} automation`]),
...allIntegrations.slice(0, 20).map((i) => `${i.name} automation`),
],
openGraph: {
- title: 'Integrations for AI Workflow Automation | Sim',
- description: `Connect ${INTEGRATION_COUNT}+ apps with Sim. Build AI-powered pipelines that link ${TOP_NAMES.join(', ')}, and every tool your team uses.`,
+ title: 'Integrations | Sim AI Workspace',
+ description: `Connect ${INTEGRATION_COUNT}+ apps in Sim's AI workspace. Build agents that link ${TOP_NAMES.join(', ')}, and every tool your team uses.`,
url: `${baseUrl}/integrations`,
type: 'website',
images: [
@@ -55,7 +55,7 @@ export const metadata: Metadata = {
twitter: {
card: 'summary_large_image',
title: 'Integrations | Sim',
- description: `Connect ${INTEGRATION_COUNT}+ apps with Sim's AI workflow automation.`,
+ description: `Connect ${INTEGRATION_COUNT}+ apps in Sim's AI workspace.`,
images: [
{ url: `${baseUrl}/opengraph-image.png`, alt: 'Sim Integrations for AI Workflow Automation' },
],
@@ -82,7 +82,7 @@ export default function IntegrationsPage() {
'@context': 'https://schema.org',
'@type': 'ItemList',
name: 'Sim AI Workflow Integrations',
- description: `Complete list of ${INTEGRATION_COUNT}+ integrations available in Sim for building AI-powered workflow automation.`,
+ description: `Complete list of ${INTEGRATION_COUNT}+ integrations available in Sim's AI workspace for building and deploying AI agents.`,
url: `${baseUrl}/integrations`,
numberOfItems: INTEGRATION_COUNT,
itemListElement: allIntegrations.map((integration, index) => ({
@@ -129,7 +129,7 @@ export default function IntegrationsPage() {
Integrations
- Connect every tool your team uses. Build AI-powered workflows that automate tasks across{' '}
+ Connect every tool your team uses. Build agents that automate real work across{' '}
{INTEGRATION_COUNT} apps and services.
diff --git a/apps/sim/app/(landing)/landing-analytics.tsx b/apps/sim/app/(landing)/landing-analytics.tsx
index d79e5faaa52..5a747b1306e 100644
--- a/apps/sim/app/(landing)/landing-analytics.tsx
+++ b/apps/sim/app/(landing)/landing-analytics.tsx
@@ -1,16 +1,13 @@
'use client'
import { useEffect } from 'react'
-import { usePostHog } from 'posthog-js/react'
-import { captureClientEvent, captureEvent } from '@/lib/posthog/client'
+import { captureClientEvent } from '@/lib/posthog/client'
import type { PostHogEventMap } from '@/lib/posthog/events'
export function LandingAnalytics() {
- const posthog = usePostHog()
-
useEffect(() => {
- captureEvent(posthog, 'landing_page_viewed', {})
- }, [posthog])
+ captureClientEvent('landing_page_viewed', {})
+ }, [])
return null
}
diff --git a/apps/sim/app/(landing)/landing.tsx b/apps/sim/app/(landing)/landing.tsx
index fd4b8eafc77..36c4fc2a5b9 100644
--- a/apps/sim/app/(landing)/landing.tsx
+++ b/apps/sim/app/(landing)/landing.tsx
@@ -53,10 +53,13 @@ export default async function Landing() {
-
+
diff --git a/apps/sim/app/(landing)/models/page.tsx b/apps/sim/app/(landing)/models/page.tsx
index f98b9f73ceb..dd73b1ea1c2 100644
--- a/apps/sim/app/(landing)/models/page.tsx
+++ b/apps/sim/app/(landing)/models/page.tsx
@@ -42,17 +42,18 @@ const faqItems = [
'Tool use — also called function calling — lets an agent invoke external APIs, query databases, run code, or take any action you define. In Sim, all first-party models from OpenAI, Anthropic, Google, Mistral, Groq, Cerebras, and xAI support tool use. Look for the Tool Use capability tag on any model card in this directory to confirm support.',
},
{
- question: 'How do I add a model to a Sim agent workflow?',
+ question: 'How do I add a model to a Sim agent?',
answer:
- 'Open any workflow in Sim, add an Agent block, and select your provider and model from the model picker inside that block. Every model listed in this directory is available in the Agent block. Swapping models takes one click and does not affect the rest of your workflow, making it straightforward to test different models on the same task without rebuilding anything.',
+ 'Open Sim, add an Agent block, and select your provider and model from the model picker inside that block. Every model listed in this directory is available in the Agent block. Swapping models takes one click and does not affect the rest of your agent, making it straightforward to test different models on the same task without rebuilding anything.',
},
]
export const metadata: Metadata = {
title: 'AI Models Directory',
- description: `Browse ${TOTAL_MODELS}+ AI models across ${TOTAL_MODEL_PROVIDERS} providers. Compare pricing, context windows, and capabilities for OpenAI, Anthropic, Google, xAI, Mistral, Bedrock, Groq, and more.`,
+ description: `Browse and compare ${TOTAL_MODELS}+ AI models across ${TOTAL_MODEL_PROVIDERS} providers in Sim's AI workspace. Compare pricing, context windows, and capabilities — then use any model directly in your agents.`,
keywords: [
'AI models directory',
+ 'AI model comparison',
'LLM model list',
'model pricing',
'context window comparison',
@@ -185,7 +186,7 @@ export default function ModelsPage() {
id='models-heading'
className='text-balance text-[28px] text-white leading-[100%] tracking-[-0.02em] lg:text-[40px]'
>
- Models
+ Compare AI Models
Browse {TOTAL_MODELS} AI models across {TOTAL_MODEL_PROVIDERS} providers. Compare
diff --git a/apps/sim/app/(landing)/models/utils.ts b/apps/sim/app/(landing)/models/utils.ts
index b0ff3260596..bb9a87e4ad3 100644
--- a/apps/sim/app/(landing)/models/utils.ts
+++ b/apps/sim/app/(landing)/models/utils.ts
@@ -695,7 +695,7 @@ export function buildModelFaqs(provider: CatalogProvider, model: CatalogModel):
{
question: `What is the context window for ${model.displayName}?`,
answer: model.contextWindow
- ? `${model.displayName} supports a context window of ${formatTokenCount(model.contextWindow)} tokens in Sim. In an agent workflow, this determines how much conversation history, tool outputs, and retrieved documents the model can hold in a single call.`
+ ? `${model.displayName} supports a context window of ${formatTokenCount(model.contextWindow)} tokens in Sim. In an agent, this determines how much conversation history, tool outputs, and retrieved documents the model can hold in a single call.`
: `A public context window value is not currently tracked for ${model.displayName}.`,
},
{
diff --git a/apps/sim/app/(landing)/partners/page.tsx b/apps/sim/app/(landing)/partners/page.tsx
index 851d9486556..ccdda2603ee 100644
--- a/apps/sim/app/(landing)/partners/page.tsx
+++ b/apps/sim/app/(landing)/partners/page.tsx
@@ -8,7 +8,7 @@ import Navbar from '@/app/(landing)/components/navbar/navbar'
export const metadata: Metadata = {
title: 'Partner Program',
description:
- 'Join the Sim partner program. Build, deploy, and sell AI workflow solutions. Earn your certification through Sim Academy.',
+ "Join the Sim partner program. Build, deploy, and sell AI agent solutions powered by Sim's AI workspace. Earn your certification through Sim Academy.",
metadataBase: new URL('https://sim.ai'),
openGraph: {
title: 'Partner Program | Sim',
@@ -22,7 +22,7 @@ const PARTNER_TIERS = [
name: 'Certified Partner',
badge: 'Entry',
color: '#3A3A3A',
- requirements: ['Complete Sim Academy certification', 'Deploy at least 1 live workflow'],
+ requirements: ['Complete Sim Academy certification', 'Deploy at least 1 live agent'],
perks: [
'Official partner badge',
'Listed in partner directory',
@@ -69,13 +69,13 @@ const HOW_IT_WORKS = [
step: '01',
title: 'Sign up & complete Sim Academy',
description:
- 'Create an account and work through the Sim Academy certification program. Learn to build, integrate, and deploy AI workflows through hands-on canvas exercises.',
+ 'Create an account and work through the Sim Academy certification program. Learn to build, integrate, and deploy AI agents through hands-on exercises.',
},
{
step: '02',
title: 'Build & deploy real solutions',
description:
- 'Put your skills to work. Build workflow automations for clients, integrate Sim into existing products, or create your own Sim-powered applications.',
+ 'Put your skills to work. Build AI agents for clients, integrate Sim into existing products, or create your own Sim-powered applications.',
},
{
step: '03',
@@ -119,7 +119,7 @@ const BENEFITS = [
icon: '📣',
title: 'Community',
description:
- 'Join a growing community of Sim builders. Share workflows, collaborate on solutions, and shape the product roadmap.',
+ 'Join a growing community of Sim builders. Share agents, collaborate on solutions, and shape the product roadmap.',
},
]
@@ -144,11 +144,11 @@ export default async function PartnersPage() {
Build the future
- of AI automation
+ of AI agents
Become a certified Sim partner. Complete Sim Academy, deploy real solutions, and earn
- recognition in the growing ecosystem of AI workflow builders.
+ recognition in the growing ecosystem of AI agent builders.
{/* TODO: Uncomment when academy is public */}
diff --git a/apps/sim/app/api/auth/providers/route.ts b/apps/sim/app/api/auth/providers/route.ts
new file mode 100644
index 00000000000..6e188919715
--- /dev/null
+++ b/apps/sim/app/api/auth/providers/route.ts
@@ -0,0 +1,9 @@
+import { NextResponse } from 'next/server'
+import { getOAuthProviderStatus } from '@/app/(auth)/components/oauth-provider-checker'
+
+export const dynamic = 'force-dynamic'
+
+export async function GET() {
+ const status = await getOAuthProviderStatus()
+ return NextResponse.json(status)
+}
diff --git a/apps/sim/app/llms-full.txt/route.ts b/apps/sim/app/llms-full.txt/route.ts
index 915a2354143..1f858bbe6fb 100644
--- a/apps/sim/app/llms-full.txt/route.ts
+++ b/apps/sim/app/llms-full.txt/route.ts
@@ -3,18 +3,18 @@ import { getBaseUrl } from '@/lib/core/utils/urls'
export async function GET() {
const baseUrl = getBaseUrl()
- const llmsFullContent = `# Sim — Build AI Agents & Run Your Agentic Workforce
+ const llmsFullContent = `# Sim — The AI Workspace | Build, Deploy & Manage AI Agents
-> Sim is the open-source platform to build AI agents and run your agentic workforce. Connect 1,000+ integrations and LLMs to deploy and orchestrate agentic workflows.
+> Sim is the open-source AI workspace where teams build, deploy, and manage AI agents. Connect 1,000+ integrations and every major LLM to create agents that automate real work.
## Overview
-Sim lets teams create agents, workflows, knowledge bases, tables, and docs. Over 100,000 builders use Sim — from startups to Fortune 500 companies. Teams connect their tools and data, build agents that execute real workflows across systems, and manage them with full observability. SOC2 compliant.
+Sim is the AI workspace where teams create agents visually with the workflow builder, conversationally through Mothership, or programmatically with the API. Over 100,000 builders use Sim — from startups to Fortune 500 companies. Teams connect their tools and data, build agents that automate real work across systems, and manage them with full observability. SOC2 compliant.
## Product Details
- **Product Name**: Sim
-- **Category**: AI Agent Platform / Agentic Workflow Orchestration
+- **Category**: AI Workspace / AI Agent Builder
- **Deployment**: Cloud (SaaS) and Self-hosted options
- **Pricing**: Free tier, Pro ($25/month, 6K credits), Max ($100/month, 25K credits), Team plans available, Enterprise (custom)
- **Compliance**: SOC2 Type II
diff --git a/apps/sim/app/llms.txt/route.ts b/apps/sim/app/llms.txt/route.ts
index 89fbc5a67f4..0e6f7c31873 100644
--- a/apps/sim/app/llms.txt/route.ts
+++ b/apps/sim/app/llms.txt/route.ts
@@ -5,9 +5,9 @@ export function GET() {
const content = `# Sim
-> Sim is the open-source platform to build AI agents and run your agentic workforce. Connect integrations and LLMs to deploy and orchestrate agentic workflows.
+> Sim is the open-source AI workspace where teams build, deploy, and manage AI agents. Connect 1,000+ integrations and every major LLM to create agents that automate real work.
-Sim lets teams create agents, workflows, knowledge bases, tables, and docs. It supports both product discovery pages and deeper technical documentation.
+Sim lets teams create agents visually with the workflow builder, conversationally through Mothership, or programmatically with the API. The workspace includes knowledge bases, tables, files, and full observability.
## Preferred URLs
@@ -25,8 +25,8 @@ Sim lets teams create agents, workflows, knowledge bases, tables, and docs. It s
## Key Concepts
-- **Workspace**: Container for workflows, data sources, and executions
-- **Workflow**: Directed graph of blocks defining an agentic process
+- **Workspace**: The AI workspace — container for agents, workflows, data sources, and executions
+- **Workflow**: Visual builder — directed graph of blocks defining agent logic
- **Block**: Individual step such as an LLM call, tool call, HTTP request, or code execution
- **Trigger**: Event or schedule that initiates workflow execution
- **Execution**: A single run of a workflow with logs and outputs
@@ -34,8 +34,8 @@ Sim lets teams create agents, workflows, knowledge bases, tables, and docs. It s
## Capabilities
+- AI workspace for teams
- AI agent creation and deployment
-- Agentic workflow orchestration
- Integrations across business tools, databases, and communication platforms
- Multi-model LLM orchestration
- Knowledge bases and retrieval-augmented generation
diff --git a/apps/sim/app/manifest.ts b/apps/sim/app/manifest.ts
index 77c92d0c394..d66d2db1a17 100644
--- a/apps/sim/app/manifest.ts
+++ b/apps/sim/app/manifest.ts
@@ -5,10 +5,13 @@ export default function manifest(): MetadataRoute.Manifest {
const brand = getBrandConfig()
return {
- name: brand.name === 'Sim' ? 'Sim — Build AI Agents & Run Your Agentic Workforce' : brand.name,
+ name:
+ brand.name === 'Sim'
+ ? 'Sim — The AI Workspace | Build, Deploy & Manage AI Agents'
+ : brand.name,
short_name: brand.name,
description:
- 'Sim is the open-source platform to build AI agents and run your agentic workforce. Connect 1,000+ integrations and LLMs to orchestrate agentic workflows.',
+ 'Sim is the open-source AI workspace where teams build, deploy, and manage AI agents. Connect 1,000+ integrations and every major LLM.',
start_url: '/',
scope: '/',
display: 'standalone',
diff --git a/apps/sim/app/page.tsx b/apps/sim/app/page.tsx
index c5e693a4cac..f746d2b3da6 100644
--- a/apps/sim/app/page.tsx
+++ b/apps/sim/app/page.tsx
@@ -9,12 +9,12 @@ const baseUrl = getBaseUrl()
export const metadata: Metadata = {
metadataBase: new URL(baseUrl),
title: {
- absolute: 'Sim — Build AI Agents & Run Your Agentic Workforce',
+ absolute: 'Sim — The AI Workspace | Build, Deploy & Manage AI Agents',
},
description:
- 'Sim is the open-source platform to build AI agents and run your agentic workforce. Connect 1,000+ integrations and LLMs to orchestrate agentic workflows.',
+ 'Sim is the open-source AI workspace where teams build, deploy, and manage AI agents. Connect 1,000+ integrations and every major LLM to create agents that automate real work — visually, conversationally, or with code.',
keywords:
- 'AI agents, agentic workforce, open-source AI agent platform, agentic workflows, LLM orchestration, AI automation, knowledge base, workflow builder, AI integrations, SOC2 compliant, enterprise AI',
+ 'AI workspace, AI agent builder, AI agent workflow builder, build AI agents, visual workflow builder, open-source AI agent platform, AI agents, agentic workflows, LLM orchestration, AI automation, knowledge base, workflow builder, AI integrations, SOC2 compliant, enterprise AI',
authors: [{ name: 'Sim' }],
creator: 'Sim',
publisher: 'Sim',
@@ -24,9 +24,9 @@ export const metadata: Metadata = {
telephone: false,
},
openGraph: {
- title: 'Sim — Build AI Agents & Run Your Agentic Workforce',
+ title: 'Sim — The AI Workspace | Build, Deploy & Manage AI Agents',
description:
- 'Sim is the open-source platform to build AI agents and run your agentic workforce. Connect 1,000+ integrations and LLMs to orchestrate agentic workflows. Create agents, workflows, knowledge bases, tables, and docs. Join over 100,000 builders.',
+ 'Sim is the open-source AI workspace where teams build, deploy, and manage AI agents. Connect 1,000+ integrations and every major LLM to create agents that automate real work — visually, conversationally, or with code.',
type: 'website',
url: baseUrl,
siteName: 'Sim',
@@ -36,7 +36,7 @@ export const metadata: Metadata = {
url: '/logo/426-240/primary/small.png',
width: 2130,
height: 1200,
- alt: 'Sim — Build AI Agents & Run Your Agentic Workforce',
+ alt: 'Sim — The AI Workspace for Teams',
type: 'image/png',
},
],
@@ -45,12 +45,12 @@ export const metadata: Metadata = {
card: 'summary_large_image',
site: '@simdotai',
creator: '@simdotai',
- title: 'Sim — Build AI Agents & Run Your Agentic Workforce',
+ title: 'Sim — The AI Workspace | Build, Deploy & Manage AI Agents',
description:
- 'Sim is the open-source platform to build AI agents and run your agentic workforce. Connect 1,000+ integrations and LLMs to orchestrate agentic workflows.',
+ 'Sim is the open-source AI workspace where teams build, deploy, and manage AI agents. Connect 1,000+ integrations and every major LLM to create agents that automate real work.',
images: {
url: '/logo/426-240/primary/small.png',
- alt: 'Sim — Build AI Agents & Run Your Agentic Workforce',
+ alt: 'Sim — The AI Workspace for Teams',
},
},
alternates: {
@@ -78,9 +78,9 @@ export const metadata: Metadata = {
referrer: 'origin-when-cross-origin',
other: {
'llm:content-type':
- 'AI agent platform, agentic workforce, agentic workflows, LLM orchestration',
+ 'AI workspace, AI agent builder, AI agent platform, agentic workflows, LLM orchestration',
'llm:use-cases':
- 'AI agents, agentic workforce, agentic workflows, knowledge bases, tables, document creation, email automation, Slack bots, data analysis, customer support, content generation',
+ 'build AI agents, AI workspace, visual workflow builder, natural language agent creation, knowledge bases, tables, document creation, email automation, Slack bots, data analysis, customer support, content generation',
'llm:integrations':
'OpenAI, Anthropic, Google AI, Mistral, xAI, Perplexity, Slack, Gmail, Discord, Notion, Airtable, Supabase',
'llm:pricing':
diff --git a/apps/sim/app/robots.ts b/apps/sim/app/robots.ts
index 710acc532c7..0a1a8929a33 100644
--- a/apps/sim/app/robots.ts
+++ b/apps/sim/app/robots.ts
@@ -119,6 +119,16 @@ export default function robots(): MetadataRoute.Robots {
allow: '/',
disallow: disallowedPaths,
},
+ {
+ userAgent: 'Grok-web-crawl',
+ allow: '/',
+ disallow: disallowedPaths,
+ },
+ {
+ userAgent: 'DeepSeek-AI',
+ allow: '/',
+ disallow: disallowedPaths,
+ },
],
sitemap: `${baseUrl}/sitemap.xml`,
host: baseUrl,
diff --git a/apps/sim/app/sitemap.ts b/apps/sim/app/sitemap.ts
index 0928460c001..a043b2d25f9 100644
--- a/apps/sim/app/sitemap.ts
+++ b/apps/sim/app/sitemap.ts
@@ -11,19 +11,27 @@ export default async function sitemap(): Promise {
const integrationPages: MetadataRoute.Sitemap = integrations.map((integration) => ({
url: `${baseUrl}/integrations/${integration.slug}`,
lastModified: now,
+ changeFrequency: 'monthly',
+ priority: 0.6,
}))
const modelHubPages: MetadataRoute.Sitemap = [
{
url: `${baseUrl}/integrations`,
lastModified: now,
+ changeFrequency: 'weekly',
+ priority: 0.8,
},
{
url: `${baseUrl}/models`,
lastModified: now,
+ changeFrequency: 'weekly',
+ priority: 0.8,
},
{
url: `${baseUrl}/partners`,
lastModified: now,
+ changeFrequency: 'monthly',
+ priority: 0.5,
},
]
const providerPages: MetadataRoute.Sitemap = MODEL_PROVIDERS_WITH_CATALOGS.map((provider) => ({
@@ -31,16 +39,22 @@ export default async function sitemap(): Promise {
lastModified: new Date(
Math.max(...provider.models.map((model) => new Date(model.pricing.updatedAt).getTime()))
),
+ changeFrequency: 'weekly',
+ priority: 0.7,
}))
const modelPages: MetadataRoute.Sitemap = ALL_CATALOG_MODELS.map((model) => ({
url: `${baseUrl}${model.href}`,
lastModified: new Date(model.pricing.updatedAt),
+ changeFrequency: 'monthly',
+ priority: 0.6,
}))
const staticPages: MetadataRoute.Sitemap = [
{
url: baseUrl,
lastModified: now,
+ changeFrequency: 'daily',
+ priority: 1.0,
},
{
url: `${baseUrl}/blog`,
diff --git a/apps/sim/ee/whitelabeling/metadata.ts b/apps/sim/ee/whitelabeling/metadata.ts
index 16dce2da97d..cfaefd63f47 100644
--- a/apps/sim/ee/whitelabeling/metadata.ts
+++ b/apps/sim/ee/whitelabeling/metadata.ts
@@ -9,8 +9,8 @@ export function generateBrandedMetadata(override: Partial = {}): Metad
const brand = getBrandConfig()
const defaultTitle = brand.name
- const summaryFull = `Sim is the open-source platform to build AI agents and run your agentic workforce. Connect 1,000+ integrations and LLMs to deploy and orchestrate agentic workflows. Create agents, workflows, knowledge bases, tables, and docs. Trusted by over 100,000 builders — from startups to Fortune 500 companies. SOC2 compliant.`
- const summaryShort = `Sim is the open-source platform to build AI agents and run your agentic workforce. Connect 1,000+ integrations and LLMs to deploy and orchestrate agentic workflows.`
+ const summaryFull = `Sim is the open-source AI workspace where teams build, deploy, and manage AI agents. Connect 1,000+ integrations and every major LLM to create agents that automate real work — visually, conversationally, or with code. Trusted by over 100,000 builders — from startups to Fortune 500 companies. SOC2 compliant.`
+ const summaryShort = `Sim is the open-source AI workspace where teams build, deploy, and manage AI agents. Connect 1,000+ integrations and every major LLM to create agents that automate real work.`
return {
title: {
@@ -22,8 +22,12 @@ export function generateBrandedMetadata(override: Partial = {}): Metad
authors: [{ name: brand.name }],
generator: 'Next.js',
keywords: [
+ 'AI workspace',
+ 'AI agent builder',
+ 'AI agent workflow builder',
+ 'build AI agents',
+ 'visual workflow builder',
'AI agents',
- 'agentic workforce',
'AI agent platform',
'open-source AI agents',
'agentic workflows',
@@ -132,11 +136,11 @@ export function generateStructuredData() {
'@type': 'SoftwareApplication',
name: 'Sim',
description:
- 'Sim is the open-source platform to build AI agents and run your agentic workforce. Connect 1,000+ integrations and LLMs to deploy and orchestrate agentic workflows. Create agents, workflows, knowledge bases, tables, and docs. Trusted by over 100,000 builders. SOC2 compliant.',
+ 'Sim is the open-source AI workspace where teams build, deploy, and manage AI agents. Connect 1,000+ integrations and every major LLM to create agents that automate real work. Trusted by over 100,000 builders. SOC2 compliant.',
url: getBaseUrl(),
applicationCategory: 'BusinessApplication',
operatingSystem: 'Web',
- applicationSubCategory: 'AIAgentPlatform',
+ applicationSubCategory: 'AIWorkspace',
areaServed: 'Worldwide',
availableLanguage: ['en'],
offers: {
@@ -149,8 +153,9 @@ export function generateStructuredData() {
url: 'https://sim.ai',
},
featureList: [
- 'AI Agent Creation',
- 'Agentic Workflow Orchestration',
+ 'AI Workspace for Teams',
+ 'Mothership — Natural Language Agent Creation',
+ 'Visual Workflow Builder',
'1,000+ Integrations',
'LLM Orchestration',
'Knowledge Base Creation',
diff --git a/apps/sim/lib/blog/seo.ts b/apps/sim/lib/blog/seo.ts
index faee69c236b..d7e7693158c 100644
--- a/apps/sim/lib/blog/seo.ts
+++ b/apps/sim/lib/blog/seo.ts
@@ -151,7 +151,7 @@ export function buildCollectionPageJsonLd() {
'@type': 'CollectionPage',
name: 'Sim Blog',
url: 'https://sim.ai/blog',
- description: 'Announcements, insights, and guides for building AI agent workflows.',
+ description: 'Announcements, insights, and guides for building AI agents.',
publisher: {
'@type': 'Organization',
name: 'Sim',
diff --git a/apps/sim/lib/posthog/events.ts b/apps/sim/lib/posthog/events.ts
index faf9895bf62..3fd4ce9632a 100644
--- a/apps/sim/lib/posthog/events.ts
+++ b/apps/sim/lib/posthog/events.ts
@@ -16,8 +16,30 @@ export interface PostHogEventMap {
landing_cta_clicked: {
label: string
- section: 'hero' | 'navbar' | 'footer_cta' | 'pricing'
- destination: string
+ section:
+ | 'hero'
+ | 'navbar'
+ | 'footer_cta'
+ | 'pricing'
+ | 'features'
+ | 'collaboration'
+ | 'landing_preview'
+ | 'integrations'
+ destination: 'auth_modal' | 'demo_modal' | '/signup' | '/login' | '/workspace' | (string & {})
+ }
+
+ auth_modal_opened: {
+ view: 'login' | 'signup'
+ source:
+ | 'hero'
+ | 'navbar'
+ | 'mobile_navbar'
+ | 'footer_cta'
+ | 'pricing'
+ | 'features'
+ | 'collaboration'
+ | 'landing_preview'
+ | 'integrations'
}
landing_demo_request_submitted: {
@@ -26,6 +48,8 @@ export interface PostHogEventMap {
landing_prompt_submitted: Record
+ login_page_viewed: Record
+
signup_page_viewed: Record
signup_failed: {
diff --git a/apps/sim/public/llms.txt b/apps/sim/public/llms.txt
index af8e397fa84..ea33e518c7e 100644
--- a/apps/sim/public/llms.txt
+++ b/apps/sim/public/llms.txt
@@ -1,6 +1,6 @@
# Sim
-Sim is an open-source platform for building, testing, and deploying AI agent workflows visually. Create powerful AI agents, automation pipelines, and data processing workflows by connecting blocks on a canvas.
+Sim is the open-source AI workspace where teams build, deploy, and manage AI agents. Create agents visually with the workflow builder, conversationally through Mothership, or programmatically with the API — connected to 1,000+ integrations and every major LLM.
## Key Facts
@@ -8,31 +8,52 @@ Sim is an open-source platform for building, testing, and deploying AI agent wor
- GitHub: https://github.com/simstudioai/sim
- Documentation: https://docs.sim.ai
- License: Apache 2.0
-- Category: AI workflow automation, developer tools
+- Category: AI workspace, AI agent builder, developer tools
+- Trusted by: 100,000+ builders, from startups to Fortune 500
## What Sim Does
-- Visual workflow builder with drag-and-drop interface for AI agents
-- 80+ built-in integrations (OpenAI, Anthropic, Slack, Gmail, GitHub, and more)
-- Real-time team collaboration on workflows
-- Multiple deployment options: cloud-hosted or self-hosted
-- Custom integrations via MCP (Model Context Protocol)
-- API and SDK access (TypeScript, Python)
-- Workflow execution engine with logging and debugging
+Sim is a unified AI workspace with these core modules:
+
+- **Mothership** — AI command center. Build and manage everything in natural language.
+- **Workflows** — Visual builder. Connect blocks, models, and integrations into agent logic.
+- **Knowledge Base** — Upload docs, sync sources, build vector databases for agent memory.
+- **Tables** — Built-in database. Store, query, and wire structured data into agent runs.
+- **Files** — Upload, create, and share documents across your team and agents.
+- **Logs** — Full execution tracing. Inputs, outputs, cost, and duration for every run.
+
+## Capabilities
+
+- 1,000+ integrations (Slack, Gmail, GitHub, Notion, Jira, Salesforce, HubSpot, and more)
+- Every major LLM: OpenAI, Anthropic, Google Gemini, xAI Grok, Mistral, Groq, Cerebras
+- Real-time team collaboration with multiplayer editing
+- Enterprise governance: RBAC, staging/production environments, deployment versioning, audit logs
+- Self-hosting via Docker, bring-your-own-key (BYOK) for all model providers
+- API, CLI, and SDK access (TypeScript, Python)
+- MCP (Model Context Protocol) server creation and connection
+- SOC2 compliant
+
+## Key Pages
+
+- AI Models Directory: https://sim.ai/models
+- Integrations: https://sim.ai/integrations
+- Pricing: https://sim.ai/#pricing
+- Partners: https://sim.ai/partners
## Blog
-The Sim blog covers announcements, technical deep-dives, and guides for building AI agent workflows.
+The Sim blog covers announcements, technical deep-dives, and guides for building AI agents.
- Blog: https://sim.ai/blog
- RSS: https://sim.ai/blog/rss.xml
-## Documentation Sections
+## Documentation
- Getting Started: https://docs.sim.ai/getting-started
- Blocks: https://docs.sim.ai/blocks
- Tools & Integrations: https://docs.sim.ai/tools
- Webhooks: https://docs.sim.ai/webhooks
- MCP Protocol: https://docs.sim.ai/mcp
-- Deployment: https://docs.sim.ai/deployment
+- Self-Hosting: https://docs.sim.ai/self-hosting
+- API Reference: https://docs.sim.ai/api-reference/getting-started
- SDKs: https://docs.sim.ai/sdks
From cdcca53942b0c9957402c2063f2ea6067027d5cd Mon Sep 17 00:00:00 2001
From: Waleed Latif
Date: Sat, 11 Apr 2026 19:42:56 -0700
Subject: [PATCH 02/13] fix(landing): address PR review issues and convention
violations
- Fix auth modal race condition: show loading state instead of redirecting when provider status hasn't loaded yet
- Fix auth modal HTTP error caching: reject non-200 responses so they aren't permanently cached
- Replace with next/image in auth modal
- Use cn() instead of template literal class concatenation in hero, footer-cta
- Remove commented-out dead code in footer, landing, sitemap
- Remove unused arrow property from FooterItem interface
- Convert relative imports to absolute in integrations/[slug]/page
- Remove no-op sanitizedName variable in signup form
- Remove unnecessary async from llms-full.txt route
- Remove extraneous non-TSDoc comment in auth modal
Co-Authored-By: Claude Opus 4.6
---
apps/sim/app/(auth)/signup/signup-form.tsx | 4 +---
.../components/auth-modal/auth-modal.tsx | 22 ++++++++++++++-----
.../components/footer/footer-cta.tsx | 5 +++--
.../(landing)/components/footer/footer.tsx | 3 ---
.../app/(landing)/components/hero/hero.tsx | 6 ++---
.../(landing)/integrations/[slug]/page.tsx | 12 +++++-----
apps/sim/app/(landing)/landing.tsx | 4 +---
apps/sim/app/llms-full.txt/route.ts | 2 +-
apps/sim/app/sitemap.ts | 4 ----
9 files changed, 31 insertions(+), 31 deletions(-)
diff --git a/apps/sim/app/(auth)/signup/signup-form.tsx b/apps/sim/app/(auth)/signup/signup-form.tsx
index 8207531456a..5d1b2d25ff6 100644
--- a/apps/sim/app/(auth)/signup/signup-form.tsx
+++ b/apps/sim/app/(auth)/signup/signup-form.tsx
@@ -241,8 +241,6 @@ function SignupFormContent({ githubAvailable, googleAvailable, isProduction }: S
return
}
- const sanitizedName = trimmedName
-
let token: string | undefined
const widget = turnstileRef.current
if (turnstileSiteKey && widget) {
@@ -265,7 +263,7 @@ function SignupFormContent({ githubAvailable, googleAvailable, isProduction }: S
{
email: emailValue,
password: passwordValue,
- name: sanitizedName,
+ name: trimmedName,
},
{
headers: {
diff --git a/apps/sim/app/(landing)/components/auth-modal/auth-modal.tsx b/apps/sim/app/(landing)/components/auth-modal/auth-modal.tsx
index 8b399f36842..2231a5138e9 100644
--- a/apps/sim/app/(landing)/components/auth-modal/auth-modal.tsx
+++ b/apps/sim/app/(landing)/components/auth-modal/auth-modal.tsx
@@ -2,6 +2,7 @@
import { useCallback, useEffect, useState } from 'react'
import { Loader2, X } from 'lucide-react'
+import Image from 'next/image'
import { useRouter } from 'next/navigation'
import { Modal, ModalClose, ModalContent, ModalTitle, ModalTrigger } from '@/components/emcn'
import { GithubIcon, GoogleIcon } from '@/components/icons'
@@ -26,14 +27,23 @@ interface ProviderStatus {
let fetchPromise: Promise | null = null
+const FALLBACK_STATUS: ProviderStatus = {
+ githubAvailable: false,
+ googleAvailable: false,
+ isProduction: false,
+}
+
function fetchProviderStatus(): Promise {
if (fetchPromise) return fetchPromise
fetchPromise = fetch('/api/auth/providers')
- .then((r) => r.json())
+ .then((r) => {
+ if (!r.ok) throw new Error(`HTTP ${r.status}`)
+ return r.json()
+ })
.then((data: ProviderStatus) => data)
.catch(() => {
fetchPromise = null
- return { githubAvailable: false, googleAvailable: false, isProduction: false }
+ return FALLBACK_STATUS
})
return fetchPromise
}
@@ -54,7 +64,7 @@ export function AuthModal({ children, defaultView = 'login', source }: AuthModal
const handleOpenChange = useCallback(
(nextOpen: boolean) => {
- if (nextOpen && !hasSocial) {
+ if (nextOpen && providerStatus && !hasSocial) {
router.push(defaultView === 'login' ? '/login' : '/signup')
return
}
@@ -64,7 +74,7 @@ export function AuthModal({ children, defaultView = 'login', source }: AuthModal
captureClientEvent('auth_modal_opened', { view: defaultView, source })
}
},
- [defaultView, hasSocial, router, source]
+ [defaultView, hasSocial, providerStatus, router, source]
)
const handleSocialLogin = useCallback(async (provider: 'github' | 'google') => {
@@ -72,7 +82,6 @@ export function AuthModal({ children, defaultView = 'login', source }: AuthModal
try {
await client.signIn.social({ provider, callbackURL: '/workspace' })
} catch {
- // Redirect handles success; errors are typically cancelled flows
} finally {
setSocialLoading(null)
}
@@ -107,11 +116,12 @@ export function AuthModal({ children, defaultView = 'login', source }: AuthModal
) : (
<>
-
diff --git a/apps/sim/app/(landing)/components/footer/footer-cta.tsx b/apps/sim/app/(landing)/components/footer/footer-cta.tsx
index abd3a38e28c..b2d1d7047a1 100644
--- a/apps/sim/app/(landing)/components/footer/footer-cta.tsx
+++ b/apps/sim/app/(landing)/components/footer/footer-cta.tsx
@@ -2,6 +2,7 @@
import { useCallback, useRef, useState } from 'react'
import { ArrowUp } from 'lucide-react'
+import { cn } from '@/lib/core/utils/cn'
import { captureClientEvent } from '@/lib/posthog/client'
import { AuthModal } from '@/app/(landing)/components/auth-modal/auth-modal'
import { useLandingSubmit } from '@/app/(landing)/components/landing-preview/components/landing-preview-panel/landing-preview-panel'
@@ -96,7 +97,7 @@ export function FooterCTA() {
href='https://docs.sim.ai'
target='_blank'
rel='noopener noreferrer'
- className={`${CTA_BUTTON} border-[var(--landing-border-strong)] text-[var(--landing-text)] transition-colors hover:bg-[var(--landing-bg-elevated)]`}
+ className={cn(CTA_BUTTON, 'border-[var(--landing-border-strong)] text-[var(--landing-text)] transition-colors hover:bg-[var(--landing-bg-elevated)]')}
onClick={() =>
trackLandingCta({
label: 'Docs',
@@ -110,7 +111,7 @@ export function FooterCTA() {