Skip to content

Commit 0eff50e

Browse files
chore: update layout and contents
1 parent 0bfac5a commit 0eff50e

File tree

21 files changed

+1389
-151
lines changed

21 files changed

+1389
-151
lines changed

apps/docs/components/ai/page-actions.tsx

Lines changed: 91 additions & 100 deletions
Large diffs are not rendered by default.

apps/docs/components/docs-layout/sidebar-components.tsx

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,21 @@
22

33
import { type ReactNode, useEffect, useState } from 'react'
44
import type { Folder, Item, Separator } from 'fumadocs-core/page-tree'
5-
import { ChevronRight } from 'lucide-react'
5+
import { BookOpen, ChevronRight, Cog, Layers, Play, Plug, Rocket, Search } from 'lucide-react'
66
import Link from 'next/link'
77
import { usePathname } from 'next/navigation'
88
import { cn } from '@/lib/utils'
99

10+
const SEPARATOR_ICONS: Record<string, React.ElementType> = {
11+
Basics: BookOpen,
12+
'Core Concepts': Layers,
13+
Integrations: Plug,
14+
'Security & Configuration': Cog,
15+
'Execution & Operations': Play,
16+
Deployment: Rocket,
17+
Reference: Search,
18+
}
19+
1020
const LANG_PREFIXES = ['/en', '/es', '/fr', '/de', '/ja', '/zh']
1121

