fix(docs): align OSS docs presentation and SEO (#17809)

This commit is contained in:
Neil
2026-08-31 22:34:53 -07:00
committed by GitHub
parent 2e30187560
commit bf62abc3c9
14 changed files with 75 additions and 6 deletions
@@ -89,6 +89,11 @@ On the computer you want to use as the client:
caption="On the client: name the server, paste its access link, and add it. The pairing code is redacted in this example."
/>
<ImagePlaceholder
src="/docs/remote-server-share-desktop.png"
caption="Share an Orca desktop runtime with another client over a private network."
/>
Adding a server saves it without forcing every new project onto it. Open **Advanced → Active Server** only when you want server-routed projects, terminals, provider checks, and browser or mobile handoff to use that server by default.
## Use the remote server
@@ -2,8 +2,12 @@
title: Annotate AI Diff
---
import { ImagePlaceholder } from '@/components/docs/prose';
Annotate AI Diff is Orca's inline review loop for agent-generated code. You leave comments on any line of any AI-generated hunk, then send them back to the agent as a single batch for revision — no copying line numbers, no context-switching.
<ImagePlaceholder src="/docs/annotate-ai-diff.gif" caption="Annotate a generated diff and send one batch of line-level notes back to the agent" />
## Leave a comment
1. Hover any line in the diff. A **+** appears in the gutter.
+5
View File
@@ -82,6 +82,11 @@ Providers people wire today include Vercel Sandbox, Fly, Modal, plain SSH hosts,
caption="Settings → Experimental → Cloud VM — enable the skill, then have an agent set up a recipe for the repo."
/>
<ImagePlaceholder
src="/docs/ways-to-run-local-sidebar.png"
caption="Choose a local or remote run target from the workspace sidebar."
/>
**Good fit when:** you want clean isolation per task, disposable compute, or a standard environment every agent boots into.
**Setup sketch:**
Binary file not shown.

After

Width:  |  Height:  |  Size: 197 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

+13
View File
@@ -0,0 +1,13 @@
import type { MetadataRoute } from 'next'
import { source } from '@/lib/source'
const siteUrl = 'https://www.onorca.dev'
export default function sitemap(): MetadataRoute.Sitemap {
return source.getPages().map((page) => ({
url: `${siteUrl}${page.url}`,
lastModified: new Date(),
changeFrequency: 'weekly',
priority: page.url === '/docs' ? 0.9 : 0.7
}))
}
+3 -1
View File
@@ -44,7 +44,9 @@ export default function RootLayout({
return (
<html lang="en" className="bg-background text-foreground" suppressHydrationWarning>
<body className="font-sans antialiased" suppressHydrationWarning>
<RootProvider search={{ enabled: false }}>{children}</RootProvider>
<RootProvider search={{ enabled: false }} theme={{ defaultTheme: 'dark' }}>
{children}
</RootProvider>
</body>
</html>
)
@@ -62,6 +62,16 @@ export function DocsFooter() {
Discord
</a>
</li>
<li>
<a
href="https://x.com/orca_build"
target="_blank"
rel="noopener noreferrer"
className="rounded-md px-1 py-0.5 transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/50"
>
X
</a>
</li>
</ul>
</div>
</div>
+35 -5
View File
@@ -1,9 +1,32 @@
import Link from 'next/link'
import Image from 'next/image'
import { GitBranch, MessageCircle, X } from 'lucide-react'
import { MessageCircle, Star } from 'lucide-react'
import { ThemeSwitch } from 'fumadocs-ui/layouts/shared/slots/theme-switch'
export function DocsHeader() {
async function getGithubStars(): Promise<number | undefined> {
try {
const response = await fetch('https://api.github.com/repos/stablyai/orca', {
headers: { Accept: 'application/vnd.github+json' },
next: { revalidate: 3600 }
})
if (!response.ok) {
return undefined
}
const payload = (await response.json()) as { stargazers_count?: unknown }
return typeof payload.stargazers_count === 'number' ? payload.stargazers_count : undefined
} catch {
return undefined
}
}
function formatStars(stars: number): string {
return stars >= 1000 ? `${(stars / 1000).toFixed(1).replace(/\.0$/, '')}k` : String(stars)
}
export async function DocsHeader() {
const stars = await getGithubStars()
const formattedStars = stars === undefined ? undefined : formatStars(stars)
return (
<header className="fixed inset-x-0 top-0 z-30 border-b border-border bg-background/95 backdrop-blur-xl supports-[backdrop-filter]:bg-background/85">
<div className="container mx-auto flex h-14 max-w-[1200px] items-center justify-between gap-4 px-4">
@@ -61,7 +84,9 @@ export function DocsHeader() {
className="hidden size-8 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/50 sm:flex"
aria-label="Follow Orca on X"
>
<X className="size-4" aria-hidden="true" />
<span aria-hidden="true" className="text-[15px] font-semibold leading-none">
𝕏
</span>
</a>
<a
href="https://github.com/stablyai/orca"
@@ -69,8 +94,13 @@ export function DocsHeader() {
rel="noopener noreferrer"
className="inline-flex items-center gap-1.5 rounded-md px-2 py-1 text-[13px] font-medium text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/50"
>
<GitBranch className="size-4" aria-hidden="true" />
GitHub
<Star className="size-3.5 fill-current" aria-hidden="true" />
<span>Star</span>
{formattedStars && (
<span className="rounded-full bg-accent px-1.5 py-0.5 text-[11px] font-semibold text-foreground">
{formattedStars}
</span>
)}
</a>
</div>
</div>