Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 2 additions & 2 deletions content/domain.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Here's the key insight: **your domain namespace IS the `$context`** - and this w

### Semantic Context (JSON-LD)

In [mdxld](https://mdxld.org), every domain defines a JSON-LD `@context` that gives semantic meaning to your data:
In [MDXLD](https://mdx.org.ai), every domain defines a linked-data context that gives semantic meaning to your data. MDXLD writes it `$context` rather than JSON-LD's `@context`:

```yaml
$context: https://acme.do/
Expand Down Expand Up @@ -209,4 +209,4 @@ This is why domains are so powerful: they're not just organizational units or UR
- [Thing](/thing) - Instances within a domain
- [Function](/function) - Capabilities exposed by a domain
- [Agent](/agent) - Actors operating within domains
- [mdxld](https://mdxld.org) - MDX with Linked Data and `$context`
- [MDXLD](https://mdx.org.ai) - our extension of [MDX](https://mdxjs.com), with `$id` / `$type` / `$context` frontmatter (also served at [mdxld.org](https://mdxld.org))
18 changes: 17 additions & 1 deletion content/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ description: The fundamental abstractions for building AI-native software
# Build Business-as-Code & AI-Delivered Services-as-Software

Primitives for building software where humans and AI work together seamlessly.
From functions to businesses, every layer is designed for the age of AI.
From functions to businesses, every one of them is designed for the age of AI.

<Cards columns={3}>
<Card icon={<Code />} title="Function" href="/function">
Expand Down Expand Up @@ -38,6 +38,22 @@ From functions to businesses, every layer is designed for the age of AI.
</Card>
</Cards>

## How it is written down

Two of the primitives are not runtime objects but the format everything else is authored
in, and they are documented on their own sites rather than restated here:

- **[MDXLD](https://mdx.org.ai)** — our extension of [MDX](https://mdxjs.com). MDX is an
**open standard authored by the MDX community**, not by us; MDXLD is ours, a **superset**
of MDX whose frontmatter is in turn a superset of YAML-LD. Every valid MDX document is
already a valid MDXLD document. The `$id` and `$type` keys are not our invention either —
they come from the linked-data community's dollar-convenience context. Our one real
deviation is `$context`, which is always
[`https://schema.org.ai`](https://schema.org.ai), unversioned.
Also served at [mdxld.org](https://mdxld.org).
- **MDXUI** — components and layouts selected from a document's `$type`. Its home
(`ui.org.ai`) is not yet serving; until it does, the packages are the documentation.

## Built for the AI Era

The age of AI requires new primitives. Traditional software abstractions assume deterministic execution and human-only workflows.
Expand Down
2 changes: 1 addition & 1 deletion content/noun.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ const Customer = Noun('Customer', {
})

// AI now understands what "Customer" means at acme.do
// - semantically (JSON-LD @context)
// - semantically (MDXLD $context)
// - cognitively (how to reason about customers)
```

Expand Down
10 changes: 7 additions & 3 deletions site/app/(docs)/[[...slug]]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,15 @@ export async function generateMetadata(props: PageProps<'/[[...slug]]'>): Promis
const page = source.getPage(params.slug ?? [])
if (!page) notFound()

/* Every docs page gets its own generated card from app/og/[...slug]. The
home page is the exception: it is the one the estate links to, and it has
a hand-built card of its own in the root layout. Overriding it here would
replace that card with the generic template. */
const isHome = (params.slug ?? []).length === 0

return {
title: page.data.title,
description: page.data.description,
openGraph: {
images: getPageImage(page).url,
},
...(isHome ? {} : { openGraph: { images: getPageImage(page).url } }),
}
}
35 changes: 31 additions & 4 deletions site/app/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ export const metadata: Metadata = {
template: '%s | Primitives.org.ai',
},
description:
'The fundamental abstractions for building AI-native software. Functions, Databases, Workflows, Agents, Products, Services, and Businesses.',
'The fundamental abstractions for building AI-native software — from Functions and Agents through Services and Businesses, authored in MDXLD.',
keywords: [
'AI',
'primitives',
Expand All @@ -40,18 +40,22 @@ export const metadata: Metadata = {
description: 'The fundamental abstractions for building AI-native software.',
images: [
{
url: '/og-image.png',
url: '/og.png',
width: 1200,
height: 630,
alt: 'Primitives.org.ai',
type: 'image/png',
alt: 'Primitives.org.ai — Build Business-as-Code & AI-Delivered Services-as-Software. The fundamental abstractions for building AI-native software.',
},
],
},
twitter: {
card: 'summary_large_image',
title: 'Primitives.org.ai',
description: 'The fundamental abstractions for building AI-native software.',
images: ['/og-image.png'],
images: ['/og.png'],
},
alternates: {
canonical: './',
},
robots: {
index: true,
Expand All @@ -71,6 +75,29 @@ export default function Layout({ children }: LayoutProps<'/'>) {
<html lang="en" className={inter.className} suppressHydrationWarning>
<body className="flex flex-col min-h-screen">
<RootProvider>{children}</RootProvider>
<footer className="border-t border-fd-border px-6 py-6 text-sm text-fd-muted-foreground">
<p>
The primitives are documented by{' '}
<a href="https://foundation.org.ai" className="underline">
The Org.AI Foundation
</a>
. They are authored in{' '}
<a href="https://mdx.org.ai" className="underline">
MDXLD
</a>
, our extension of{' '}
<a href="https://mdxjs.com" className="underline">
MDX
</a>
&nbsp;— an open standard authored by the MDX community.
</p>
<p className="mt-1 opacity-70">
Vocabulary at{' '}
<a href="https://schema.org.ai" className="underline">
schema.org.ai
</a>
</p>
</footer>
</body>
</html>
)
Expand Down
8 changes: 7 additions & 1 deletion site/app/llms-full.txt/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,11 @@ export async function GET() {
const scan = source.getPages().map(getLLMText);
const scanned = await Promise.all(scan);

return new Response(scanned.join('\n\n'));
const header = `# Primitives.org.ai — full documentation

Documented by The Org.AI Foundation: https://foundation.org.ai
Authored in MDXLD (https://mdx.org.ai), our extension of MDX (https://mdxjs.com, an open standard authored by the MDX community).
`;

return new Response([header, ...scanned].join('\n\n'));
}
8 changes: 7 additions & 1 deletion site/app/llms.txt/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ export async function GET() {

> The fundamental abstractions for building AI-native software.

Primitives.org.ai provides seven core primitives that compose together to build anything—from simple functions to entire businesses.
Primitives.org.ai documents the primitives that compose together to build anything—from simple functions to entire businesses. Most are runtime objects; MDXLD and MDXUI are the format everything else is authored in.

## Core Primitives

Expand All @@ -25,6 +25,12 @@ Primitives.org.ai provides seven core primitives that compose together to build
- **Product**: Compose primitives into complete products with declarative interfaces.
- **Service**: Services-as-Software—AI delivering work traditionally done by humans.
- **Business**: Business-as-Code—traditional processes manifested as code.
- **MDXLD**: The authoring format. Our extension of MDX (an open standard authored by the MDX community, https://mdxjs.com), with linked-data frontmatter that is a superset of YAML-LD. $id and $type come from the linked-data community's dollar-convenience context; our one deviation is $context, always https://schema.org.ai, unversioned. Documented at https://mdx.org.ai
- **MDXUI**: Components and layouts selected from a document's $type.

## Stewardship

The primitives are documented by The Org.AI Foundation: https://foundation.org.ai

## Documentation

Expand Down
5 changes: 5 additions & 0 deletions site/lib/layout.shared.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@ export function baseOptions(): BaseLayoutProps {
</>
),
},
links: [
{ text: 'MDXLD', url: 'https://mdx.org.ai', external: true },
{ text: 'schema.org.ai', url: 'https://schema.org.ai', external: true },
{ text: 'The Org.AI Foundation', url: 'https://foundation.org.ai', external: true },
],
githubUrl: 'https://github.com/dot-org-ai/primitives.org.ai',
};
}
88 changes: 88 additions & 0 deletions site/og-card.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
<!doctype html>
<!-- Source for site/public/og.png (1200×630). Rendered by headless Chrome:

"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
--headless=new --disable-gpu --hide-scrollbars \
--screenshot=site/public/og.png --window-size=1200,630 \
--allow-file-access-from-files "file://$PWD/site/og-card.html"

The PNG is committed so an ordinary build never needs a browser.
Layout mirrors foundation.org.ai's card (thin accent edge at left,
wordmark, claim, domain) — one family, one shape.

Palette: fumadocs' stock `neutral` preset (site/app/global.css), which
is entirely achromatic. The one real colour in this repo is #C3E4F3,
the fill of site/public/org-ai.svg — the mark the navbar actually
renders — so that is the accent. -->
<html lang="en">
<head>
<meta charset="utf-8">
<style>
:root {
--bg: #121212; /* --color-fd-background dark: 0 0% 7.04% */
--fg: #ebebeb; /* --color-fd-foreground dark: 0 0% 92% */
--accent: #c3e4f3; /* org-ai.svg, the only brand colour here */
--muted: #b0b0b0;
--dim: #7a7a7a;
--line: rgba(255, 255, 255, 0.16);
--sans: "Inter", ui-sans-serif, system-ui, -apple-system,
BlinkMacSystemFont, sans-serif;
--mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
"Liberation Mono", "Courier New", monospace;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
html, body { width: 1200px; height: 630px; }
body {
background: var(--bg);
font-family: var(--sans);
color: var(--fg);
position: relative;
overflow: hidden;
-webkit-font-smoothing: antialiased;
}
.edge {
position: absolute; left: 96px; top: 96px; bottom: 96px;
width: 6px; background: var(--accent);
}
.in {
position: absolute; left: 150px; right: 96px; top: 96px; bottom: 96px;
display: flex; flex-direction: column; justify-content: space-between;
}
.wordmark {
font-size: 30px; font-weight: 600; letter-spacing: -0.01em;
color: var(--muted);
}
.body { display: flex; flex-direction: column; gap: 26px; }
.claim {
font-size: 56px; font-weight: 650; line-height: 1.14;
letter-spacing: -0.03em; color: var(--fg); max-width: 950px;
}
.claim em { font-style: normal; color: var(--accent); }
.sub {
font-size: 26px; font-weight: 400; line-height: 1.44;
color: var(--dim); max-width: 900px;
}
.foot { display: flex; flex-direction: column; gap: 20px; }
.site { font-size: 26px; font-weight: 400; color: var(--muted); }
.set {
font: 400 16px/1 var(--mono);
letter-spacing: 0.06em; text-transform: uppercase; color: var(--dim);
}
.set span { color: var(--line); padding: 0 6px; }
</style>
</head>
<body>
<div class="edge"></div>
<div class="in">
<div class="wordmark">Primitives.org.ai</div>
<div class="body">
<div class="claim">Build <em>Business-as-Code</em><br>&amp; AI-Delivered <em>Services-as-Software</em>.</div>
<div class="sub">The fundamental abstractions for building AI-native software — from Functions and Agents through Services and Businesses.</div>
</div>
<div class="foot">
<div class="set">Function<span>/</span>Database<span>/</span>Workflow<span>/</span>Task<span>/</span>Agent<span>/</span>Human<span>/</span>Product<span>/</span>Service<span>/</span>Business</div>
<div class="site">primitives.org.ai</div>
</div>
</div>
</body>
</html>
Binary file added site/public/og.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading