Skip to content
OwnDocs

Changelog

Every dated OwnDocs release, in full. Each entry mirrors the CHANGELOG.md in the product source you receive, so the two say the same thing.

Version 1.0.0

August 19, 2026

Configuration

  • Breaking: the NEXT_PUBLIC_SITE_URL environment variable is renamed to DOCS_SITE_URL. Rename it before upgrading, because nothing warns you: a deployment still setting the old name starts cleanly and then publishes http://localhost:3000 as its canonical URL, in the sitemap, the RSS feed, llms.txt, llms-full.txt, every page canonical, every Open Graph image URL, and the private-mode login redirect
  • Every Tailwind color family now resolves through shared brand variables, so no stock Tailwind palette value reaches the browser

Content authoring and rendering

  • File-based MDX and Markdown authoring: the file path is the URL, with no routing configuration
  • GitHub Flavored Markdown support: tables, strikethrough, and task lists
  • 6 alert types written with GitHub's syntax: note, tip, important, warning, caution, and danger
  • 25 documentation components, including cards, tabs, accordions, comparison tables, and file trees
  • Syntax highlighting for 71 languages, plus sanitized Mermaid diagram rendering
  • LaTeX-style math typesetting, inline and as block equations
  • Responsive iframe embeds, sandboxed without same-origin access and limited by the Content-Security-Policy, plus a click-to-zoom image lightbox
  • Versioned documentation: archive and serve older releases of a page alongside the current one

API documentation

  • API documentation blocks with method badges, headers, JSON request/response, multi-response tabs, and cURL examples
  • OpenAPI and Swagger import that generates a full API reference page from a spec URL, with a Postman collection export

AI integration

  • A built-in Model Context Protocol (MCP) server, so AI tools like Claude Desktop, Cursor, and Windsurf can search and fetch the documentation directly
  • An AI chat panel that answers from the site's own documentation, with multi-thread session persistence and citations: bring your own key (Anthropic, an OpenAI-compatible endpoint, or a local or cloud Ollama model)
  • /llms.txt and /llms-full.txt endpoints so AI agents can read a compact or full index of the docs
  • Per-page AI reading deeplinks that open the page in ChatGPT, Claude, or Cursor with a ready-made prompt
  • Copy the current page as Markdown or plain text

Navigation and search

  • Sidebar navigation generated automatically from the file system, with collapsible groups and persisted state
  • Auto-generated category index pages for folders with no index page of their own
  • Breadcrumb navigation with auto-formatted path segments
  • Previous / next page navigation
  • Full-text search with a Cmd+K / Ctrl+K shortcut
  • On-page table of contents that tracks scroll position

Design and accessibility

  • A dynamic theme-variant system with 26 built-in color palettes, every one built from the same verified OKLCH color system, switched by one environment variable, with violet as the default
  • A fully responsive, container-query-based layout, with touch targets sized for mobile
  • An error boundary and a custom 404 page
  • Accessibility support: skip-to-content, focus management, ARIA patterns, keyboard navigation, and focus trapping
  • Fixed: dark mode rendered documentation headings at 1.14:1 contrast, because prose-gray and dark:prose-invert shared one @apply list. Dark mode now meets WCAG AA
  • Fixed: every route scrolled sideways at 320px. Pages now reflow to 320px with no horizontal scroll
  • Fixed: the closed mobile drawer left 15 controls in the tab order. It is now inert when closed, Escape closes it and returns focus to its toggle
  • A site-wide footer, supplying the contentinfo landmark the documentation pages were missing
  • A root error boundary that renders when the layout itself fails, separate from the per-route boundary
  • Fixed: C4 diagram labels were squeezed into a fixed 54px box by Mermaid’s own textLength attribute. Labels now render at natural width and centered, with readable relationship chips and an icon per shape
  • Wide Mermaid diagrams now scroll inside a focusable container instead of scaling down past legibility

Access control and security

  • A public/private access-mode toggle set by one environment variable
  • Password-protected access with signed JWT sessions (24-hour lifetime), browser fingerprinting, a timing-safe password comparison, origin validation, and account lockout after repeated failures
  • 8 HTTP security headers in public mode, including HSTS and an environment-aware Content-Security-Policy, with a ninth added in private mode
  • Four-layer search-engine and AI-crawler blocking while running in private mode
  • Dual-mode MCP-server authentication with page-path validation to block traversal
  • An SSRF-resistant OpenAPI importer that validates every remote address before connecting
  • Rate limiting across login, AI chat, MCP requests, and reader feedback

Feedback and operations

  • A reader feedback widget, backed by a Notion database or a local file so a read-only host still works
  • A health-check endpoint at /api/health
  • Sitemap generation and dynamic Open Graph image generation, both in public mode
  • Configurable login-page footer branding via environment variables
  • An RSS feed at /feed.xml, in public mode only
  • Fuzzy did-you-mean suggestions on the 404 page
  • Three Notion helper commands: notion:verify checks the feedback database has every field OwnDocs writes, notion:fix adds any that are missing, and notion:create creates a new one

Engineering and delivery

  • A dual test suite, Vitest unit tests and Playwright end-to-end tests, runs in CI on every change, alongside linting and an npm audit gate
  • Every GitHub Action in the pipeline pinned to a full commit hash; tagged releases publish a CycloneDX software bill of materials alongside the archives
  • An automated, leak-scanned release pipeline that packages a clean commercial archive
  • An environment setup script that auto-generates local secrets
  • A proprietary source license
  • An axe accessibility gate in CI, checking WCAG 2.2 AA at 320, 768, and 1280 pixels with the target-size rule enabled explicitly
  • A per-route regression test that fails the build on any horizontal scroll at 320px
  • Stylelint and a Tailwind class-correctness lint rule in CI