> [Maxim](https://wikilayer.org/smee-again) / [Wikilayer authoring guide](https://wikilayer.org/smee-again/wikilayer-howto) / Three flavors

# Three flavors

**Contents:**

- [Public](#public)
  - [Server-rendered HTML](#server-rendered-html)
  - [Open Graph and Twitter cards](#open-graph-and-twitter-cards)
  - [Sitemap and robots.txt](#sitemap-and-robots-txt)
  - [Slugged URLs and 301 redirects](#slugged-urls-and-301-redirects)
  - [JSON-LD: Article, WebSite, BreadcrumbList](#json-ld-article-website-breadcrumblist)
- [Private team](#private-team)
- [Self-hosted, single user](#self-hosted-single-user)

Pick visibility once when you create a wiki. The tree of nodes and the [MCP](page:4409) tools work identically across all three; only who can read and how the wiki is reached differ.

## Public

Anyone reads, search engines index the content, invited authors write. SEO ships ready out of the box: no plugin, no external generator, no extra deploy step. The pieces below cover what the renderer actually produces.

### Server-rendered HTML

Pages render to plain HTML on the server, no SPA shell. `curl`, screen readers, and search engine bots see the content directly; no JavaScript needed for the first paint.

### Open Graph and Twitter cards

Every public page emits the full Open Graph set (`og:site_name`, `og:title`, `og:description`, `og:url`, `og:type`, `og:image`, `og:locale`) plus `article:modified_time` for freshness. Twitter ships the `summary` card variant with title, description, image.

Description comes from the first non-empty block by default; agents can override per page through the `set_page_seo` [MCP](page:4409) tool when the auto-summary catches a quote, callout, or list instead of a topic sentence.

### Sitemap and robots.txt

`/sitemap.xml` is a sitemap index that points at one `/sitemap-wiki:N.xml` per public wiki. Each per-wiki sitemap lists the home plus every page, with the row's `updated_at` as `<lastmod>`. Private and archived wikis are filtered out before the index is generated.

`/robots.txt` is served at the root, references the sitemap inline, allows `/`, and disallows the auth, MCP, manage, and history routes.

### Slugged URLs and 301 redirects

URLs follow the shape `/{owner}-{slug}/{wiki}-{slug}/{page}-{slug}`. The numeric ID at the front stays stable across renames; the slug is for humans. A request to a stale slug 301s to the canonical URL, so external links keep working and search-engine link equity transfers.

### JSON-LD: Article, WebSite, BreadcrumbList

Every public render emits a `<script type="application/ld+json">` block. Pages get an `Article` schema (`headline`, `dateModified`, `author`, `url`, `inLanguage`, `isPartOf`) plus a `BreadcrumbList` walking owner → wiki → page. Wiki home gets `WebSite` plus a two-step `BreadcrumbList`.

Description flows from the same `set_page_seo` override so structured data, unfurl preview, and `<meta name="description">` all agree. Google can render the breadcrumbs as hierarchical chips in SERP.

## Private team

Invited members read and write; everyone else gets a 404. Hidden from search engines and from link unfurls. Suits project workspaces, internal documentation, in-progress drafts, and anything that should stay inside the team until it's ready, or stay there permanently.

## Self-hosted, single user

Runs on your own machine. Same engine, same [MCP](page:4409) tools, no cloud dependency, no accounts: the bootstrapped user owns everything. Suits confidential data, offline work, and personal scratchpads before anything goes public.
