Docs As Code
Docs as CodeLong read

Docs-as-Code Workflow Fundamentals

Teams adopted Git for docs in job postings but haven't implemented the actual workflow.

Contributing Editor · · 17 min read · Updated
Cover illustration for “Docs-as-Code Workflow Fundamentals”
Docs as Code · August 12, 2026 · 17 min read · 3,750 words

The speed of this shift is harder to explain than the shift itself. According to gitdoc.ai's 2026 technical writing trends analysis, Git appeared as a required skill in 63% of technical writing job postings in Q4 2025, up from under 10% in Q4 2022. Three years. That is not a gradual evolution in hiring preference; it is a structural redefinition of what the role is, compressed into a timeframe short enough that many practitioners never saw it coming. But what if the speed itself is the story — not what changed, but how little warning there was before it did?

Job postings are a lagging indicator. By the time a skill appears in 63% of listings, the expectation has already calcified in most hiring managers' mental models. The data does not tell us that teams are experimenting with Git for documentation; it tells us that teams which have already committed to the workflow are now staffing to sustain it, and that everyone else is quietly revising their job descriptions to match.

However, a hiring signal and an implementation signal are not the same thing, and the gap between them is where the real story lives. GitKraken's 2025 State of Developer Workflows report found that only 12% of teams have successfully implemented standardized documentation workflows end-to-end. Teams are requiring Git fluency in candidates while running documentation through processes Git never touches. They have adopted the label. The workflow is another matter.

This is less a technology adoption problem than an integration problem. Stack Overflow's 2025 Developer Survey found that 81% of developers already use GitHub as their primary code collaboration platform. So the infrastructure is not missing. What is missing is the deliberate, often unglamorous work of assembling that infrastructure into a documentation workflow with actual enforcement mechanisms rather than stated intentions. I have watched organizations spend six months selecting an SSG and six weeks worrying about who owns the pipeline. The sequence is usually backwards.

The vocabulary compounds the problem. "Continuous documentation," "agile documentation," "living documentation": these labels foreground cadence and philosophy, which makes the approach sound more like a mindset shift than a disciplined technical practice. That framing gives teams permission to declare victory early. But what if declaring victory on the mindset is precisely what prevents teams from doing the harder work? The practices are specific. The specificity is what matters.

Diagram: Git in Job Postings: From Niche to Near-Universal in Three Years. Visualizes: Show the dramatic rise of Git as a required skill in technical writing job postings: under 10% in Q4 2022, rising to 63% in Q4 2025 — a near-sevenfold increase…Diagram: Git Fluency in Job Postings: Three Years, A 6x Surge. Visualizes: Show the dramatic rise of Git as a required skill in technical writing job postings: under 10% in Q4 2022 rising to 63% in Q4 2025 — a jump across just three years.

Plain-Text Authoring and Version Control as the Starting Point of the Workflow

Every docs-as-code workflow begins with the same foundational choice: documentation source files live in plain text, almost always Markdown, checked into a version control system. This is not an aesthetic preference. It is a structural one, with genuine consequences for everything downstream.

Markdown's advantages in this context are less obvious than they appear. Git's comparison tooling operates on text line by line, so a change to a paragraph surfaces as a change to a paragraph rather than a binary delta in an opaque format. Markdown files open in any text editor, survive tool transitions, and carry no proprietary encoding that ties them to a vendor. A developer who has never touched a documentation platform can open a Markdown file in the editor they already use and propose a change without learning anything new. That last point is not a small thing; it is most of the contribution model.

What living in a Git repository actually changes is the accountability structure. Every change is attributed, timestamped, and reversible. Documentation history becomes auditable in the same way code history is. Ownership distributes structurally rather than by managerial assignment, which sounds desirable in the abstract and creates real governance questions at scale. I have seen teams genuinely surprised by this, as though they expected the accountability without the exposure. That raises an important question: if teams want the transparency Git provides, are they also prepared for what that transparency reveals about who is and is not maintaining the documentation?

