diff --git a/apps/docs/app/llms.txt/route.ts b/apps/docs/app/llms.txt/route.ts index f172dd07156..ca426a7e966 100644 --- a/apps/docs/app/llms.txt/route.ts +++ b/apps/docs/app/llms.txt/route.ts @@ -44,7 +44,7 @@ Sim is the open-source AI workspace where teams build, deploy, and manage AI age ## Documentation Overview -This file provides an overview of our documentation. For full content of all pages, see ${baseUrl}/llms-full.txt +This file provides an overview of our documentation. For full content of all pages, see [llms-full.txt](${baseUrl}/llms-full.txt). ## Main Sections @@ -54,16 +54,16 @@ ${Object.entries(sections) .split('-') .map((word) => word.charAt(0).toUpperCase() + word.slice(1)) .join(' ') - return `### ${sectionTitle}\n\n${items.map((item) => `- ${item.title}: ${item.url}${item.description ? `\n ${item.description}` : ''}`).join('\n')}` + return `### ${sectionTitle}\n\n${items.map((item) => `- [${item.title}](${item.url})${item.description ? `\n ${item.description}` : ''}`).join('\n')}` }) .join('\n\n')} ## Additional Resources -- Full documentation content: ${baseUrl}/llms-full.txt +- [Full documentation content](${baseUrl}/llms-full.txt) - Individual page content: ${baseUrl}/llms.mdx/[page-path] -- API documentation: ${baseUrl}/api-reference/ -- Tool integrations: ${baseUrl}/tools/ +- [API documentation](${baseUrl}/api-reference/) +- [Tool integrations](${baseUrl}/tools/) ## Statistics diff --git a/apps/docs/public/llms.txt b/apps/docs/public/llms.txt deleted file mode 100644 index aad99e364ef..00000000000 --- a/apps/docs/public/llms.txt +++ /dev/null @@ -1,51 +0,0 @@ -# Sim Documentation - -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 AI workspace including: -- Mothership — natural language agent creation and workspace management -- Visual workflow builder with drag-and-drop interface -- 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 - -## Main Documentation Sections - -Here are the key areas covered in our documentation: - -/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 agent logic with the visual builder - -## Technical Information - -- Framework: Fumadocs (Next.js-based documentation platform) -- Content: MDX files with interactive examples -- Languages: English (primary), Spanish, French, German, Japanese, Chinese -- Search: AI-powered search and assistance available - -## Complete Documentation - -For the full documentation with all pages, examples, and interactive features, visit our documentation site. We also provide machine-readable versions at /llms.txt (full content) for AI systems. - -## Additional Resources - -- GitHub repository with agent examples -- Discord community for support and discussions -- 1,000+ built-in integrations with detailed guides -- MCP protocol documentation for custom integrations -- Self-hosting guides and Docker deployment - -For the complete documentation visit https://docs.sim.ai diff --git a/apps/sim/app/(landing)/components/content-index-page/content-index-page.tsx b/apps/sim/app/(landing)/components/content-index-page/content-index-page.tsx index 3e304e9b5be..3ccc43d148f 100644 --- a/apps/sim/app/(landing)/components/content-index-page/content-index-page.tsx +++ b/apps/sim/app/(landing)/components/content-index-page/content-index-page.tsx @@ -96,6 +96,7 @@ export function ContentIndexPage({ sizes='(max-width: 768px) 100vw, (max-width: 1024px) 50vw, 33vw' className='object-cover' priority={index < 3} + fetchPriority={index === 0 ? 'high' : undefined} unoptimized /> diff --git a/apps/sim/app/(landing)/components/content-post-page/content-post-page.tsx b/apps/sim/app/(landing)/components/content-post-page/content-post-page.tsx index 358ec8a1416..2e8aa3c84b5 100644 --- a/apps/sim/app/(landing)/components/content-post-page/content-post-page.tsx +++ b/apps/sim/app/(landing)/components/content-post-page/content-post-page.tsx @@ -52,6 +52,7 @@ export function ContentPostPage({ className='h-auto w-full' sizes='(max-width: 768px) 100vw, 450px' priority + fetchPriority='high' itemProp='image' unoptimized /> diff --git a/apps/sim/app/(landing)/components/features/components/integrations-callout/integrations-callout.tsx b/apps/sim/app/(landing)/components/features/components/integrations-callout/integrations-callout.tsx index 7974064feb3..4e7659ee107 100644 --- a/apps/sim/app/(landing)/components/features/components/integrations-callout/integrations-callout.tsx +++ b/apps/sim/app/(landing)/components/features/components/integrations-callout/integrations-callout.tsx @@ -17,6 +17,18 @@ import { CalloutFrame } from '@/app/(landing)/components/features/components/cal * the right AND bottom edges bleed past the media stage's clip - a zoomed-in * peek at part of the product rather than a complete miniature, scaling * proportionally with the aspect-locked stage. Decorative. + * + * `sizes` is derived directly from the section's grid math rather than + * approximated, then rounded up to the worst-case (peak render/viewport + * ratio) in each tier so the browser never under-fetches: + * `callout = 1.25 * (viewport - 2*gutter - 32px card padding - [40px gap + + * 386px fixed copy column, desktop only])`, gutter = `px-20`/`max-lg:px-8`/ + * `max-sm:px-5` from `Features`'s grid, matching `FeatureCard`'s + * `max-lg:grid-cols-1` stack. Peak ratios (verified against a static + * reproduction of this exact layout rendered at each Tailwind breakpoint): + * ~113.3% at the `max-width: 1023px` stacked tier's own upper edge, ~108.6% + * at `1460px` (the container's cap, where render width stops growing with + * viewport - hence the final tier is a flat px value, not a vw fraction). */ export function IntegrationsCallout() { return ( @@ -29,7 +41,7 @@ export function IntegrationsCallout() { src='/landing/feature-integrate-ui.png' alt='' fill - sizes='1050px' + sizes='(max-width: 1023px) 114vw, (max-width: 1460px) 109vw, 1053px' className='object-cover' /> diff --git a/apps/sim/app/(landing)/components/hero/hero.tsx b/apps/sim/app/(landing)/components/hero/hero.tsx index b80b7227340..ea259f8e01b 100644 --- a/apps/sim/app/(landing)/components/hero/hero.tsx +++ b/apps/sim/app/(landing)/components/hero/hero.tsx @@ -102,6 +102,7 @@ export function Hero() { alt='' fill priority + fetchPriority='high' quality={90} sizes='(max-width: 1460px) 100vw, 1300px' className='object-cover' diff --git a/apps/sim/app/(landing)/enterprise/enterprise.tsx b/apps/sim/app/(landing)/enterprise/enterprise.tsx index 677a23d1968..0396ddcacbc 100644 --- a/apps/sim/app/(landing)/enterprise/enterprise.tsx +++ b/apps/sim/app/(landing)/enterprise/enterprise.tsx @@ -66,6 +66,7 @@ const ENTERPRISE_CONFIG: SolutionsPageConfig = { = useMinimalRegistry const nextConfig: NextConfig = { devIndicators: false, poweredByHeader: false, + // Safe here since this repo's source is already fully public on GitHub - + // no additional exposure versus Next's default (disabled to avoid leaking + // source on the client). + productionBrowserSourceMaps: true, turbopack: { root: path.join(import.meta.dirname, '../..'), resolveAlias: minimalRegistryAlias, @@ -188,7 +192,11 @@ const nextConfig: NextConfig = { async headers() { return [ { - source: '/((?!api/).*\\.(?:svg|jpg|jpeg|png|gif|ico|webp|avif|woff|woff2|ttf|eot))', + // `/public`-served assets keep their path across deploys (no content + // hash), so a shorter TTL + revalidation window bounds how long a + // changed asset can serve stale. + source: + '/((?!api/|_next/static/).*\\.(?:svg|jpg|jpeg|png|gif|ico|webp|avif|woff|woff2|ttf|eot))', headers: [ { key: 'Cache-Control', @@ -245,14 +253,29 @@ const nextConfig: NextConfig = { }, ], }, - // Block access to sourcemap files (defense in depth) + // Block access to sourcemap files (defense in depth). The trailing + // `$` this rule previously ended with is not a regex anchor in Next's + // `source` matcher (path-to-regexp syntax, not raw regex) - it matched + // a literal `$` character, so this rule never actually fired against + // real `.map` URLs. Next already anchors the compiled pattern at both + // ends, so no trailing anchor is needed here. + // + // Also bounds `.map` files to a short, revalidated TTL rather than + // Next's built-in 1yr immutable default for `_next/static/*` - maps + // are content-hashed like their JS, so this isn't about staleness, + // it's so a future decision to stop shipping `productionBrowserSourceMaps` + // isn't undermined by browsers/edges holding old maps for a year. { - source: '/(.*)\\.map$', + source: '/(.*)\\.map', headers: [ { key: 'x-robots-tag', value: 'noindex', }, + { + key: 'Cache-Control', + value: 'public, max-age=86400, stale-while-revalidate=604800', + }, ], }, // Chat pages - allow iframe embedding from any origin diff --git a/apps/sim/public/blog/mothership/cover.jpg b/apps/sim/public/blog/mothership/cover.jpg index cc26d327547..598ade580b9 100644 Binary files a/apps/sim/public/blog/mothership/cover.jpg and b/apps/sim/public/blog/mothership/cover.jpg differ diff --git a/apps/sim/public/blog/mothership/cover.png b/apps/sim/public/blog/mothership/cover.png deleted file mode 100644 index e4410a5cb69..00000000000 Binary files a/apps/sim/public/blog/mothership/cover.png and /dev/null differ diff --git a/apps/sim/public/llms.txt b/apps/sim/public/llms.txt deleted file mode 100644 index 723c554eec0..00000000000 --- a/apps/sim/public/llms.txt +++ /dev/null @@ -1,59 +0,0 @@ -# Sim - -Sim is the open-source AI workspace where teams build, deploy, and manage AI agents. Create agents visually with the workflow builder, conversationally through Chat, or programmatically with the API — connected to 1,000+ integrations and every major LLM. - -## Key Facts - -- Website: https://sim.ai -- GitHub: https://github.com/simstudioai/sim -- Documentation: https://docs.sim.ai -- License: Apache 2.0 -- Category: AI workspace, AI agent builder, developer tools -- Trusted by: 100,000+ builders, from startups to Fortune 500 - -## What Sim Does - -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 agents. - -- Blog: https://sim.ai/blog -- RSS: https://sim.ai/blog/rss.xml - -## Documentation - -- Getting Started: https://docs.sim.ai/getting-started -- Blocks: https://docs.sim.ai/workflows -- Tools & Integrations: https://docs.sim.ai/integrations -- Webhooks: https://docs.sim.ai/workflows/triggers/webhook -- MCP Protocol: https://docs.sim.ai/agents/mcp -- Self-Hosting: https://docs.sim.ai/platform/self-hosting -- API Reference: https://docs.sim.ai/api-reference/getting-started -- SDKs: https://docs.sim.ai/api-reference