Skip to content

Commit bd7509f

Browse files
committed
docs: add brand.md and align copy with brand identity
Add ooxml.dev brand.md (strategy, voice, visual layers). Align all customer-facing copy: README, homepage, MCP page, SEO metadata, docs intro, llms.txt, and footer. Rename SuperDoc references to "SuperDoc — DOCX editing and tooling". Update docx-corpus count to 1M+. Fix theme_color from orange to brand blue (#1355FF).
1 parent 2670816 commit bd7509f

File tree

10 files changed

+297
-45
lines changed

10 files changed

+297
-45
lines changed

README.md

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,47 +8,44 @@ The OOXML spec, explained by people who actually implemented it.
88

99
## What is this?
1010

11-
An interactive reference for ECMA-376 (Office Open XML) with:
11+
An interactive reference for ECMA-376 (Office Open XML) built by the [SuperDoc — DOCX editing and tooling](https://superdoc.dev) team. Every page combines XML structure, live rendered previews, and implementation notes that tell you what the spec doesn't.
1212

13-
- **Live previews** - See XML rendered in real-time with SuperDoc
14-
- **Implementation notes** - Real-world gotchas from building document processors
15-
- **Practical examples** - Working code, not just spec excerpts
13+
- **Live previews** — Edit XML and see it render in real-time. Every example is a working document.
14+
- **Implementation notes** — Where Word diverges from the spec, what will break your code, and what to do about it.
15+
- **Semantic spec search** — 18,000+ spec chunks searchable by meaning via MCP server.
1616

1717
## Why?
1818

19-
The official ECMA-376 spec is 5,000+ pages. Most of it you'll never need. This reference focuses on what matters for building document tools, with insights from implementing [SuperDoc](https://superdoc.dev).
19+
The ECMA-376 spec is 5,000+ pages and it lies. Word's actual behavior diverges from the standard in ways you only discover by building against it. The knowledge to implement OOXML correctly is locked inside a handful of companies that have no incentive to share it.
2020

21-
## MCP Server ![New](https://img.shields.io/badge/New-blue)
21+
We faced this at SuperDoc — building a document engine on native OOXML with no roadmap beyond an unreliable spec. We wrote down everything we learned and made it public. No one should have to reverse-engineer Word alone.
2222

23-
**The world's first ECMA-376 MCP server.** Ask Claude about OOXML and get answers grounded in the actual spec.
23+
## MCP Server
24+
25+
Search the ECMA-376 spec with AI. Ask questions in natural language, get answers grounded in the actual specification.
2426

2527
```bash
2628
claude mcp add --transport http ecma-spec https://api.ooxml.dev/mcp
2729
```
2830

29-
Example: *"How do I set paragraph spacing in WordprocessingML?"* - Claude searches 18,000+ spec chunks and returns the relevant sections.
31+
Works with Claude Code, Cursor, and any MCP-compatible client. Three tools: `search_ecma_spec` (semantic search), `get_section` (by ID), and `list_parts` (browse structure).
3032

3133
## Development
3234

3335
```bash
34-
# Install dependencies
35-
bun install
36-
37-
# Start dev server
38-
bun dev
39-
40-
# Build for production
41-
bun run build
36+
bun install # Install dependencies
37+
bun dev # Dev server at http://localhost:5173
38+
bun run build # Production build
4239
```
4340

4441
## Contributing
4542

46-
Contributions welcome! Add implementation notes, fix examples, or improve docs.
43+
Contributions welcome. Add implementation notes, fix examples, or improve the reference.
4744

4845
## License
4946

5047
MIT
5148

5249
---
5350

54-
Built by 🦋[SuperDoc](https://superdoc.dev)
51+
Built by 🦋 [SuperDoc — DOCX editing and tooling](https://superdoc.dev)

apps/web/public/llms.txt

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,38 +2,41 @@
22

33
> The OOXML spec, explained by people who actually implemented it.
44

5-
ooxml.dev is an interactive reference for ECMA-376 (Office Open XML), the standard behind .docx, .xlsx, and .pptx files. It features live previews, real-world implementation gotchas, and semantic spec search. Built by the SuperDoc team (https://www.superdoc.dev).
5+
ooxml.dev is the interactive reference for ECMA-376 (Office Open XML) — the standard behind .docx, .xlsx, and .pptx files. Built by SuperDoc — DOCX editing and tooling (https://superdoc.dev) from experience implementing a full OOXML document engine.
6+
7+
Every page combines XML structure, live rendered previews, and implementation notes that tell you what the spec doesn't: where Word diverges from the standard, what will break your code, and what to do about it.
68

79
## Main Pages
810

911
- [Home](https://ooxml.dev/): Overview and entry point
10-
- [Docs](https://ooxml.dev/docs/): Interactive OOXML reference documentation
11-
- [MCP Server](https://ooxml.dev/mcp/): Connect AI assistants to search 18,000+ ECMA-376 specification chunks via MCP
12-
- [Spec Explorer](https://ooxml.dev/spec/): Search and browse the ECMA-376 specification with semantic search
12+
- [Reference](https://ooxml.dev/docs/): Interactive OOXML reference with live previews and implementation notes
13+
- [Spec Explorer](https://ooxml.dev/spec/): Semantic search across the full ECMA-376 specification
14+
- [MCP Server](https://ooxml.dev/mcp/): Search 18,000+ spec chunks with AI via MCP
1315

1416
## Documentation
1517

1618
### Getting Started
17-
- [Introduction](https://ooxml.dev/docs/): Learn the basics of OOXML and how to use this reference
19+
- [Introduction](https://ooxml.dev/docs/): OOXML structure, namespaces, and how to use this reference
1820

1921
### WordprocessingML
2022
- [Paragraphs](https://ooxml.dev/docs/paragraphs/): Text structure and formatting — paragraphs, runs, and text elements (w:p)
2123
- [Paragraph Borders](https://ooxml.dev/docs/paragraph-borders/): Border properties, between-border groups, nil/none semantics (w:pBdr)
24+
- [Bidirectional Text](https://ooxml.dev/docs/bidirectional-text/): RTL layout, logical alignment, tab stop flipping, and bidi pitfalls
2225
- [Tables](https://ooxml.dev/docs/tables/): Table structure, properties, and implementation gotchas (w:tbl)
2326
- [Styles](https://ooxml.dev/docs/styles/): Style definitions, inheritance, and resolution (styles.xml)
2427

2528
### Guides
26-
- [Creating Documents](https://ooxml.dev/docs/creating-documents/): Step-by-step guide to creating a valid OOXML document from scratch
29+
- [Creating Documents](https://ooxml.dev/docs/creating-documents/): Building a valid OOXML document from scratch
2730
- [Common Gotchas](https://ooxml.dev/docs/common-gotchas/): Real-world implementation issues and how to solve them
2831

2932
## MCP Server
3033

31-
The ooxml.dev MCP server provides AI assistants with access to the ECMA-376 specification. Available tools:
34+
Search the ECMA-376 spec with AI. 18,000+ spec chunks, searchable by meaning.
3235

33-
- `search_ecma_spec`: Semantic search across 18,000+ specification chunks
34-
- `get_section`: Retrieve a specific section by ID (e.g., "17.3.2" for paragraph properties)
36+
- `search_ecma_spec`: Semantic search — ask questions in natural language
37+
- `get_section`: Retrieve a specific section by ID (e.g., "17.3.2")
3538
- `list_parts`: Browse the specification structure by part (1-4)
3639

3740
## About
3841

39-
ooxml.dev is built and maintained by the SuperDoc team (https://www.superdoc.dev). SuperDoc is a document engine that implements the OOXML specification. The content on ooxml.dev comes from real-world experience building a full OOXML document engine.
42+
ooxml.dev is built by SuperDoc — DOCX editing and tooling (https://superdoc.dev). SuperDoc is a document engine that renders OOXML natively in the browser. The implementation notes on ooxml.dev come from building that engine against thousands of real-world documents.

apps/web/public/site.webmanifest

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
{
22
"name": "ooxml.dev",
33
"short_name": "ooxml.dev",
4-
"description": "The Implementer's Guide to OOXML",
4+
"description": "The OOXML spec, explained by people who actually implemented it.",
55
"icons": [
66
{ "src": "/android-chrome-192x192.png", "sizes": "192x192", "type": "image/png" },
77
{ "src": "/android-chrome-512x512.png", "sizes": "512x512", "type": "image/png" }
88
],
9-
"theme_color": "#ea580c",
9+
"theme_color": "#1355FF",
1010
"background_color": "#ffffff",
1111
"display": "standalone"
1212
}

apps/web/scripts/prerender.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ function buildHead(path: string): string {
180180
headline: seo.title.split(" | ")[0].split(" — ")[0],
181181
description: seo.description,
182182
url,
183-
author: { "@type": "Organization", name: "SuperDoc", url: "https://superdoc.dev" },
183+
author: { "@type": "Organization", name: "SuperDoc — DOCX editing and tooling", url: "https://superdoc.dev" },
184184
publisher: { "@type": "Organization", name: "ooxml.dev" },
185185
about: {
186186
"@type": "Thing",

apps/web/src/components/Footer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ export function Footer() {
66
href="https://superdoc.dev/?utm_source=ooxml.dev&utm_medium=referral&utm_campaign=footer"
77
className="text-[var(--color-accent)] hover:underline"
88
>
9-
SuperDoc
9+
SuperDoc — DOCX editing and tooling
1010
</a>
1111
</footer>
1212
);

apps/web/src/data/docs.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ type ContentBlock =
2222
export const docs: Record<string, DocPage> = {
2323
index: {
2424
title: "Getting Started",
25-
description: "Learn the basics of OOXML (Office Open XML) and how to use this reference.",
25+
description: "OOXML structure, namespaces, and how to use this reference.",
2626
content: [
2727
{
2828
type: "note",
@@ -33,7 +33,7 @@ export const docs: Record<string, DocPage> = {
3333
{ type: "heading", level: 2, text: "What's Different Here" },
3434
{
3535
type: "paragraph",
36-
text: "Unlike the official spec, this reference shows live previews, includes real implementation notes from building [SuperDoc](https://superdoc.dev/?utm_source=ooxml.dev&utm_medium=referral&utm_campaign=docs), and links to 100k+ real documents from [docx-corpus](https://docxcorp.us).",
36+
text: "The official spec is 5,000+ pages and omits critical rendering details. This reference fills the gap: live previews, implementation notes from building [SuperDoc — DOCX editing and tooling](https://superdoc.dev/?utm_source=ooxml.dev&utm_medium=referral&utm_campaign=docs), and links to 1M+ real documents from [docx-corpus](https://docxcorp.us). Every note comes from shipping code, not reading the spec.",
3737
},
3838
{ type: "heading", level: 2, text: "OOXML Structure" },
3939
{
@@ -764,7 +764,7 @@ w:rPr (run properties)
764764
content: [
765765
{
766766
type: "paragraph",
767-
text: "Lessons learned from building [SuperDoc](https://superdoc.dev/?utm_source=ooxml.dev&utm_medium=referral&utm_campaign=docs).",
767+
text: "Lessons learned from building [SuperDoc — DOCX editing and tooling](https://superdoc.dev/?utm_source=ooxml.dev&utm_medium=referral&utm_campaign=docs).",
768768
},
769769
{ type: "heading", level: 2, text: "Word-Specific Issues" },
770770
{

apps/web/src/data/seo.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,27 +8,27 @@ export interface SeoMeta {
88

99
const staticPages: Record<string, SeoMeta> = {
1010
"/": {
11-
title: "ooxml.dev — The Implementer's Guide to OOXML (ECMA-376)",
11+
title: "ooxml.dev — The OOXML spec, explained by people who actually implemented it",
1212
description:
13-
"Interactive OOXML reference with live previews, implementation notes, and real-world gotchas. Built by the SuperDoc team.",
13+
"Interactive ECMA-376 reference with live previews, implementation notes, and what the spec doesn't tell you. Built by SuperDoc — DOCX editing and tooling.",
1414
type: "website",
1515
},
1616
"/mcp": {
1717
title: "ECMA-376 MCP Server — Search the OOXML Spec with AI | ooxml.dev",
1818
description:
19-
"Connect your AI assistant to search 18,000+ OOXML specification chunks. Works with Claude Code, Cursor, and any MCP-compatible client.",
19+
"Search 18,000+ OOXML spec chunks with natural language. Works with Claude Code, Cursor, and any MCP-compatible client.",
2020
type: "website",
2121
},
2222
"/spec": {
23-
title: "ECMA-376 Spec Explorer | ooxml.dev",
23+
title: "ECMA-376 Spec Explorer — Search and Browse | ooxml.dev",
2424
description:
25-
"Search and browse the ECMA-376 Office Open XML specification with semantic search and PDF viewer.",
25+
"Semantic search across the full ECMA-376 Office Open XML specification. Find sections by meaning, not just keywords.",
2626
type: "website",
2727
},
2828
"/docs": {
2929
title: "OOXML Reference — Getting Started | ooxml.dev",
3030
description:
31-
"Learn the basics of OOXML (Office Open XML) and how to use this interactive reference.",
31+
"OOXML structure, namespaces, and how to use this reference. Live previews and implementation notes from building a real document engine.",
3232
type: "article",
3333
},
3434
};

apps/web/src/pages/Home.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export function Home() {
1818
The OOXML spec, explained by people who actually implemented it.
1919
<br className="hidden sm:block" />
2020
<span className="sm:hidden"> </span>
21-
Interactive examples, real-world gotchas, live previews, and semantic spec search.
21+
Live previews, implementation notes, and what the spec doesn't tell you.
2222
</p>
2323
<div className="flex justify-center gap-4 mb-6">
2424
<Link

apps/web/src/pages/Mcp.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,8 @@ export function Mcp() {
6262
</div>
6363
<h1 className="text-3xl font-bold mb-4">Search the ECMA-376 spec with AI</h1>
6464
<p className="text-[var(--color-text-secondary)] max-w-xl mx-auto">
65-
Connect your MCP-compatible client to search 18,000+ specification chunks using natural
66-
language queries.
65+
18,000+ spec chunks, searchable by meaning. Ask questions in natural language, get the
66+
relevant sections back.
6767
</p>
6868
</div>
6969

@@ -233,7 +233,7 @@ export function Mcp() {
233233
rel="noopener noreferrer"
234234
className="text-[var(--color-accent)] hover:underline"
235235
>
236-
SuperDoc
236+
SuperDoc — DOCX editing and tooling
237237
</a>
238238
</span>
239239
<Link

0 commit comments

Comments
 (0)