The foundational architecture decision is whether documentation lives alongside code in a monorepo or in a dedicated documentation repository. The monorepo reduces contribution friction for developers because documentation files are visible in the same context as the code they describe. The dedicated repository offers more deployment flexibility and keeps documentation commits from cluttering code commit history. I have seen both work and both fail; the determining factor is almost always team composition and how tightly the documentation couples to specific code changes, not any inherent superiority of one structure.

File naming conventions and folder hierarchies deserve more deliberate attention than they typically receive. These decisions outlast individual contributors. A structure that made intuitive sense to the team that built it becomes a navigation problem for contributors who join later, and restructuring a large repository after the fact is expensive in ways that are easy to underestimate in advance.

Branching strategy follows naturally from the same logic that governs code. A writer branches from the same feature branch the developer is working on, writes documentation in parallel, and the two changes travel through review and merge together. The coupling is structural rather than procedural, which matters because procedural coupling depends on people remembering.

The overhead is real. Requiring a pull request to fix a typo is friction most teams eventually resent. The policy question of where that threshold sits, what changes require review and what can be committed directly, matters less than having a policy at all. Implicit norms about documentation process are almost always wrong about half the time.

One ceiling in this approach tends to surface late. Markdown conflates content and presentation. At small to medium scale, that conflation is manageable. However, as documentation grows into large, multi-contributor portals, the absence of structured content modeling, content reuse mechanisms, and conditional publishing becomes an architectural constraint that Markdown alone cannot resolve.

Pull Request Review as a Quality Gate for Documentation

The pull request is where the workflow converts from a storage convention into an actual quality discipline, and also where teams most often fail to follow through on what they intended. The mechanism is straightforward: reviewers comment on line-level diffs, request changes, and approve through the same interface developers use for code. No separate review system, no out-of-band process, no "send it to the writer for a final pass." The apparatus is already present in every development environment that has adopted Git.

What a documentation PR review should actually check is not self-evident, because the tendency is to treat documentation review as categorically lighter than code review. Technical accuracy is the developer's natural domain; the person who wrote the feature is the obvious reviewer for whether the documentation describes it correctly. Clarity and completeness belong to the writer. Consistency with existing documentation, style guide adherence, and terminology alignment are quality checks that most teams enforce informally, if at all. Review time is when systematic enforcement becomes possible, but only if someone has been assigned that responsibility explicitly. Usually, no one has.

The cultural consequence of PR-based review is distributed ownership, which is either the workflow's greatest strength or its greatest liability depending on execution. Traditional documentation tools default to single authorship: one person creates the document, one person owns it, and updates require that person's availability. Distributed ownership via PR removes the bottleneck while preserving an approval chain. It also means that if no one has clear ownership, the PR sits.

The most consequential implementation is the documentation gate on feature merges: a CI check that blocks a feature branch from merging when required documentation is absent. This is the difference between "documentation is part of our definition of done" as a stated value and documentation actually being part of the definition of done. After all, social norms erode under sprint pressure. CI checks do not.

Squarespace's Domains Engineering team, in a 2025 case study, documented an implementation where documentation lives in Git and is reviewed via PRs alongside code. The reported outcomes included richer traceability between architecture decisions and their documentation and tighter feedback loops in the review cycle. The mechanism is not novel. The discipline of actually using it consistently is harder than the case study makes it sound, and that gap between what a case study describes and what the implementation costs is one of the more reliable sources of frustration I have seen in this work.

Where this breaks down is the Git literacy assumption. Generating diffs and resolving merge conflicts are not intuitive for writers who have spent careers in tools where document history means "track changes" in a Word file. Visual interfaces, GitHub's web editor, VS Code's built-in Git integration, are not optional accommodations for non-technical writers. They are a prerequisite for participation. A docs-as-code workflow that only developers can comfortably navigate has not solved the shared ownership problem; it has moved it.

Static Site Generators: What They Do and Which Ones Teams Actually Use

Table: SSG Tools: Niche, Strength, and Trade-off. Compares Primary Niche, Tech Basis, Key Strength and Main Trade-off by Docusaurus, MkDocs + Material, Hugo, Sphinx, and 1 more.

