The official website and developer portal for the Open Agent Protocol.
Production URL: https://openagentprotocol.eu
Repository: github.com/openagentprotocol-OAP/oap-website
- Next.js 15 (App Router, React Server Components)
- Tailwind CSS 3
- Markdown rendering with
react-markdown,remark-gfm,rehype-highlight - Statically generated; deployable on Cloudflare Pages, Vercel, Netlify, or any Node host
npm install
npm run sync-rfcs # imports RFCs and OAP-CORE-1.0 from sibling oap-spec repo
npm run devThe site expects the oap-spec repository to be checked out as a sibling directory:
parent/
├── oap-spec/ # https://github.com/openagentprotocol-OAP/oap-spec
└── oap-website/ # this repo
scripts/sync-rfcs.mjs copies all RFC-*.md files from oap-spec/rfcs/ and the
core spec from oap-spec/spec/v1.0/OAP-CORE-1.0.md into content/. The synced files
are gitignored so the website always reflects the canonical source of truth.
In CI the same script can fetch from raw.githubusercontent.com instead of a
sibling checkout. See .github/workflows/sync-and-deploy.yml.
npm run build
npm run startThe output is fully static at the page level and works on any Node host.
OAP is intentionally not attributable to a single founder. Follow these steps so the domain, hosting, and billing trail cannot be traced back to any individual.
Recommended:
- Njalla (
njal.la) — registered in your name but Njalla is the legal owner of record. Pays in crypto. No personal data on file beyond an email. - Porkbun with WHOIS Privacy enabled by default. Less anonymous than Njalla but cheaper and reputable.
Domain candidates (in order of preference):
openagentprotocol.eu(primary, signals open standard)openagentprotocol.devoap.foundation
Set up a catch all forwarding inbox at the registered domain via:
- ProtonMail custom domain
- Fastmail custom domain
- Migadu (cheapest for many aliases)
Required addresses:
foundation@openagentprotocol.eusecurity@openagentprotocol.euconduct@openagentprotocol.eutrademark@openagentprotocol.euannounce@openagentprotocol.eu
openagentprotocol-OAP already exists. Configure:
- Org name: "OAP Foundation"
- Org email:
foundation@openagentprotocol.eu - Org website:
https://openagentprotocol.eu - All commits authored as
openagentprotocol <oap@openagentprotocol.eu>. Set this globally in any clone:git config user.name "openagentprotocol" git config user.email "oap@openagentprotocol.eu"
- Disable GitHub Pages contributor avatars on org pages.
Recommended: Cloudflare Pages (free tier, anonymous billing accepted, fast global CDN).
Alternative: Vercel under a Foundation account paid via virtual prepaid card.
Setup steps for Cloudflare Pages:
- Create a Cloudflare account using the Foundation email.
- Connect the
openagentprotocol-OAP/oap-websiteGitHub repo. - Build command:
npm run sync-rfcs && npm run build. - Build output:
.next(Next.js). - Add the custom domain.
- Disable Cloudflare Web Analytics or replace with self hosted Plausible. Do not enable Google Analytics.
Use Cloudflare DNS (or Njalla's anonymous DNS). Records:
@→ Pages deploymentwww→ Pages deploymentMX→ email host- TXT for SPF, DKIM, DMARC
Across all OAP repositories and pages:
- Use "the OAP Foundation", "the Working Group", "the Steering Committee" as agents.
- Never use "I", "we built", "founded by", first person plural attached to a real human.
- Refer to AssistNet as "a reference implementation", never as "the home of OAP".
- Author all RFCs as
OAP Foundation, Working Group on X.
When the project needs funds for testing infrastructure, conference attendance, or legal trademark fees, route donations through:
- Open Collective (under a Foundation host such as the Open Collective Foundation),
- or a neutral umbrella such as the Linux Foundation project hosting programme,
- or the OpenSSF.
All three publish public ledgers, which reinforces the neutrality narrative.
Pages live in app/. Each route is a folder with page.tsx. To add an article:
- Create
app/<slug>/page.tsxexporting a default React component. - Add a metadata export with
title. - Add the link to
components/Header.tsxorcomponents/Footer.tsx.
To add an RFC, add the file to the oap-spec/rfcs/ directory in the spec repo
and re run npm run sync-rfcs. The RFC index and viewer pick it up automatically.
Site source: Apache 2.0. Rendered specification text: CC BY 4.0.