diff --git a/apps/sim/app/(landing)/components/hero/components/hero-header/hero-header.tsx b/apps/sim/app/(landing)/components/hero/components/hero-header/hero-header.tsx index c2e9b566956..d06e6ca7a88 100644 --- a/apps/sim/app/(landing)/components/hero/components/hero-header/hero-header.tsx +++ b/apps/sim/app/(landing)/components/hero/components/hero-header/hero-header.tsx @@ -6,6 +6,12 @@ import { LANDING_HERO_CTA_GAP } from '@/app/(landing)/components/landing-layout' interface LandingHeroHeaderProps { description: string + /** + * Optional second paragraph beneath the description - a self-contained + * definition of the page's subject, kept quotable for answer engines (GEO). + * Omitted by the homepage, so its hero renders unchanged. + */ + definition?: string eyebrow?: ReactNode heading: ReactNode headingId: string @@ -17,6 +23,7 @@ interface LandingHeroHeaderProps { */ export function LandingHeroHeader({ description, + definition, eyebrow, heading, headingId, @@ -37,6 +44,12 @@ export function LandingHeroHeader({ {description}

+ {definition ? ( +

+ {definition} +

+ ) : null} +
diff --git a/apps/sim/app/(landing)/components/hero/hero.tsx b/apps/sim/app/(landing)/components/hero/hero.tsx index e591cf4c6b4..f28d618087c 100644 --- a/apps/sim/app/(landing)/components/hero/hero.tsx +++ b/apps/sim/app/(landing)/components/hero/hero.tsx @@ -86,11 +86,12 @@ export function Hero() { headingId='hero-heading' heading={ <> - Sim is the AI workspace
- for building AI agents. + Sim is the AI workspace for
+ building and managing AI agents. } - description='Open source, with 1,000+ integrations and every major LLM. Build, deploy, and manage agents visually, conversationally, or with code.' + description='Sim is an AI agent and workflow builder for teams creating agents that automate real work. Design workflows visually, describe what you need in natural language, or use code for complete control.' + definition='Connect your agents to 1,000+ integrations and every major LLM, then deploy, monitor, and improve them from one collaborative, open-source workspace.' />
`, OG/Twitter titles (`page.tsx`), and the JSON-LD `WebPage.name` + * below, so the title surfaces never drift. + */ +export const HOME_PAGE_TITLE = 'The AI Workspace | Build, Deploy & Manage AI Agents | Sim' + const HOME_JSON_LD = { '@context': 'https://schema.org', '@graph': [ @@ -31,7 +38,7 @@ const HOME_JSON_LD = { '@type': 'WebPage', '@id': `${SITE_URL}#webpage`, url: SITE_URL, - name: 'Sim, The AI Workspace | Build, Deploy & Manage AI Agents', + name: HOME_PAGE_TITLE, isPartOf: { '@id': `${SITE_URL}#website` }, about: { '@id': `${SITE_URL}#software` }, datePublished: '2024-01-01T00:00:00+00:00', diff --git a/apps/sim/app/(landing)/components/home-structured-data/index.ts b/apps/sim/app/(landing)/components/home-structured-data/index.ts index 61d458f204c..d4a9af3c897 100644 --- a/apps/sim/app/(landing)/components/home-structured-data/index.ts +++ b/apps/sim/app/(landing)/components/home-structured-data/index.ts @@ -1 +1 @@ -export { HOME_PAGE_DESCRIPTION, HomeStructuredData } from './home-structured-data' +export { HOME_PAGE_DESCRIPTION, HOME_PAGE_TITLE, HomeStructuredData } from './home-structured-data' diff --git a/apps/sim/app/(landing)/components/mothership/mothership.tsx b/apps/sim/app/(landing)/components/mothership/mothership.tsx index 62f0d9d34f5..24995307640 100644 --- a/apps/sim/app/(landing)/components/mothership/mothership.tsx +++ b/apps/sim/app/(landing)/components/mothership/mothership.tsx @@ -83,7 +83,7 @@ export function Mothership() { className='max-w-[1200px] text-balance text-[28px] leading-[1.2] max-sm:text-[22px]' > - Everything your agents need, in one workspace. + Everything your AI agents need, in one workspace. Build, run, and watch every agent. diff --git a/apps/sim/app/(landing)/components/product-demo/product-demo.tsx b/apps/sim/app/(landing)/components/product-demo/product-demo.tsx index 10d1f030024..948a27234ba 100644 --- a/apps/sim/app/(landing)/components/product-demo/product-demo.tsx +++ b/apps/sim/app/(landing)/components/product-demo/product-demo.tsx @@ -45,8 +45,9 @@ export function ProductDemo() { Describe it. Sim builds it.

- Tell Sim what you need in plain English and it wires blocks, models, and integrations - into a working agent. + Describe what you want to automate in plain English. Sim acts as an AI agent builder, + connecting the right blocks, models, tools, and data into a working workflow that you + can review, customize, test, and deploy.

diff --git a/apps/sim/app/(landing)/components/solutions-page/components/solutions-card-row/components/solutions-card-row-header/solutions-card-row-header.tsx b/apps/sim/app/(landing)/components/solutions-page/components/solutions-card-row/components/solutions-card-row-header/solutions-card-row-header.tsx index c430eed9f7f..3aa995e65f3 100644 --- a/apps/sim/app/(landing)/components/solutions-page/components/solutions-card-row/components/solutions-card-row-header/solutions-card-row-header.tsx +++ b/apps/sim/app/(landing)/components/solutions-page/components/solutions-card-row/components/solutions-card-row-header/solutions-card-row-header.tsx @@ -3,8 +3,9 @@ import { SOLUTIONS_SPACING } from '@/app/(landing)/components/solutions-page/con import type { SolutionsCardRowConfig } from '@/app/(landing)/components/solutions-page/types' /** - * The header block of a card row - an `

` title, a body-color subtitle, and - * a single pill CTA, stacked with named spacing constants. Extracted from + * The header block of a card row - an `

` title, a body-color subtitle, an + * optional second subtitle paragraph, and a single pill CTA, stacked with named + * spacing constants. Extracted from * {@link SolutionsCardRow} so layouts that place row headers inside a shared * grid (the enterprise feature grid) render the exact same header chrome. */ @@ -27,6 +28,11 @@ export function SolutionsCardRowHeader({ row, headingId }: SolutionsCardRowHeade

{row.subtitle}

+ {row.note ? ( +

+ {row.note} +

+ ) : null}
diff --git a/apps/sim/app/(landing)/components/solutions-page/components/solutions-hero/solutions-hero.tsx b/apps/sim/app/(landing)/components/solutions-page/components/solutions-hero/solutions-hero.tsx index 1c40d68d4e8..80fd08911c0 100644 --- a/apps/sim/app/(landing)/components/solutions-page/components/solutions-hero/solutions-hero.tsx +++ b/apps/sim/app/(landing)/components/solutions-page/components/solutions-hero/solutions-hero.tsx @@ -67,6 +67,7 @@ export function SolutionsHero({ hero, align = 'left', variant = 'solutions' }: S heading={hero.heading} headingId='solutions-hero-heading' description={hero.description} + definition={hero.definition} />
, }, { @@ -100,7 +103,8 @@ const ENTERPRISE_CONFIG: SolutionsPageConfig = { }, { title: 'Manage the full lifecycle', - description: 'Version, monitor, and edit every agent in Sim as your workflows evolve.', + description: + 'Version, monitor, and update every enterprise AI agent in Sim as your business requirements, integrations, and governance policies evolve.', visual: , }, ], @@ -109,7 +113,7 @@ const ENTERPRISE_CONFIG: SolutionsPageConfig = { id: 'governance', title: 'Governance and Security for Enterprise AI Agents', subtitle: - 'Sim gives security teams role-based access, approval paths, and a complete audit trail for every deployment.', + 'Control how enterprise AI agents access data, use tools, and take action. Sim provides SSO, permission groups, approval paths, configurable data retention, and append-only audit logs for every security-relevant change.', cta: { label: 'See security', href: DEMO_HREF }, cards: [ { @@ -137,7 +141,8 @@ const ENTERPRISE_CONFIG: SolutionsPageConfig = { id: 'deploy', title: 'Deploy Enterprise Workflow Agents with Confidence', subtitle: - 'Test in staging, watch live runs, and roll back in seconds. Sim versions every deployment.', + 'Enterprise workflow agents need controlled release processes. Test changes in staging, observe production runs, version every deployment, and restore a stable version if updates cause an issue.', + note: 'Deploy Sim on your own infrastructure with Docker or Kubernetes when your organization requires greater control over its environment and data.', cta: { label: 'Explore deployment', href: SIGNUP_HREF }, cards: [ { diff --git a/apps/sim/app/(landing)/files/files.tsx b/apps/sim/app/(landing)/files/files.tsx index ccf2123ed40..10033e2a708 100644 --- a/apps/sim/app/(landing)/files/files.tsx +++ b/apps/sim/app/(landing)/files/files.tsx @@ -119,7 +119,7 @@ const FILES_CONFIG: SolutionsPageConfig = { }, { id: 'agents', - title: 'Agents read, parse, and produce files.', + title: 'AI agents read, parse, and produce files.', subtitle: 'Sim agents take files as inputs, pull the data out, and write new files back to the store for your team.', cta: { label: 'Build a file-handling agent', href: '/signup' }, diff --git a/apps/sim/app/(landing)/knowledge/knowledge.tsx b/apps/sim/app/(landing)/knowledge/knowledge.tsx index f70d1f06e41..4ccdb912189 100644 --- a/apps/sim/app/(landing)/knowledge/knowledge.tsx +++ b/apps/sim/app/(landing)/knowledge/knowledge.tsx @@ -55,7 +55,7 @@ const KNOWLEDGE_CONFIG: SolutionsPageConfig = { rows: [ { id: 'memory', - title: 'Give agents memory of your data.', + title: 'Give AI agents memory of your data.', subtitle: 'Sim turns your docs and sources into searchable memory every agent can read, so answers come from your data instead of guesswork.', cta: { label: 'Explore Knowledge Base', href: '/signup' }, diff --git a/apps/sim/app/(landing)/logs/logs.tsx b/apps/sim/app/(landing)/logs/logs.tsx index b3755a2973f..8a00c03f2e7 100644 --- a/apps/sim/app/(landing)/logs/logs.tsx +++ b/apps/sim/app/(landing)/logs/logs.tsx @@ -57,7 +57,7 @@ const LOGS_CONFIG: SolutionsPageConfig = { rows: [ { id: 'trace', - title: 'See exactly what every agent did.', + title: 'See exactly what every AI agent did.', subtitle: 'Sim records every step of every agent run, so teams can follow each decision, tool call, and output on one timeline.', cta: { label: 'Explore Logs in Sim', href: '/signup' }, diff --git a/apps/sim/app/(landing)/page.tsx b/apps/sim/app/(landing)/page.tsx index 27bd43bbad6..b6ac4c57574 100644 --- a/apps/sim/app/(landing)/page.tsx +++ b/apps/sim/app/(landing)/page.tsx @@ -1,6 +1,9 @@ import type { Metadata } from 'next' import { SITE_URL } from '@/lib/core/utils/urls' -import { HOME_PAGE_DESCRIPTION } from '@/app/(landing)/components/home-structured-data' +import { + HOME_PAGE_DESCRIPTION, + HOME_PAGE_TITLE, +} from '@/app/(landing)/components/home-structured-data' import Landing from '@/app/(landing)/landing' export const revalidate = 3600 @@ -8,7 +11,7 @@ export const revalidate = 3600 export const metadata: Metadata = { metadataBase: new URL(SITE_URL), title: { - absolute: 'Sim, The AI Workspace | Build, Deploy & Manage AI Agents', + absolute: HOME_PAGE_TITLE, }, description: HOME_PAGE_DESCRIPTION, keywords: @@ -22,7 +25,7 @@ export const metadata: Metadata = { telephone: false, }, openGraph: { - title: 'Sim, The AI Workspace | Build, Deploy & Manage AI Agents', + title: HOME_PAGE_TITLE, description: HOME_PAGE_DESCRIPTION, type: 'website', url: SITE_URL, @@ -42,7 +45,7 @@ export const metadata: Metadata = { card: 'summary_large_image', site: '@simdotai', creator: '@simdotai', - title: 'Sim, The AI Workspace | Build, Deploy & Manage AI Agents', + title: HOME_PAGE_TITLE, description: HOME_PAGE_DESCRIPTION, images: { url: '/logo/426-240/reverse/small.png', diff --git a/apps/sim/app/(landing)/scheduled-tasks/scheduled-tasks.tsx b/apps/sim/app/(landing)/scheduled-tasks/scheduled-tasks.tsx index 91a019b78b3..464d2313b8d 100644 --- a/apps/sim/app/(landing)/scheduled-tasks/scheduled-tasks.tsx +++ b/apps/sim/app/(landing)/scheduled-tasks/scheduled-tasks.tsx @@ -56,7 +56,7 @@ const SCHEDULED_TASKS_CONFIG: SolutionsPageConfig = { rows: [ { id: 'schedule', - title: 'Put any agent on a schedule.', + title: 'Put any AI agent on a schedule.', subtitle: 'Sim turns a workflow into a scheduled task with one trigger, from 15-minute intervals to monthly closes, in your timezone.', cta: { label: 'Schedule your first agent', href: '/signup' }, diff --git a/apps/sim/app/(landing)/tables/tables.tsx b/apps/sim/app/(landing)/tables/tables.tsx index 8921d827660..5f16e7420a2 100644 --- a/apps/sim/app/(landing)/tables/tables.tsx +++ b/apps/sim/app/(landing)/tables/tables.tsx @@ -56,7 +56,7 @@ const TABLES_CONFIG: SolutionsPageConfig = { rows: [ { id: 'records', - title: 'Give agents structured data to act on.', + title: 'Give AI agents structured data to act on.', subtitle: 'Sim stores the leads, tickets, and invoices agents work with as tables in the same workspace as the agents.', cta: { label: 'Explore Tables', href: '/signup' }, @@ -85,7 +85,7 @@ const TABLES_CONFIG: SolutionsPageConfig = { }, { id: 'memory', - title: 'Tables are your agents’ memory.', + title: 'Tables are your AI agents’ memory.', subtitle: 'Sim carries state between runs. Every run writes rows, every change is recorded, and agents pick up exactly where they left off.', cta: { label: 'See how agents use Tables', href: '/signup' }, diff --git a/apps/sim/app/(landing)/workflows/workflows.tsx b/apps/sim/app/(landing)/workflows/workflows.tsx index 8edf9c34431..862082c26c1 100644 --- a/apps/sim/app/(landing)/workflows/workflows.tsx +++ b/apps/sim/app/(landing)/workflows/workflows.tsx @@ -58,7 +58,7 @@ const WORKFLOWS_CONFIG: SolutionsPageConfig = { rows: [ { id: 'build', - title: 'Build agents the way that fits.', + title: 'Build AI agents the way that fits.', subtitle: 'Sim lets teams build agents visually, in natural language, or with code, wiring up any model and 1,000+ integrations in one workspace.', cta: { label: 'Explore the workflow builder', href: '/signup' },