A static site generator occupies a specific position in the pipeline: it takes Markdown source files and layout templates, compiles them into static HTML, and hands the output to a deployment target. No database, no runtime rendering, no server-side processing at request time. The output is fast, simple to host, and straightforward to version.

This is why SSGs have largely displaced traditional Help Authoring Tools in developer-facing documentation. HATs were built around structured authoring workflows and publishing pipelines that made sense when documentation teams were large, output formats were varied, and print was still a delivery concern. The dev-docs use case is different in almost every relevant dimension: contributors are often developers, outputs are almost always web-based, and build-and-deploy cycles need to be fast enough to fit inside a CI pipeline without becoming the slowest step.

The leading tools each occupy a recognizable niche. The wrong choice for a team's composition causes real friction regardless of how well the tool performs on benchmarks.

Docusaurus, maintained by Meta, is React-based and has become a default for developer-facing documentation; the React and Jest projects run on it. Meaningful customization requires Node.js and React knowledge, which is a genuine barrier for documentation teams without JavaScript backgrounds. MkDocs with the Material theme is Python-based, has lower setup overhead, and suits internal documentation and product documentation where polished but uncomplicated output is the goal. Hugo's build speeds are in a different category entirely, compiling thousands of pages in seconds; the tradeoff is a steeper learning curve in its templating system and some handling quirks around Markdown extensions that catch teams off guard. Sphinx remains the standard for Python-ecosystem documentation, supports multiple output formats including PDF, and produces precisely structured output; reStructuredText is a meaningful barrier for teams outside the Python world.

Zensical, announced in late 2025 by the Material for MkDocs team, is worth tracking for teams running large documentation portals at the scale where MkDocs begins to show performance limits.

For deployment, GitHub Pages, Netlify, Vercel, and Read the Docs all integrate with the major SSGs without significant configuration overhead. Read the Docs specifically rebuilds documentation on every push, supports multiple output formats, and connects to GitHub, GitLab, and Bitbucket. Its adoption in open-source projects is widespread because the pipeline from push to published requires minimal manual work to establish.

Managed documentation platforms sit at a distinct layer in this ecosystem. Instead of assembling and maintaining an SSG toolchain, these platforms provide structured publishing infrastructure with built-in versioning, search, and integrations designed to connect documentation to AI workflows. For teams that want docs-as-code discipline without owning the build pipeline, the tradeoff is concrete: less configuration overhead, less maintenance surface, tighter integration with downstream systems that consume documentation as data.

CI/CD Pipelines for Documentation: How Automated Publishing Actually Works

The pipeline in plain terms: a merge to the main branch triggers a build script; the SSG compiles Markdown files into HTML; the output deploys to the hosting target. Documentation goes live within minutes of approval, with no manual deploy step and no one waiting on someone else to press a button.

What automated publishing removes is the gap between "approved" and "published." In traditional workflows, that gap could be days or weeks, filled with deploy queues, coordination overhead, and manual processes that introduced their own failure rates. The gap closes by design, not by effort.

A functional documentation pipeline typically contains four elements. A lint or validation step runs first, catching broken links, Markdown syntax errors, and style rule violations before the build begins. The SSG build step follows. A deployment step pushes the compiled output to the hosting target. Optionally, a preview environment generates for each PR, so reviewers see rendered output rather than raw Markdown before they approve. That last element is more consequential than it sounds. Reviewing a navigation structure or a warning callout in raw Markdown is a meaningfully worse experience than reviewing it rendered, and the quality of review reflects that difference.

The documentation gate introduced in the previous section is operationalized here. A CI check that blocks a feature branch from merging when required documentation files are absent, or when build checks fail, is the technical enforcement mechanism that turns a policy statement into a structural constraint. Sprint pressure reliably erodes social norms. However, the CI check does not care about sprint pressure.

