diff --git a/README.md b/README.md
index 831361fb3ed..114d5ffc207 100644
--- a/README.md
+++ b/README.md
@@ -74,6 +74,10 @@ docker compose -f docker-compose.prod.yml up -d
Open [http://localhost:3000](http://localhost:3000)
+#### Background worker note
+
+The Docker Compose stack starts a dedicated worker container by default. If `REDIS_URL` is not configured, the worker will start, log that it is idle, and do no queue processing. This is expected. Queue-backed API, webhook, and schedule execution requires Redis; installs without Redis continue to use the inline execution path.
+
Sim also supports local models via [Ollama](https://ollama.ai) and [vLLM](https://docs.vllm.ai/) — see the [Docker self-hosting docs](https://docs.sim.ai/self-hosting/docker) for setup details.
### Self-hosted: Manual Setup
@@ -113,10 +117,12 @@ cd packages/db && bunx drizzle-kit migrate --config=./drizzle.config.ts
5. Start development servers:
```bash
-bun run dev:full # Starts both Next.js app and realtime socket server
+bun run dev:full # Starts Next.js app, realtime socket server, and the BullMQ worker
```
-Or run separately: `bun run dev` (Next.js) and `cd apps/sim && bun run dev:sockets` (realtime).
+If `REDIS_URL` is not configured, the worker will remain idle and execution continues inline.
+
+Or run separately: `bun run dev` (Next.js), `cd apps/sim && bun run dev:sockets` (realtime), and `cd apps/sim && bun run worker` (BullMQ worker).
## Copilot API Keys
diff --git a/apps/docs/app/layout.tsx b/apps/docs/app/layout.tsx
index 91eeb72f972..ea06926c72a 100644
--- a/apps/docs/app/layout.tsx
+++ b/apps/docs/app/layout.tsx
@@ -18,7 +18,7 @@ export const metadata = {
metadataBase: new URL('https://docs.sim.ai'),
title: {
default: 'Sim Documentation — Build AI Agents & Run Your Agentic Workforce',
- template: '%s',
+ 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.',
diff --git a/apps/docs/content/docs/en/execution/costs.mdx b/apps/docs/content/docs/en/execution/costs.mdx
index 25f4cc05adf..9f7af19f3d0 100644
--- a/apps/docs/content/docs/en/execution/costs.mdx
+++ b/apps/docs/content/docs/en/execution/costs.mdx
@@ -195,6 +195,17 @@ By default, your usage is capped at the credits included in your plan. To allow
Max (individual) shares the same rate limits as team plans. Team plans (Pro or Max for Teams) use the Max-tier rate limits.
+### Concurrent Execution Limits
+
+| Plan | Concurrent Executions |
+|------|----------------------|
+| **Free** | 5 |
+| **Pro** | 50 |
+| **Max / Team** | 200 |
+| **Enterprise** | 200 (customizable) |
+
+Concurrent execution limits control how many workflow executions can run simultaneously within a workspace. When the limit is reached, new executions are queued and admitted as running executions complete. Manual runs from the editor are not subject to these limits.
+
### File Storage
| Plan | Storage |
diff --git a/apps/sim/app/(auth)/components/auth-button-classes.ts b/apps/sim/app/(auth)/components/auth-button-classes.ts
index 02d1d5e47ed..a55f334ea8e 100644
--- a/apps/sim/app/(auth)/components/auth-button-classes.ts
+++ b/apps/sim/app/(auth)/components/auth-button-classes.ts
@@ -1,3 +1,6 @@
-/** Shared className for primary auth form submit buttons across all auth pages. */
-export const AUTH_SUBMIT_BTN =
- 'inline-flex h-[32px] w-full items-center justify-center gap-2 rounded-[5px] border border-white bg-white px-2.5 font-[430] font-season text-black text-sm transition-colors hover:border-[var(--border-1)] hover:bg-[var(--border-1)] disabled:cursor-not-allowed disabled:opacity-50' as const
+/** Shared className for primary auth/status CTA buttons on dark auth surfaces. */
+export const AUTH_PRIMARY_CTA_BASE =
+ 'inline-flex h-[32px] items-center justify-center gap-2 rounded-[5px] border border-[var(--auth-primary-btn-border)] bg-[var(--auth-primary-btn-bg)] px-2.5 font-[430] font-season text-[var(--auth-primary-btn-text)] text-sm transition-colors hover:border-[var(--auth-primary-btn-hover-border)] hover:bg-[var(--auth-primary-btn-hover-bg)] hover:text-[var(--auth-primary-btn-hover-text)] disabled:cursor-not-allowed disabled:opacity-50' as const
+
+/** Full-width variant used for primary auth form submit buttons. */
+export const AUTH_SUBMIT_BTN = `${AUTH_PRIMARY_CTA_BASE} w-full` as const
diff --git a/apps/sim/app/(home)/components/collaboration/collaboration.tsx b/apps/sim/app/(home)/components/collaboration/collaboration.tsx
index 302bcc05904..02bee46ab15 100644
--- a/apps/sim/app/(home)/components/collaboration/collaboration.tsx
+++ b/apps/sim/app/(home)/components/collaboration/collaboration.tsx
@@ -288,7 +288,6 @@ export default function Collaboration() {
width={876}
height={480}
className='h-full w-auto object-left md:min-w-[100vw]'
- priority
/>
+ )
+}
diff --git a/apps/sim/app/(landing)/partners/page.tsx b/apps/sim/app/(landing)/partners/page.tsx
new file mode 100644
index 00000000000..e3c564edf01
--- /dev/null
+++ b/apps/sim/app/(landing)/partners/page.tsx
@@ -0,0 +1,293 @@
+import type { Metadata } from 'next'
+import Link from 'next/link'
+import { getNavBlogPosts } from '@/lib/blog/registry'
+import { martianMono } from '@/app/_styles/fonts/martian-mono/martian-mono'
+import { season } from '@/app/_styles/fonts/season/season'
+import Footer from '@/app/(home)/components/footer/footer'
+import Navbar from '@/app/(home)/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.',
+ metadataBase: new URL('https://sim.ai'),
+ openGraph: {
+ title: 'Partner Program | Sim',
+ description: 'Join the Sim partner program.',
+ type: 'website',
+ },
+}
+
+const PARTNER_TIERS = [
+ {
+ name: 'Certified Partner',
+ badge: 'Entry',
+ color: '#3A3A3A',
+ requirements: ['Complete Sim Academy certification', 'Deploy at least 1 live workflow'],
+ perks: [
+ 'Official partner badge',
+ 'Listed in partner directory',
+ 'Early access to new features',
+ ],
+ },
+ {
+ name: 'Silver Partner',
+ badge: 'Growth',
+ color: '#5A5A5A',
+ requirements: [
+ 'All Certified requirements',
+ '3+ active client deployments',
+ 'Sim Academy advanced certification',
+ ],
+ perks: [
+ 'All Certified perks',
+ 'Dedicated partner Slack channel',
+ 'Co-marketing opportunities',
+ 'Priority support',
+ ],
+ },
+ {
+ name: 'Gold Partner',
+ badge: 'Premier',
+ color: '#8B7355',
+ requirements: [
+ 'All Silver requirements',
+ '10+ active client deployments',
+ 'Sim solutions architect certification',
+ ],
+ perks: [
+ 'All Silver perks',
+ 'Revenue share program',
+ 'Joint case studies',
+ 'Dedicated partner success manager',
+ 'Influence product roadmap',
+ ],
+ },
+]
+
+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.',
+ },
+ {
+ 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.',
+ },
+ {
+ step: '03',
+ title: 'Get certified & grow',
+ description:
+ 'Earn your partner certification and unlock perks, co-marketing opportunities, and revenue share as you scale your practice.',
+ },
+]
+
+const BENEFITS = [
+ {
+ icon: '🎓',
+ title: 'Interactive Learning',
+ description:
+ 'Learn on the real Sim canvas with drag-and-drop exercises, instant feedback, and guided exercises — not just videos.',
+ },
+ {
+ icon: '🤝',
+ title: 'Co-Marketing',
+ description:
+ 'Get listed in the Sim partner directory, featured in case studies, and promoted to the Sim user base.',
+ },
+ {
+ icon: '💰',
+ title: 'Revenue Share',
+ description: 'Gold partners earn revenue share on referred customers and managed deployments.',
+ },
+ {
+ icon: '🚀',
+ title: 'Early Access',
+ description:
+ 'Partners get early access to new Sim features, APIs, and integrations before they launch publicly.',
+ },
+ {
+ icon: '🛠️',
+ title: 'Technical Support',
+ description:
+ 'Priority technical support, private Slack access, and a dedicated partner success manager for Gold partners.',
+ },
+ {
+ icon: '📣',
+ title: 'Community',
+ description:
+ 'Join a growing community of Sim builders. Share workflows, collaborate on solutions, and shape the product roadmap.',
+ },
+]
+
+export default async function PartnersPage() {
+ const blogPosts = await getNavBlogPosts()
+
+ return (
+
+
+
+
+
+
+ {/* Hero */}
+
+
+
+ Partner Program
+
+
+ Build the future
+
+ of AI automation
+
+
+ Become a certified Sim partner. Complete Sim Academy, deploy real solutions, and earn
+ recognition in the growing ecosystem of AI workflow builders.
+
+
+ {/* TODO: Uncomment when academy is public */}
+ {/*
+ Start Sim Academy →
+ */}
+
+ Learn more
+
+
+
+
+
+ {/* Benefits grid */}
+
+
+
+ Why partner with Sim
+
+
+ {BENEFITS.map((b) => (
+
+
{b.icon}
+
{b.title}
+
{b.description}
+
+ ))}
+
+
+
+
+ {/* How it works */}
+
+
+
+ How it works
+
+
+ {HOW_IT_WORKS.map((step) => (
+
+
+ {step.step}
+
+
+
{step.title}
+
{step.description}
+
+
+ ))}
+
+
+
+
+ {/* Partner tiers */}
+
+
+
+ Partner tiers
+
+
+ {PARTNER_TIERS.map((tier) => (
+
+
+
{tier.name}
+
+ {tier.badge}
+
+
+
+
+
+ Requirements
+
+
+ {tier.requirements.map((r) => (
+
+
+ {r}
+
+ ))}
+
+
+
+
+
Perks
+
+ {tier.perks.map((p) => (
+
+
+ {p}
+
+ ))}
+
+
+
+ ))}
+
+
+
+
+ {/* CTA */}
+
+
+
+ Ready to get started?
+
+
+ Complete Sim Academy to earn your first certification and unlock partner benefits.
+ It's free to start — no credit card required.
+
+ {/* TODO: Uncomment when academy is public */}
+ {/*
+ Start Sim Academy →
+ */}
+
+ This certificate was issued by Sim AI, Inc. and verifies the holder has completed the{' '}
+ {certificate.metadata?.courseTitle} program.
+
+
+
+ )
+}
diff --git a/apps/sim/app/academy/(catalog)/layout.tsx b/apps/sim/app/academy/(catalog)/layout.tsx
new file mode 100644
index 00000000000..fb400ef2834
--- /dev/null
+++ b/apps/sim/app/academy/(catalog)/layout.tsx
@@ -0,0 +1,16 @@
+import type React from 'react'
+import { getNavBlogPosts } from '@/lib/blog/registry'
+import Footer from '@/app/(home)/components/footer/footer'
+import Navbar from '@/app/(home)/components/navbar/navbar'
+
+export default async function AcademyCatalogLayout({ children }: { children: React.ReactNode }) {
+ const blogPosts = await getNavBlogPosts()
+
+ return (
+ <>
+
+ {children}
+
+ >
+ )
+}
diff --git a/apps/sim/app/academy/(catalog)/not-found.tsx b/apps/sim/app/academy/(catalog)/not-found.tsx
new file mode 100644
index 00000000000..b2c0c764f81
--- /dev/null
+++ b/apps/sim/app/academy/(catalog)/not-found.tsx
@@ -0,0 +1,19 @@
+import Link from 'next/link'
+
+export default function AcademyNotFound() {
+ return (
+
+
404
+
Page not found
+
+ That course or lesson doesn't exist in the Academy.
+
+
+ Back to Academy
+
+
+ )
+}
diff --git a/apps/sim/app/academy/(catalog)/page.tsx b/apps/sim/app/academy/(catalog)/page.tsx
new file mode 100644
index 00000000000..ce370f9e39a
--- /dev/null
+++ b/apps/sim/app/academy/(catalog)/page.tsx
@@ -0,0 +1,76 @@
+import { BookOpen, Clock } from 'lucide-react'
+import Link from 'next/link'
+import { COURSES } from '@/lib/academy/content'
+
+export default function AcademyCatalogPage() {
+ return (
+
+
+
+
+ Sim Academy
+
+
+ Become a certified
+
+ Sim partner
+
+
+ Master AI workflow automation with hands-on interactive exercises on the real Sim
+ canvas. Complete the program to earn your partner certification.
+