Skip to content

Commit 4688a21

Browse files
authored
Merge pull request #85 from objectstack-ai/copilot/update-documentation-site-to-fumadocs
2 parents 5bce7b3 + d468af2 commit 4688a21

File tree

26 files changed

+3944
-592
lines changed

26 files changed

+3944
-592
lines changed

.github/workflows/check-links.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ on:
66
- main
77
paths:
88
- '**/*.md'
9-
- 'docs/**/*'
9+
- 'apps/site/content/**/*.mdx'
1010
pull_request:
1111
paths:
1212
- '**/*.md'
13-
- 'docs/**/*'
13+
- 'apps/site/content/**/*.mdx'
1414
schedule:
1515
# Run weekly on Sundays at 00:00 UTC
1616
- cron: '0 0 * * 0'
@@ -25,7 +25,7 @@ jobs:
2525
- name: Check links in Markdown files
2626
uses: lycheeverse/lychee-action@v2
2727
with:
28-
args: --verbose --no-progress '**/*.md' 'docs/**/*.md'
28+
args: --verbose --no-progress '**/*.md' 'apps/site/content/**/*.mdx'
2929
fail: true
3030
env:
3131
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/pr-title-check.yml

Lines changed: 0 additions & 64 deletions
This file was deleted.

apps/site/.gitignore

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# dependencies
2+
/node_modules
3+
/.pnp
4+
.pnp.js
5+
6+
# testing
7+
/coverage
8+
9+
# next.js
10+
/.next/
11+
/out/
12+
13+
# production
14+
/build
15+
16+
# misc
17+
.DS_Store
18+
*.pem
19+
20+
# debug
21+
npm-debug.log*
22+
yarn-debug.log*
23+
yarn-error.log*
24+
25+
# local env files
26+
.env*.local
27+
.env
28+
29+
# vercel
30+
.vercel
31+
32+
# typescript
33+
*.tsbuildinfo
34+
next-env.d.ts
35+
36+
# fumadocs
37+
.source
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import { source } from '@/lib/source';
2+
import { DocsBody, DocsPage } from 'fumadocs-ui/layouts/docs/page';
3+
import { notFound } from 'next/navigation';
4+
import type { Metadata } from 'next';
5+
6+
export default async function Page(props: {
7+
params: Promise<{ slug?: string[] }>;
8+
}) {
9+
const params = await props.params;
10+
const page = source.getPage(params.slug);
11+
12+
if (!page) notFound();
13+
14+
const MDX = (page.data as any)._exports?.default || (page.data as any).exports?.default;
15+
16+
return (
17+
<DocsPage
18+
toc={(page.data as any).toc ?? []}
19+
full={false}
20+
>
21+
<DocsBody>
22+
<h1>{page.data.title}</h1>
23+
{MDX && <MDX />}
24+
</DocsBody>
25+
</DocsPage>
26+
);
27+
}
28+
29+
export function generateStaticParams() {
30+
return source.generateParams();
31+
}
32+
33+
export async function generateMetadata(props: {
34+
params: Promise<{ slug?: string[] }>;
35+
}): Promise<Metadata> {
36+
const params = await props.params;
37+
const page = source.getPage(params.slug);
38+
39+
if (!page) notFound();
40+
41+
return {
42+
title: page.data.title,
43+
description: page.data.description ?? '',
44+
};
45+
}

apps/site/app/docs/layout.tsx

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import { docs } from '../../.source/server';
2+
import { DocsLayout } from 'fumadocs-ui/layouts/docs';
3+
import type { ReactNode } from 'react';
4+
import { pageTree } from '@/lib/page-tree';
5+
6+
export default function Layout({ children }: { children: ReactNode }) {
7+
return (
8+
<DocsLayout
9+
tree={pageTree}
10+
nav={{
11+
title: 'ObjectOS',
12+
url: '/',
13+
}}
14+
links={[
15+
{
16+
text: 'GitHub',
17+
url: 'https://github.com/objectstack-ai/objectos',
18+
},
19+
]}
20+
>
21+
{children}
22+
</DocsLayout>
23+
);
24+
}

