Skip to content

Commit 6b0c914

Browse files
os-zhuangclaude
andauthored
feat(docs): landing page at / + self-hosted logo assets (#3088)
The objectstack.ai marketing site is being retired (repo archived, domain will 301 here), making the docs site the project homepage: - `/` now renders a one-screen hero (get started / documentation / GitHub + ObjectOS cross-link) instead of redirecting to /docs - nav logo + favicon served from public/ instead of hot-linking https://objectstack.ai — that URL already 500s today, so the nav logo and favicon were broken in production - top nav gains Docs / Blog links (visible on the HomeLayout pages) - drop the now-unused objectstack.ai images.remotePatterns entry Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
1 parent 9dbb883 commit 6b0c914

6 files changed

Lines changed: 82 additions & 25 deletions

File tree

apps/docs/app/[lang]/page.tsx

Lines changed: 64 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,67 @@
1-
import { redirect } from 'next/navigation';
2-
import { i18n } from '@/lib/i18n';
1+
import type { Metadata } from 'next';
2+
import Link from 'next/link';
3+
import { ArrowRight } from 'lucide-react';
4+
import { HomeLayout } from 'fumadocs-ui/layouts/home';
5+
import { baseOptions, gitConfig } from '@/lib/layout.shared';
36

4-
export default async function HomePage({
5-
params,
6-
}: {
7-
params: Promise<{ lang: string }>;
8-
}) {
9-
const { lang } = await params;
7+
export const metadata: Metadata = {
8+
title: {
9+
absolute: 'ObjectStack — a metadata protocol and TypeScript toolkit for AI-native business apps',
10+
},
11+
description:
12+
'Describe objects, permissions, workflows, APIs, UI, and AI tools once as typed Zod metadata — ObjectStack derives the TypeScript types, REST API, client SDK, UI, and MCP tools.',
13+
};
1014

11-
redirect(lang === i18n.defaultLanguage ? '/docs' : `/${lang}/docs`);
15+
export default function HomePage() {
16+
return (
17+
<HomeLayout {...baseOptions()}>
18+
<section className="flex flex-1 flex-col items-center justify-center px-4 py-24 text-center md:py-32">
19+
<span className="mb-6 rounded-full border border-fd-border px-3 py-1 text-xs font-medium text-fd-muted-foreground">
20+
Open source · Apache-2.0
21+
</span>
22+
<h1 className="max-w-3xl text-4xl font-bold tracking-tight text-balance md:text-5xl">
23+
A metadata protocol and TypeScript toolkit for AI-native business apps
24+
</h1>
25+
<p className="mt-6 max-w-2xl text-lg text-fd-muted-foreground text-pretty">
26+
Describe your objects, permissions, workflows, APIs, UI, and AI tools once as typed,
27+
version-controlled Zod metadata. ObjectStack derives the TypeScript types, REST API,
28+
client SDK, UI, and MCP tools from that single definition.
29+
</p>
30+
<div className="mt-10 flex flex-wrap items-center justify-center gap-3">
31+
<Link
32+
href="/docs/getting-started"
33+
className="inline-flex items-center gap-2 rounded-full bg-fd-primary px-6 py-2.5 text-sm font-medium text-fd-primary-foreground transition-colors hover:bg-fd-primary/90"
34+
>
35+
Get started
36+
<ArrowRight className="size-4" />
37+
</Link>
38+
<Link
39+
href="/docs"
40+
className="inline-flex items-center rounded-full border border-fd-border px-6 py-2.5 text-sm font-medium transition-colors hover:bg-fd-accent hover:text-fd-accent-foreground"
41+
>
42+
Documentation
43+
</Link>
44+
<a
45+
href={`https://github.com/${gitConfig.user}/${gitConfig.repo}`}
46+
target="_blank"
47+
rel="noreferrer noopener"
48+
className="inline-flex items-center rounded-full border border-fd-border px-6 py-2.5 text-sm font-medium transition-colors hover:bg-fd-accent hover:text-fd-accent-foreground"
49+
>
50+
GitHub
51+
</a>
52+
</div>
53+
<p className="mt-16 text-sm text-fd-muted-foreground">
54+
ObjectStack is the open-source developer framework.{' '}
55+
Need the official hosted runtime with AI built in?{' '}
56+
<a
57+
href="https://www.objectos.ai"
58+
className="inline-flex items-center gap-1 font-medium text-fd-foreground underline underline-offset-4 transition-colors hover:text-fd-primary"
59+
>
60+
Try ObjectOS
61+
<ArrowRight className="size-3.5" />
62+
</a>
63+
</p>
64+
</section>
65+
</HomeLayout>
66+
);
1267
}

apps/docs/app/favicon.ico

25.3 KB
Binary file not shown.

apps/docs/app/layout.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export const metadata: Metadata = {
99
},
1010
description: 'Documentation for the ObjectStack Protocol and runtime.',
1111
icons: {
12-
icon: 'https://objectstack.ai/logo.png',
12+
icon: '/logo.svg',
1313
},
1414
};
1515

apps/docs/lib/layout.shared.tsx

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import type { BaseLayoutProps } from 'fumadocs-ui/layouts/shared';
2-
import Image from 'next/image';
32

43
export const gitConfig = {
54
user: 'objectstack-ai',
@@ -12,16 +11,16 @@ export function baseOptions(): BaseLayoutProps {
1211
nav: {
1312
title: (
1413
<div className="flex items-center gap-2 font-bold">
15-
<Image
16-
src="https://objectstack.ai/logo.svg"
17-
alt="ObjectStack"
18-
width={30}
19-
height={30}
20-
/>
14+
{/* Served from public/ — the retired objectstack.ai marketing site no longer hosts assets. */}
15+
<img src="/logo.svg" alt="ObjectStack" width={30} height={30} />
2116
ObjectStack
2217
</div>
2318
),
2419
},
20+
links: [
21+
{ text: 'Docs', url: '/docs', active: 'nested-url' },
22+
{ text: 'Blog', url: '/blog', active: 'nested-url' },
23+
],
2524
githubUrl: `https://github.com/${gitConfig.user}/${gitConfig.repo}`,
2625
};
2726
}

apps/docs/next.config.mjs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,6 @@ const config = {
1919
'lucide-react': './node_modules/lucide-react',
2020
},
2121
},
22-
images: {
23-
remotePatterns: [
24-
{
25-
protocol: 'https',
26-
hostname: 'objectstack.ai',
27-
},
28-
],
29-
},
3022
async redirects() {
3123
return toNextRedirects();
3224
},

apps/docs/public/logo.svg

Lines changed: 11 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)