<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>docStatic Blog</title>
        <link>https://docstatic.com/ja/blog</link>
        <description>docStatic Blog</description>
        <lastBuildDate>Sat, 24 Jan 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>ja</language>
        <item>
            <title><![CDATA[A technical evaluation of where docStatic is today]]></title>
            <link>https://docstatic.com/ja/blog/a-technical-evaluation-of-where-docStatic-is-today</link>
            <guid>https://docstatic.com/ja/blog/a-technical-evaluation-of-where-docStatic-is-today</guid>
            <pubDate>Sat, 24 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[DocStatic is my second attempt at creating a docs solution that serves the needs of writers and developer-contributors. You can read about my first attempt in my previous blog. That was a loose collection of components, whereas docStatic is much more tightly integrated, although architecturally, it's not a standalone product in the traditional sense. Instead, it's a curated, opinionated integration of Docusaurus (static site generator) and TinaCMS (headless Git-backed CMS).]]></description>
            <content:encoded><![CDATA[<p>DocStatic is my second attempt at creating a docs solution that serves the needs of writers and developer-contributors. You can read about my first attempt in my previous blog. That was a loose collection of components, whereas docStatic is much more tightly integrated, although architecturally, it's not a standalone product in the traditional sense. Instead, it's a curated, opinionated integration of Docusaurus (static site generator) and TinaCMS (headless Git-backed CMS).</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="core-capabilities">Core capabilities<a href="https://docstatic.com/ja/blog/a-technical-evaluation-of-where-docStatic-is-today#core-capabilities" class="hash-link" aria-label="Core capabilities への直接リンク" title="Core capabilities への直接リンク" translate="no">​</a></h2>
<ul>
<li class="">MDX (Markdown + React) as the primary content format.</li>
<li class="">Editing with:<!-- -->
<ul>
<li class="">Local text editors (docs-as-code) with instant rebuilds using the dev server.</li>
<li class="">TinaCMS browser-based rich text editor for non-technical users.</li>
</ul>
</li>
<li class="">CCMS-style features (snippets, conditional text, variable sets, taxonomies, glossary terms).</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="development-workflow">Development workflow<a href="https://docstatic.com/ja/blog/a-technical-evaluation-of-where-docStatic-is-today#development-workflow" class="hash-link" aria-label="Development workflow への直接リンク" title="Development workflow への直接リンク" translate="no">​</a></h3>
<ul>
<li class="">Git remains the single source of truth.</li>
<li class="">TinaCMS commits directly to Git (or writes files locally).</li>
<li class="">Fully compaible with CI/CD pipelines.</li>
<li class="">Repository structure closely follows Docusaurus defaults, minimizing surprises.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="preconfigured-integrations">Preconfigured integrations<a href="https://docstatic.com/ja/blog/a-technical-evaluation-of-where-docStatic-is-today#preconfigured-integrations" class="hash-link" aria-label="Preconfigured integrations への直接リンク" title="Preconfigured integrations への直接リンク" translate="no">​</a></h3>
<ul>
<li class="">OpenAPI documentation generation.</li>
<li class="">Mermaid diagrams.</li>
<li class="">KaTeX math rendering.</li>
<li class="">Lunr-based search.</li>
<li class="">Internationalization (i18n).</li>
</ul>
<p>LanguageTool integration is supported for spelling and grammar checking but depends on browser/IDE plugins.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="limitations">Limitations<a href="https://docstatic.com/ja/blog/a-technical-evaluation-of-where-docStatic-is-today#limitations" class="hash-link" aria-label="Limitations への直接リンク" title="Limitations への直接リンク" translate="no">​</a></h2>
<p>Currently, adopting docStatic implicitly means:</p>
<ul>
<li class="">Owning and extending the platform.</li>
<li class="">Accepting limited vendor-style support.</li>
</ul>
<p>DocStatic is not a good fit for teams who need to produce documentation in print of PDF format. It is not a drop-in replacement for commercial CCMS tools. But, for a large section of the market, it is already functionally equivalent.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="architecture">Architecture<a href="https://docstatic.com/ja/blog/a-technical-evaluation-of-where-docStatic-is-today#architecture" class="hash-link" aria-label="Architecture への直接リンク" title="Architecture への直接リンク" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="workflow">Workflow<a href="https://docstatic.com/ja/blog/a-technical-evaluation-of-where-docStatic-is-today#workflow" class="hash-link" aria-label="Workflow への直接リンク" title="Workflow への直接リンク" translate="no">​</a></h3>
<p>DocStatic provides a composable workflow. States are implemented as MDX front matter metadata. The state is read by TinaCMS and rendered through a custom editorial status UI. State transitions are content-native and versioned. This pattern is used by several commercial CCMS vendors. However, enforcement is procedural, not systemic.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="reusable-content">Reusable content<a href="https://docstatic.com/ja/blog/a-technical-evaluation-of-where-docStatic-is-today#reusable-content" class="hash-link" aria-label="Reusable content への直接リンク" title="Reusable content への直接リンク" translate="no">​</a></h3>
<p>Reusable content is stored in a defined location, managed as independent content and referenced into documents. Snippets are content objects. This closely resembles DITA conrefs.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="translation-and-localization">Translation and localization<a href="https://docstatic.com/ja/blog/a-technical-evaluation-of-where-docStatic-is-today#translation-and-localization" class="hash-link" aria-label="Translation and localization への直接リンク" title="Translation and localization への直接リンク" translate="no">​</a></h3>
<ul>
<li class="">Locale-specific metadata tracks translation state.</li>
<li class="">GitHub Actions:<!-- -->
<ul>
<li class="">Detect state changes.</li>
<li class="">Trigger Slack or Teams notifications.</li>
</ul>
</li>
<li class="">Local previews per locale.</li>
<li class="">Translation state is deterministic and can be inspected and automated.</li>
</ul>
<p>Commercial CCMS offerings include embedded vendor support. DocStatic's approach is translation-ops-as-code. This can be a benefit when implementing automated machine translation, but is less turnkey for non-technical localization teams.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-docstatic-compares-to-ccms-tools">How docStatic compares to CCMS tools<a href="https://docstatic.com/ja/blog/a-technical-evaluation-of-where-docStatic-is-today#how-docstatic-compares-to-ccms-tools" class="hash-link" aria-label="How docStatic compares to CCMS tools への直接リンク" title="How docStatic compares to CCMS tools への直接リンク" translate="no">​</a></h2>
<p>DocStatic supports:</p>
<ul>
<li class="">Structured content.</li>
<li class="">Reusable content objects.</li>
<li class="">Workflow states.</li>
<li class="">Multi-language support.</li>
<li class="">Dashboards (beta).</li>
</ul>
<p>DocStatic lacks:</p>
<ul>
<li class="">Centralized policy enforcement. Workflow rules live in metadata, Tina UI logic and the CI/CD pipeline.</li>
<li class="">Role-based access control. Although this is possible with a paid TinaCloud subscription.</li>
<li class="">Migration tooling.</li>
</ul>
<p>The core difference between docStatic and CCMS tools is composable, inspectable systems against embedded, opaque systems.</p>
<p>DocStatic:</p>
<ul>
<li class="">Prefers explicit metadata.</li>
<li class="">Leveraging existing infrastructure (Git, CI, Slack and so on).</li>
<li class="">Trades turnkey UX for architectural clarity.</li>
</ul>
<p>CCMS tools:</p>
<ul>
<li class="">Centralize everything.</li>
<li class="">Hide state in the database.</li>
<li class="">Optimize for non-technical administrators.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="who-is-docstatic-best-for">Who is docStatic best for?<a href="https://docstatic.com/ja/blog/a-technical-evaluation-of-where-docStatic-is-today#who-is-docstatic-best-for" class="hash-link" aria-label="Who is docStatic best for? への直接リンク" title="Who is docStatic best for? への直接リンク" translate="no">​</a></h2>
<p>DocStatic can be seen as an engineer-first CCMS. It delivers authoring, reuse, workflows and in-context review—including non-developer feedback directly inside TinaCMS using highlight and comments—while preserving a transparent Git-native source of truth. If you value open tooling, repo-owned workflows and developer-grade extensibility but don't want to sacrifice non-developer review, docStatic could be for you.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="roadmap">Roadmap<a href="https://docstatic.com/ja/blog/a-technical-evaluation-of-where-docStatic-is-today#roadmap" class="hash-link" aria-label="Roadmap への直接リンク" title="Roadmap への直接リンク" translate="no">​</a></h2>
<p>DocStatic narrowly focuses on delivering the best possible online docs experience for readers. Print and PDF are not on the roadmap, and it's unlikely that they ever will be. But there are two areas where using CCMS tools for online docs still has the edge on docStatic:</p>
<ul>
<li class="">Ease of deployment.</li>
<li class="">Dashboards.</li>
</ul>
<p>Dashboards are already in beta. For deployment, the intention is to make it possible to create a default repository using npm.</p>]]></content:encoded>
            <category>content</category>
            <category>content_blog-articles</category>
        </item>
        <item>
            <title><![CDATA[Hybrid document management systems revisited]]></title>
            <link>https://docstatic.com/ja/blog/hybrid</link>
            <guid>https://docstatic.com/ja/blog/hybrid</guid>
            <pubDate>Thu, 27 Feb 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[In January last year, I was up for a documentation manager role and I needed to come up with a solution that would serve the needs of writers and developer-contributors.]]></description>
            <content:encoded><![CDATA[<p>In January last year, I was up for a documentation manager role and I needed to come up with a solution that would serve the needs of writers and developer-contributors.</p>
<!-- -->
<p>My solution looked something like this:</p>
<ul>
<li class="">A central documentation repository in GitHub with automated deployments using Actions.</li>
<li class="">DAPS for conditional text, translation, customer builds and PDF output.</li>
<li class="">Hugo with Asciidoctor for HTML5 sites.</li>
<li class="">LanguageTool for spelling, grammar and style checking.</li>
<li class="">VS Code with the AsciiDoc and LanguageTool plugins for developers.</li>
<li class="">XML Mind XML Editor Web Edition with the LanguageTool browser plugin for non-developers.</li>
<li class="">Mermaid for diagrams.</li>
<li class="">Pandoc for converting DocBook to Word.</li>
<li class="">Affinity Suite for marketing content (imports Word).</li>
<li class="">A Lucene derivative for search.</li>
<li class="">Matomo for analytics.</li>
<li class="">DeepL for machine translation.</li>
<li class="">API scripts to publish to wikis (such as Confluence) and knowledgebases (such as Zendesk).</li>
</ul>
<p>I was the second choice, so fortunately for me I didn't have to deliver it. Instead, I ended up getting a gig where I had to build a documentation portal solution that presented REST and GraphQL APIs in a somewhat consistent manner. That was based on <a href="https://github.com/magidoc-org/magidoc" target="_blank" rel="noopener noreferrer" title="Magidoc static GraphQL docs." class="">Magidoc</a>, the free <a href="https://redocly.com/docs/cli" target="_blank" rel="noopener noreferrer" title="Redocly CLI" class="">Redocly CLI</a> tool, and a lot of scripting. Since then, I've discovered <a href="https://www.archbee.com/" target="_blank" rel="noopener noreferrer" title="Archbee" class="">Archbee</a>. It's a Markdown-based system with proprietary extensions for presenting REST and GraphQL APIs. Even if I'd known about it at the time, I don't think I would have chosen it based on documented reliability issues. However, having used it recently for another client, I think it might just be production ready for user docs. It offers a nice web interface, but you can use your own GitHub repository as the source of truth. Changes made in the web editor create pull requests in the repo. It has search and sites can be password protected. It has built-in support for Mermaid diagrams and dark mode. It's quite reasonably priced and because it's Markdown you're not locked in.</p>
<p>But I'm still a fan of DocBook. Was there an off-the-shelf solution that looked more like my hybrid document management system (DMS) proposal? One possible solution would be <a href="https://www.magnolia-cms.com/" target="_blank" rel="noopener noreferrer" class="">Magnolia CMS</a>, the <a href="https://antora.org/" target="_blank" rel="noopener noreferrer" class="">Antora</a> static site generator (SSG) and <a href="https://asciidoc.org/" target="_blank" rel="noopener noreferrer" class="">AsciiDoc</a>. However, Magnolia doesn't disclose its pricing. And if you ever wanted to migrate to another system, you'd have to build it yourself because other headless CMS solutions don't support AsciiDoc.</p>
<p>Which lead me back to Markdown. Was there an SSG primarily aimed at producing doc sites that would work with my favorite headless CMS (<a href="https://tina.io/" target="_blank" rel="noopener noreferrer" class="">TinaCMS</a>)? That led me to <a href="https://docusaurus.io/" target="_blank" rel="noopener noreferrer" class="">Docusaurus</a>. It's what Meta (Facebook) built to replace Jekyll as its in-house SSG and it uses <a href="https://react.dev/" target="_blank" rel="noopener noreferrer" class="">React</a>. Its build times can feel like an age compared to Hugo. But the sites it builds are so much faster. But was there a better free REST API docs integration than hacking the output of Redocly CLI? The answer was yes, with a great Docusaurus plugin from Palo Alto Networks. All I should have had to do to set it up was to create a new site using the Tina Docusarus starter and then add the plugin. It wasn't that straightforward. Palo Alto Networks has drunk the TypeScript KoolAid. Because Docusaurus is React, the starter site created by Tina uses JSX. They did not want to play nicely. I ended up creating a site from the Palo Alto Networks template and then grafting Tina support onto it.</p>
<p>I couldn't figure out a way to enable the versioning and localization widgets in the nav bar with the Tina solution, so I reverted to using a fixed definition for those. For most other settings, Tina uses JSON files that are referenced by the config. Adding <a href="https://mermaid.js.org/" target="_blank" rel="noopener noreferrer" class="">Mermaid</a> and <a href="https://lunrjs.com/" target="_blank" rel="noopener noreferrer" class="">Lunr</a> search support was trivial, although search only works in production. Rather than try to talk you through everything I had to do to get it working, this time I thought I'd simply share the <a href="https://github.com/aowendev/docstatic" target="_blank" rel="noopener noreferrer" class="">repo</a>. The Palo Alto Networks component is made available under the MIT license, so I've used the same license. The only config you'll need to do is to add your Tina credentials to enable online web editing.</p>
<p>Going back to the requirements, we've got a GitHub repo with Actions. Docusaurus replaces Hugo as the SSG. We're using Markdown Extended (MDX) in place of AsciiDoc. We can still use <a href="https://languagetool.org/" target="_blank" rel="noopener noreferrer" class="">LanguageTool</a> with TinaCMS and VScode. We're using Tina in place of the XML Mind editor. We've got Mermaid diagrams, with preview in Tina. We're using Lunr for search, but if that's insufficient, there's built-in <a href="https://www.docusaurus.io/docs/search" target="_blank" rel="noopener noreferrer" class="">Algolia</a> support. There's a plug-in for <a href="https://github.com/karser/docusaurus-plugin-matomo" target="_blank" rel="noopener noreferrer" class="">Matomo analytics</a>. There's a plug-in for <a href="https://github.com/Zhouzi/docusaurus-graphql-plugin" target="_blank" rel="noopener noreferrer" class="">GraphQL docs</a>. Docusaurus includes versioning and localization support. We can still use <a href="https://www.deepl.com/" target="_blank" rel="noopener noreferrer" class="">DeepL</a> for machine translation. We can still use <a href="https://pandoc.org/" target="_blank" rel="noopener noreferrer" class="">Pandoc</a> for print output to PDF or Word for export to <a href="https://affinity.serif.com/en-us/publisher/" target="_blank" rel="noopener noreferrer" class="">Affinity Publisher</a>.</p>]]></content:encoded>
            <category>content</category>
            <category>content_blog-articles</category>
        </item>
    </channel>
</rss>