apps/site/app/global.css

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
@tailwind base;
2+
@tailwind components;
3+
@tailwind utilities;
4+
5+
@layer base {
6+
:root {
7+
--background: 0 0% 100%;
8+
--foreground: 222.2 84% 4.9%;
9+
--card: 0 0% 100%;
10+
--card-foreground: 222.2 84% 4.9%;
11+
--popover: 0 0% 100%;
12+
--popover-foreground: 222.2 84% 4.9%;
13+
--primary: 222.2 47.4% 11.2%;
14+
--primary-foreground: 210 40% 98%;
15+
--secondary: 210 40% 96.1%;
16+
--secondary-foreground: 222.2 47.4% 11.2%;
17+
--muted: 210 40% 96.1%;
18+
--muted-foreground: 215.4 16.3% 46.9%;
19+
--accent: 210 40% 96.1%;
20+
--accent-foreground: 222.2 47.4% 11.2%;
21+
--destructive: 0 84.2% 60.2%;
22+
--destructive-foreground: 210 40% 98%;
23+
--border: 214.3 31.8% 91.4%;
24+
--input: 214.3 31.8% 91.4%;
25+
--ring: 222.2 84% 4.9%;
26+
}
27+
28+
.dark {
29+
--background: 222.2 84% 4.9%;
30+
--foreground: 210 40% 98%;
31+
--card: 222.2 84% 4.9%;
32+
--card-foreground: 210 40% 98%;
33+
--popover: 222.2 84% 4.9%;
34+
--popover-foreground: 210 40% 98%;
35+
--primary: 210 40% 98%;
36+
--primary-foreground: 222.2 47.4% 11.2%;
37+
--secondary: 217.2 32.6% 17.5%;
38+
--secondary-foreground: 210 40% 98%;
39+
--muted: 217.2 32.6% 17.5%;
40+
--muted-foreground: 215 20.2% 65.1%;
41+
--accent: 217.2 32.6% 17.5%;
42+
--accent-foreground: 210 40% 98%;
43+
--destructive: 0 62.8% 30.6%;
44+
--destructive-foreground: 210 40% 98%;
45+
--border: 217.2 32.6% 17.5%;
46+
--input: 217.2 32.6% 17.5%;
47+
--ring: 212.7 26.8% 83.9%;
48+
}
49+
}

apps/site/app/layout.tsx

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import './global.css';
2+
import { RootProvider } from 'fumadocs-ui/provider/next';
3+
import { Inter } from 'next/font/google';
4+
import type { ReactNode } from 'react';
5+
6+
const inter = Inter({
7+
subsets: ['latin'],
8+
});
9+
10+
export default function Layout({ children }: { children: ReactNode }) {
11+
return (
12+
<html lang="en" className={inter.className} suppressHydrationWarning>
13+
<body>
14+
<RootProvider>{children}</RootProvider>
15+
</body>
16+
</html>
17+
);
18+
}
19+
20+
export const metadata = {
21+
title: {
22+
default: 'ObjectOS',
23+
template: '%s | ObjectOS',
24+
},
25+
description: 'The Business Operating System - Orchestrate Identity, Workflows, and Local-First Sync',
26+
};

apps/site/app/page.tsx

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import Link from 'next/link';
2+
3+
export default function HomePage() {
4+
return (
5+
<main className="flex flex-col items-center justify-center min-h-screen p-8 bg-gradient-to-b from-background to-muted/20">
6+
<div className="max-w-4xl mx-auto text-center space-y-8">
7+
<h1 className="text-6xl font-bold tracking-tight">
8+
Object<span className="text-primary">OS</span>
9+
</h1>
10+
<p className="text-2xl text-muted-foreground font-medium">
11+
The Business Operating System
12+
</p>
13+
<p className="text-xl text-muted-foreground max-w-2xl mx-auto">
14+
Orchestrate Identity, Workflows, and Local-First Sync in one unified runtime.
15+
The Kernel for your Enterprise.
16+
</p>
17+
<div className="flex gap-4 justify-center pt-8">
18+
<Link
19+
href="/docs"
20+
className="px-8 py-3 rounded-lg bg-primary text-primary-foreground font-semibold hover:bg-primary/90 transition-colors"
21+
>
22+
Get Started
23+
</Link>
24+
<Link
25+
href="/docs/guide/architecture"
26+
className="px-8 py-3 rounded-lg border border-border font-semibold hover:bg-accent transition-colors"
27+
>
28+
Architecture
29+
</Link>
30+
</div>
31+
</div>
32+
</main>
33+
);
34+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
---
2+
title: Getting Started
3+
description: Get started with ObjectOS
4+
---
5+
6+
# Getting Started with ObjectOS
7+
8+
Welcome to ObjectOS! This guide will help you get up and running quickly.
9+
10+
## What is ObjectOS?
11+
12+
ObjectOS is the **Business Operating System** for the ObjectStack ecosystem. It provides:
13+
14+
- **Centralized State Management**
15+
- **Identity and Access Control**
16+
- **Workflow Automation**
17+
- **Plugin Architecture**
18+
- **Offline-First Synchronization**
19+
20+
## Prerequisites
21+
22+
Before you begin, ensure you have:
23+
24+
- Node.js 18+ installed
25+
- pnpm package manager
26+
- Basic understanding of TypeScript
27+
28+
## Next Steps
29+
30+
Continue to [Installation](/getting-started/installation) to set up your development environment.

0 commit comments

Comments
 (0)