Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
47d6d89
Reframe TanStack AI messaging around who owns what
tombeckenham Sep 7, 2026
79ae06f
Replace AI hero graphic with a wireframe placeholder
tombeckenham Sep 8, 2026
c46ffa6
Add write-once hero, compiler visual, and request path to AI landing
tombeckenham Sep 8, 2026
9681869
Drop the SDK wording from the AI headline
tombeckenham Sep 8, 2026
634b9ef
Stop layout shift on the AI landing page
tombeckenham Sep 8, 2026
3563af0
Add the TanStack AI coverage page
tombeckenham Sep 8, 2026
587be09
Move AI coverage to /ai/coverage and rebuild it as a component
tombeckenham Sep 8, 2026
b48a8ec
Add an Adapters tab to the AI docs nav with a runtime adapter list
tombeckenham Sep 8, 2026
d587b04
Replace the AI adapters page with a docs nav tab
tombeckenham Sep 8, 2026
3a68503
Tighten the AI landing page and make the typesafe model demo real
tombeckenham Sep 9, 2026
ead5a12
Fix the typesafe workbench on narrow screens
tombeckenham Sep 9, 2026
a977726
Address review comments on the AI landing page
tombeckenham Sep 9, 2026
7c5deae
Use canonical Tailwind v4 class forms on the landing components
tombeckenham Sep 9, 2026
888c2e7
Match the AI catalog copy to the landing hero and drop the unused ai.tsx
tombeckenham Sep 9, 2026
116aa08
Tighten landing copy and match the Omni note to its snippet
tombeckenham Sep 9, 2026
9b45ede
Make the AI landing graphics interactive
tombeckenham Sep 9, 2026
fd87ff5
Make the persistence backends clickable
tombeckenham Sep 9, 2026
ebdb531
Tweak the AI landing headline and start-here title
tombeckenham Sep 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2,450 changes: 1,480 additions & 970 deletions src/components/landing/AiLanding.tsx

Large diffs are not rendered by default.

39 changes: 39 additions & 0 deletions src/components/landing/LandingPromptBox.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import { CheckCircleIcon } from '@phosphor-icons/react/CheckCircle'
import { CopyIcon } from '@phosphor-icons/react/Copy'
import { useCopyButton } from '~/components/CopyMarkdownButton'
import { copyTextToClipboard } from '~/utils/browser-effects'

export function LandingPromptBox({
heading,
prompt,
}: {
heading: string
prompt: string
}) {
const [copied, onCopy] = useCopyButton(() => copyTextToClipboard(prompt))
Comment thread
tombeckenham marked this conversation as resolved.

return (
<div className="mt-6 w-full max-w-136 rounded-lg border border-border-default bg-background-surface px-4 py-3">
<div className="flex items-start gap-3">
<p className="min-w-0 flex-1 font-ds-mono text-ds-mono-caps-xs uppercase text-text-primary/65">
{heading}
</p>
<button
type="button"
onClick={onCopy}
className="inline-flex shrink-0 items-center gap-1.5 font-ds-mono text-ds-mono-caps-xs uppercase text-text-secondary transition-colors hover:text-text-primary"
>
{copied ? (
<CheckCircleIcon size={16} aria-hidden="true" />
) : (
<CopyIcon size={16} aria-hidden="true" />
)}
{copied ? 'Copied' : 'Copy prompt'}
</button>
</div>
<p className="mt-2 text-ds-body-sm text-text-primary sm:text-ds-body-md">
{prompt}
</p>
</div>
)
}
115 changes: 61 additions & 54 deletions src/components/landing/LibraryLanding.tsx

Large diffs are not rendered by default.

55 changes: 0 additions & 55 deletions src/libraries/ai.tsx

This file was deleted.

5 changes: 3 additions & 2 deletions src/libraries/libraries.ts
Original file line number Diff line number Diff line change
Expand Up @@ -691,9 +691,10 @@ export const ai: LibrarySlim = {
...categoryStyles.data,
name: 'TanStack AI',
to: '/ai/latest',
tagline: 'The headless agent framework for TypeScript. Bring your own stack',
tagline:
'AI building blocks for TypeScript. We build the hard parts, you keep the stack.',
description:
'TanStack AI is a pluggable AI ecosystem that makes it easy for you to build AI features into your apps. Provide tools to LLMs, interrupt chat for user approval, run agents in sandboxes, build headless chat UI, stream from your server to your client, and connect to any AG-UI compatible server or client. Bring your own infrastructure. We offer the pluggable APIs to build on top of.',
'TanStack AI is a TypeScript library for building AI features and agents. It ships the agent loop, provider adapters, durability, interrupts, sandboxes, and tools, and plugs into the server, database, and UI you already have.',
badge: 'RC',
repo: 'tanstack/ai',
frameworks: [
Expand Down
11 changes: 11 additions & 0 deletions src/styles/app.css
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,17 @@ html.theme-switching *::after {
--color-gray-800: #332d24;
--color-gray-900: #201b15;
--color-gray-950: #111111;

--animate-shimmer: shimmer 2.4s ease-in-out infinite;
@keyframes shimmer {
0%,
40% {
transform: translateX(-150%);
}
100% {
transform: translateX(250%);
}
}
}

/* Keep neutral grays stable before client CSS injection reorders Tailwind layers. */
Expand Down
3 changes: 3 additions & 0 deletions src/utils/docsNavTabs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ export const docsNavTabIds = [
'get-started',
'tutorial',
'guides',
'adapters',
'api',
'examples',
] as const
Expand All @@ -17,6 +18,8 @@ export const docsNavTabs: Array<{ id: DocsNavTabId; label: string }> = [
{ id: 'get-started', label: 'Get Started' },
{ id: 'tutorial', label: 'Tutorial' },
{ id: 'guides', label: 'Guides' },
// Only shown for libraries whose docs config tags sections with it.
{ id: 'adapters', label: 'Adapters' },
{ id: 'api', label: 'API' },
{ id: 'examples', label: 'Examples' },
]
Expand Down
Loading