1222
function stripLangPrefix(path: string): string {
@@ -191,13 +201,18 @@ export function SidebarFolder({ item, children }: { item: Folder; children: Reac
191201
}
192202

193203
export function SidebarSeparator({ item }: { item: Separator }) {
204+
const name = typeof item.name === 'string' ? item.name : ''
205+
const Icon = SEPARATOR_ICONS[name]
206+
194207
return (
195208
<p
196209
className={cn(
197-
'mt-4 mb-2 px-2 font-medium text-fd-muted-foreground text-xs',
198-
'lg:mt-5 lg:mb-1.5 lg:px-2.5 lg:font-semibold lg:text-[10.5px] lg:text-neutral-400 lg:uppercase lg:tracking-widest lg:dark:text-neutral-500'
210+
'mt-5 mb-2 flex items-center gap-2 px-2 font-semibold text-fd-muted-foreground text-sm',
211+
'lg:mt-7 lg:mb-2 lg:px-2.5 lg:text-[13px] lg:font-[620] lg:tracking-normal lg:text-neutral-800 lg:dark:text-neutral-200',
212+
'first:lg:mt-0 first:mt-0'
199213
)}
200214
>
215+
{Icon && <Icon className='h-[14px] w-[14px] flex-shrink-0 opacity-70' />}
201216
{item.name}
202217
</p>
203218
)

apps/docs/components/docs-layout/toc-footer.tsx

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { ArrowRight, ChevronRight } from 'lucide-react'
21
import Link from 'next/link'
32

43
export function TOCFooter() {
@@ -18,20 +17,10 @@ export function TOCFooter() {
1817
href='https://sim.ai/signup'
1918
target='_blank'
2019
rel='noopener noreferrer'
21-
className='group mt-2 inline-flex h-[32px] w-fit items-center rounded-[5px] bg-[#33c482] px-[10px] font-[430] font-season text-[14px] text-black transition-colors hover:border-[#E0E0E0] hover:bg-[#2DAC72] dark:bg-[#33c482] dark:text-black dark:hover:border-[#E0E0E0] dark:hover:bg-[#2DAC72]'
20+
className='mt-2 inline-flex h-[30px] w-fit items-center rounded-[5px] bg-[#33C482] px-[10px] font-medium text-[12px] text-[#1b1b1b] transition-colors hover:bg-[#2DAC72]'
2221
aria-label='Get started with Sim - Sign up for free'
2322
>
2423
Get started
25-
<span className='relative inline-flex h-4 w-4 transition-transform duration-200 group-hover:translate-x-0.5'>
26-
<ChevronRight
27-
className='absolute inset-0 h-4 w-4 transition-opacity duration-200 group-hover:opacity-0'
28-
aria-hidden='true'
29-
/>
30-
<ArrowRight
31-
className='absolute inset-0 h-4 w-4 opacity-0 transition-opacity duration-200 group-hover:opacity-100'
32-
aria-hidden='true'
33-
/>
34-
</span>
3524
</Link>
3625
</div>
3726
</div>

apps/docs/components/navbar/navbar.tsx

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
'use client'
22

3+
import { CircleHelp } from 'lucide-react'
34
import Link from 'next/link'
45
import { usePathname } from 'next/navigation'
56
import { LanguageDropdown } from '@/components/ui/language-dropdown'
67
import { SearchTrigger } from '@/components/ui/search-trigger'
78
import { SimLogoFull } from '@/components/ui/sim-logo'
89
import { ThemeToggle } from '@/components/ui/theme-toggle'
910
import { cn } from '@/lib/utils'
11+
import { DiscordIcon } from '../icons'
1012

1113
const NAV_TABS = [
1214
{
@@ -21,16 +23,14 @@ const NAV_TABS = [
2123
match: (p: string) => p.includes('/api-reference'),
2224
external: false,
2325
},
24-
{ label: 'Mothership', href: 'https://sim.ai', external: true },
2526
{ label: 'Changelog', href: 'https://sim.ai/changelog', external: true },
26-
2727
] as const
2828

2929
export function Navbar() {
3030
const pathname = usePathname()
3131

3232
return (
33-
<nav className='sticky top-0 z-50 bg-background/80 backdrop-blur-md backdrop-saturate-150'>
33+
<nav className='sticky top-0 pt-2 z-50 bg-background/80 backdrop-blur-md backdrop-saturate-150'>
3434
<div className='hidden w-full flex-col lg:flex'>
3535
{/* Top row: logo, search, controls */}
3636
<div
@@ -48,7 +48,26 @@ export function Navbar() {
4848
<SearchTrigger />
4949
</div>
5050

51-
<div className='flex items-center gap-1.5'>
51+
<div className='flex items-center gap-2'>
52+
<Link
53+
href='https://discord.gg/Hr4UWYEcTT'
54+
target='_blank'
55+
rel='noopener noreferrer'
56+
className='inline-flex h-[30px] items-center gap-[6px] rounded-[5px] border border-neutral-200 bg-white px-[10px] font-medium text-[12px] text-neutral-700 transition-colors hover:border-neutral-300 hover:bg-neutral-50 dark:border-neutral-700 dark:bg-neutral-800 dark:text-neutral-300 dark:hover:border-neutral-600 dark:hover:bg-neutral-700'
57+
aria-label='Get help on Discord'
58+
>
59+
<DiscordIcon className='h-[13px] w-[13px]' />
60+
Discord
61+
</Link>
62+
<Link
63+
href='https://sim.ai'
64+
target='_blank'
65+
rel='noopener noreferrer'
66+
className='inline-flex h-[30px] items-center rounded-[5px] bg-[#33C482] px-[10px] font-medium text-[12px] text-[#1b1b1b] transition-colors hover:bg-[#2DAC72]'
67+
aria-label='Go to Sim AI'
68+
>
69+
Mothership
70+
</Link>
5271
<LanguageDropdown />
5372
<ThemeToggle />
5473
</div>

apps/docs/components/page-actions.tsx

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ function ContentCopyButton({ content, className, ...props }: { content: string }
2929
<button
3030
onClick={onClick}
3131
className={cn(
32-
'flex cursor-pointer items-center gap-1.5 rounded-lg border border-border/40 bg-background px-2.5 py-2 text-muted-foreground/60 text-sm leading-none transition-all hover:border-border hover:bg-accent/50 hover:text-muted-foreground',
33-
className,
32+
'inline-flex cursor-pointer items-center justify-center gap-1.5 rounded-lg border border-border/40 bg-background px-2.5 py-1.5 text-muted-foreground/60 text-sm transition-all hover:border-border hover:bg-accent/50 hover:text-muted-foreground',
33+
className
3434
)}
3535
aria-label={checked ? 'Copied to clipboard' : 'Copy page content'}
3636
{...props}
@@ -50,14 +50,16 @@ function ContentCopyButton({ content, className, ...props }: { content: string }
5050
)
5151
}
5252

53-
export function LLMCopyButton({ content, markdownUrl, children, className, ...props }: LLMCopyButtonProps) {
53+
export function LLMCopyButton({
54+
content,
55+
markdownUrl,
56+
children,
57+
className,
58+
...props
59+
}: LLMCopyButtonProps) {
5460
if (markdownUrl) {
5561
return (
56-
<MarkdownCopyButton
57-
markdownUrl={markdownUrl}
58-
className={className}
59-
{...props}
60-
>
62+
<MarkdownCopyButton markdownUrl={markdownUrl} className={className} {...props}>
6163
{children ?? 'Copy Markdown'}
6264
</MarkdownCopyButton>
6365
)
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
---
2+
title: Sim Mailer
3+
description: Send emails to your workspace and let Sim handle them as tasks.
4+
---
5+
6+
import { Callout } from 'fumadocs-ui/components/callout'
7+
import { FAQ } from '@/components/ui/faq'
8+
9+
Sim Mailer gives your workspace a dedicated email address. Forward or send emails to it and Sim will process them as tasks — reading the subject, body, and any attachments, then replying to the thread with the result.
10+
11+
This means you can interact with Sim directly from your email client without switching apps.
12+
13+
## Getting Started
14+
15+
1. Navigate to **Settings****Inbox**
16+
2. Toggle the inbox on
17+
3. Optionally choose a custom address prefix (e.g., `acme``acme@mothership.sim.ai`)
18+
4. Copy your inbox address and start sending emails
19+
20+
If you skip the custom prefix, one is generated automatically.
21+
22+
<Callout type="info">
23+
Changing your address creates a new inbox. The old address stops working immediately.
24+
</Callout>
25+
26+
## What You Can Send
27+
28+
Write your email like you would to a colleague. The subject and body become the task prompt.
29+
30+
**Attachments are fully supported.** Images, PDFs, and documents (up to 10 MB each) are read by Sim and displayed inline in the conversation — image attachments show as previews, just like when you upload them directly in the chat.
31+
32+
| Good email | Why it works |
33+
|------------|-------------|
34+
| "Summarize the attached PDF and list action items" | Clear task with an attachment |
35+
| "What's in this image?" with a photo attached | Sim reads and describes the image |
36+
| "Draft a reply to this forwarded thread" | Uses the email body as context |
37+
38+
## Allowed Senders
39+
40+
Only authorized senders can create tasks. Emails from anyone else are automatically rejected.
41+
42+
- **Workspace members** are allowed by default — no setup needed
43+
- **External senders** can be added manually with an optional label for easy identification
44+
45+
Manage your allowed senders list in **Settings****Inbox****Allowed Senders**.
46+
47+
## Tracking Tasks
48+
49+
Every email becomes a task you can track in **Settings****Inbox**:
50+
51+
- **Search** by subject, sender, or body content
52+
- **Filter** by status to find what you need
53+
- **Click** any completed or failed task to jump to the full conversation
54+
55+
### Task Statuses
56+
57+
| Status | Meaning |
58+
|--------|---------|
59+
| **Received** | Email accepted, queued for processing |
60+
| **Processing** | Sim is actively working on it |
61+
| **Completed** | Done — the result was sent as an email reply |
62+
| **Failed** | Something went wrong during execution |
63+
| **Rejected** | Email blocked (sender not allowed, automated sender, or rate limit exceeded) |
64+
65+
## Conversations
66+
67+
Each email task creates a conversation in your workspace. You can continue the conversation from the Sim chat interface, and any follow-up emails in the same thread are linked to the same conversation.
68+
69+
<FAQ items={[
70+
{ question: "Can I use my own email domain?", answer: "Not currently. All inbox addresses use the @mothership.sim.ai domain. You can customize the prefix (e.g., acme@mothership.sim.ai) but not the domain itself." },
71+
{ question: "What happens if I send from an unauthorized email?", answer: "The email is automatically rejected. Only workspace members and manually added external senders can create tasks." },
72+
{ question: "Is there a size limit for attachments?", answer: "Yes, each attachment can be up to 10 MB. Images, PDFs, and common document formats are supported." },
73+
{ question: "Can I reply to Sim's email responses?", answer: "Yes. Replies in the same email thread are linked to the original conversation, so you can continue the interaction from your email client." },
74+
{ question: "How long does it take to process an email?", answer: "Most emails are processed within a few seconds. Emails with large attachments or complex tasks may take slightly longer." },
75+
{ question: "Can multiple people in my workspace use the same inbox?", answer: "Yes. All workspace members can send to the shared inbox address. Each email creates its own task and conversation." },
76+
]} />

apps/docs/content/docs/de/meta.json

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,32 @@
11
{
2-
"title": "Sim Documentation",
2+
"title": "Sim-Dokumentation",
33
"pages": [
4+
"---Grundlagen---",
45
"./introduction/index",
56
"./getting-started/index",
6-
"./quick-reference/index",
7+
"---Kernkonzepte---",
78
"triggers",
89
"blocks",
910
"tools",
1011
"connections",
12+
"knowledgebase",
13+
"tables",
14+
"---Integrationen---",
1115
"mcp",
1216
"copilot",
17+
"mailer",
1318
"skills",
14-
"knowledgebase",
19+
"---Sicherheit & Konfiguration---",
1520
"variables",
1621
"credentials",
17-
"execution",
1822
"permissions",
23+
"---Ausführung & Betrieb---",
24+
"execution",
25+
"---Bereitstellung---",
1926
"self-hosting",
2027
"./enterprise/index",
28+
"---Referenz---",
29+
"./quick-reference/index",
2130
"./keyboard-shortcuts/index"
2231
],
2332
"defaultOpen": false

0 commit comments

Comments
 (0)