Friction points in pipeline management tend to emerge at scale rather than at setup. Large documentation repositories can face slow full-site rebuilds, a problem that modern tools increasingly address with incremental builds and caching, though teams maintaining daily API change documentation may still encounter it as a genuine bottleneck. Image management is a specific pain point: the full build cycle must complete before images render in context, which makes visual review slower and more error-prone than text review. These are solvable problems, but they require someone to own the pipeline infrastructure, and that ownership often falls to the wrong team or, more commonly, to no team at all until something breaks.

The publishing cadence this creates is structurally different from what most documentation teams have operated under. Traditional documentation workflows followed a waterfall rhythm: changes batched, reviewed infrequently, delivered on a release cycle. CI/CD publishing makes documentation incremental by default. That cadence aligns naturally with how most development teams already work, which is either a feature or an adjustment cost depending on how much the documentation team's existing workflow diverges from the development team's.

Where Docs-as-Code Workflows Run Into Real Friction

Anyone who has implemented docs-as-code across more than one organization with varied team compositions arrives at the same friction points. What is harder to predict is the sequence in which they surface and how much organizational damage they accumulate before anyone names them explicitly.

The learning curve is the most consistent barrier, and the one most often underestimated. Command-line fluency, Markdown, and Git are prerequisites that technical writers frequently arrive without, and the assumption that training will happen organically underestimates both how much that gap slows early adoption and how much resentment it generates. Writers who have spent careers in tools where "undo" means pressing Ctrl+Z do not intuitively reach for git revert. That is not a failure of intelligence; it is a failure of onboarding. I have seen good writers leave roles rather than navigate a Git conflict on a deadline without support.

Git's complexity for non-developers is not a minor inconvenience. Merge conflicts in particular are genuinely disorienting for writers encountering them for the first time, and the standard documentation for resolving them assumes fluency that beginners do not have. Visual interfaces are not optional accommodations; they are a requirement for broad participation. A workflow that only developers can comfortably use has not solved shared ownership. Instead of broadening participation, it has made ownership more exclusive while claiming otherwise.

The "same tools for text and code" argument also deserves more scrutiny than it usually gets. Attractive in its simplicity, it runs into a real objection: documentation has requirements that code does not. Metadata management, content reuse across multiple documents, conditional publishing for different audiences or versions, and localization workflows are features that traditional Help Authoring Tools handle natively. In a Markdown-based stack, these capabilities require significant additional configuration or are simply not available without extending the toolchain in ways that compound the maintenance burden. It is also worth considering whether the teams most enthusiastic about docs-as-code are precisely the teams whose documentation needs are simple enough that these gaps never surface — and whether that shapes which friction points get acknowledged publicly.

Toolchain sprawl is the operational consequence of assembling docs-as-code infrastructure from independent components: an SSG, a hosting platform, a CI system, a linting configuration, a preview environment. For engineering teams, this assembly is familiar. However, for documentation teams taking on operational responsibility for this infrastructure, it becomes a maintenance burden that competes directly with content work, and the competition is rarely explicit in how the team's time is allocated.

Ownership ambiguity at scale is the cultural friction point that growth tends to expose, sometimes suddenly. Distributed contribution is a genuine feature at small scale; it lowers the barrier for developers to fix documentation they know is wrong. At large scale, without explicit ownership models and review policies, PRs stale, coverage becomes uneven, and the shared ownership that docs-as-code promises quietly becomes no one's ownership in practice. The workflow provides a mechanism for contribution. It does not automatically provide a mechanism for accountability, and that distinction tends to matter most at precisely the moment when no one has time to address it.

How Docs-as-Code Fits Into Teams That Work in Agile Sprints

The sprint-based cadence is where docs-as-code integration either succeeds or becomes a formal commitment with no operational reality. The mechanism is straightforward: documentation tasks live on the same board as development tasks, tracked in Jira or equivalent, with the same sprint accounting. The writer participates in standups and retrospectives. Documentation is a tracked deliverable, not a parallel workstream that someone is managing informally and hoping stays current.

Feature branches are the natural unit of documentation work in this model. A writer branches from the same feature branch the developer is working on, writes documentation in parallel, and both changes move through review and merge together. The coupling is structural, not procedural. It does not depend on anyone remembering to notify the writer when a feature is ready for documentation, which is the single most reliable source of documentation drift I have encountered.

Pinterest's 2025 engineering blog post on their transition to a docs-as-code model cited two primary outcomes: better developer participation in documentation review, and measurably reduced documentation drift. The drift reduction is specifically a function of documentation living in the same repository and review cycle as the code. When documentation and code are in separate systems with separate workflows, drift is the default state; it requires active effort to prevent. However, when they are coupled at the repository level, staying synchronized is the path of least resistance rather than the path of most discipline.

Google, GitLab, and Stripe have each standardized on this model at significant scale. The pattern holds across organizations with different sizes, different documentation volumes, and different team compositions. That consistency suggests the Agile alignment is not an artifact of any one company's particular setup.

One policy gap that sprint velocity consistently exposes: documentation PRs sink to the bottom of the review queue when developers are under sprint delivery pressure. Teams that have implemented this workflow successfully tend to have explicit norms about documentation review turnaround, enforced as team policy rather than left to professional goodwill. So the workflow provides the mechanism, and the policy provides the enforcement. Teams that mistake having the mechanism for having the policy tend to discover the difference at the worst possible moment, usually mid-sprint, usually publicly.

What Docs-as-Code Infrastructure Means for AI-Integrated Documentation Workflows

Venn diagram: Docs-as-Code: Human Workflow vs. AI Infrastructure. Compares Human Collaboration and AI Infrastructure; overlap: Shared Foundation.

The 2026 State of Docs Report, surveying over a thousand documentation professionals, characterized documentation as increasingly "the data layer that feeds AI products." That framing reframes what documentation infrastructure is actually for. Documentation has been a communication artifact; it is becoming an input to systems that operate on it, generate from it, and answer questions by querying it. But how does this affect our original promise — that docs-as-code is primarily about helping human contributors work better together?

Git-based documentation is machine-readable in ways that documentation stored in proprietary formats or locked CMS systems is not. Plain text, structured file systems, and version history accessible via API are properties that binary formats cannot offer. An agent or retrieval-augmented generation system can be pointed at a Git repository and consume documentation as a live, versioned knowledge source. The same is not true of a PDF library or a CMS with a proprietary API.

Documentation drift becomes an AI reliability problem in this context, not merely a user experience problem. An agent operating on stale documentation produces incorrect answers with the same confidence it produces correct ones. So the CI/CD discipline that keeps documentation current in a docs-as-code workflow is what keeps the knowledge source reliable as an AI input. These are causally connected in a way that most teams implementing docs-as-code have not yet fully internalized, and I suspect that gap will become expensive as agent-driven products mature.

The 2026 State of Docs Report also found that writers are spending less time drafting and more time reviewing and validating as AI generation handles first drafts. The PR review pipeline is the natural place for that validation to happen: a writer reviews an AI-generated draft in the same interface and with the same accountability mechanisms as any other proposed change. The workflow absorbs the new capability without requiring new infrastructure, which matters given how much of the friction in AI tool adoption comes from integration overhead rather than the tools themselves.

Mintlify is built specifically for teams where documentation needs to be searchable, actionable, and consumable by agent workflows, providing the integration layer that connects a docs-as-code foundation to AI systems without requiring teams to build and maintain that connection themselves. Whether that tradeoff is worthwhile depends on a team's engineering capacity and appetite for infrastructure ownership.

Teams that invest in docs-as-code practices, plain-text source files, version control, PR review, CI/CD publishing, are building the knowledge infrastructure that AI-integrated products will depend on. The interesting question is not whether that infrastructure matters. After all, it is whether your team built it with enough discipline that it is actually usable when something else needs to consume it. Most teams, in my experience, have not answered that question yet. Most of them do not know they need to.

Sources

  1. gitdoc.ai
  2. docsio.co
Filed underDocs as Code

More in Docs as Code