Get AI summaries of any video or article — Sign up free
Marcia Riefer Johnston & Dave May - One AWS team’s move to docs as code thumbnail

Marcia Riefer Johnston & Dave May - One AWS team’s move to docs as code

Write the Docs·
5 min read

Based on Write the Docs's video on YouTube. If you like this content, support the original creators by watching, liking and subscribing to their content.

TL;DR

Move documentation source files into version control and treat them like code to gain transparent history and reviewable changes.

Briefing

AWS’s documentation team moved from Word-and-PDF workflows to “docs as code” in GitHub, cutting publication time and making documentation changes as reviewable and traceable as software changes. The core shift: documentation source files became plain-text, version-controlled artifacts; publishing became automated via CI/CD; and approvals moved into pull requests instead of email chains. The result mattered most for quick starts—deployment guides customers use to deploy AWS architectures quickly—where slow formatting cycles and manual conversions were eating time.

In the earlier process, developers built the quick start and produced a Word-based deployment guide draft. Technical writers then edited the Word document via email back-and-forth, added margin comments, and finally the team published a PDF. That workflow was “miserable” for multiple reasons: formatting broke across Word versions and operating systems (Windows, macOS, and even Linux-based alternatives), and even small edits required manual conversion and upload steps. One example described a chunk of text turning white—effectively invisible—highlighting how fragile WYSIWYG document handling could be.

The team’s first docs-as-code phase (“docs 2.0”) replaced Word with AsciiDoc source files stored in GitHub. Writers and developers edited the same text-based files in VS Code, and GitHub commits became the audit trail for every documentation change. Publishing moved to GitHub Pages, generated automatically from the AsciiDoc sources, so updates to the underlying files flowed straight into the published HTML without manual Word-to-PDF/HTML conversion. Because quick starts are open source, the entire history of documentation edits became transparent to external contributors, enabling pull requests and snapshot comparisons at any point in time.

Docs 2.0 also introduced a tradeoff: documentation changes ran through the same testing pipeline as code changes, so even a typo fix could wait hours for end-to-end code validation. The team also struggled with content structure—generic sections (like AWS costs and licensing) had to be replicated across many guides, and a single “settings” file grew increasingly complex with conditional statements for different languages, marketplaces, and regional constraints.

The next iteration (“docs 2.1”) separated documentation from code testing by moving docs into a dedicated branch (“doc edits”) with its own CI/CD pipeline. That pipeline generated previews on commit and published to GitHub Pages only after approved merges. Structurally, docs 2.1 reduced the number of AsciiDoc files (from 13 to 8) and extracted shared material into a standalone “AWS general information guide,” making individual deployment guides “skinnier.” It also replaced sprawling conditionals with variables and standalone files per doctype and language, so authors could select the relevant pieces without managing a growing matrix of options.

Across both phases, the team’s biggest measurable goal—faster publication—improved substantially. They estimate docs 2.0 cut average writer publication time by about 25% versus the Word workflow, and docs 2.1 could roughly halve throughput time further, though exact quantification was difficult due to many variables. Remaining issues included non-standard permissions across repositories, occasional pipeline stalls requiring CI/CD troubleshooting, and plans for better automated testing/linting, retroactive boilerplate updates, and translation management. In short: documentation became a first-class, automated, reviewable engineering artifact—faster to ship, easier to audit, and less dependent on fragile formatting tools.

Cornell Notes

AWS’s quick-start documentation shifted from Word/PDF workflows to “docs as code” in GitHub. The team replaced Word templates with AsciiDoc source files, tracked changes via GitHub commits, and automated publishing to HTML through GitHub Pages. Docs 2.0 improved traceability and removed manual conversion steps, but it also forced documentation edits through code testing pipelines, slowing even small fixes. Docs 2.1 addressed that by separating documentation into its own branch and CI/CD pipeline, extracting shared content into an “AWS general information guide,” and reducing complex conditional logic using variables and standalone files per doctype/language. The payoff was faster publication and a more open, pull-request-based collaboration model.

What made the original Word-based documentation workflow painful, beyond “formatting differences” in general?

The workflow relied on email handoffs between developers, partners, and technical writers, with Word change tracking and margin comments. Formatting broke across environments: Word 2016 on Windows, Word 2013 on macOS, and Linux-based alternatives. That fragility could produce serious rendering issues—one described case turned a chunk of text white, nearly invisible until caught. Even minor edits required manual conversion from updated Word documents into PDF/HTML and then manual upload/publishing.

How did docs 2.0 change collaboration and publishing mechanics?

Docs 2.0 moved documentation source into GitHub using AsciiDoc (plain text) and had writers edit alongside developers in VS Code. Every change became a GitHub commit, with history and snapshots available to anyone because quick starts are open source. Publishing switched to GitHub Pages, generated automatically from the AsciiDoc sources, eliminating manual Word-to-PDF/HTML conversion steps. The team also highlighted that text-based sources are format-neutral across Windows/macOS/Linux and across editors.

Why did docs 2.0 slow down even simple documentation edits?

Documentation changes were put through the same testing pipeline as code changes. Since code testing could take hours, a small typo fix could wait for end-to-end quick-start testing before the documentation update went live. The team later separated these pipelines in docs 2.1 to avoid that unnecessary delay.

What structural problems emerged in docs 2.0 as the catalog grew?

The team had to repeat generic content (like AWS costs and licensing and customer responsibility) across many guides, so any update to that shared material required manual replication across the catalog. They also started using a single settings file with many conditional statements to handle variations (AWS marketplace subscription requirements, non-CloudFormation languages, and geographic limitations). As the list of options expanded, the settings file became confusing and harder for authors to manage.

What specific changes in docs 2.1 reduced complexity and improved speed?

Docs 2.1 moved docs into a separate GitHub branch (“doc edits”) with its own CI/CD pipeline, so doc updates appeared instantly without waiting for code tests. It reduced AsciiDoc files (13 to 8) and extracted shared text into a standalone “AWS general information guide,” so individual deployment guides became “skinnier.” It also replaced most conditionals with variables defined in a single settings file and created standalone AsciiDoc files per doctype and language, letting authors choose applicable files rather than manage a growing conditional matrix.

What limitations remained after docs 2.1?

Permissions weren’t standardized across repositories, so writers could sometimes merge their own pull requests and sometimes couldn’t. Pipelines could occasionally get stuck, requiring CI/CD developers to troubleshoot. The team wanted more automated testing/linting to catch typos and errors earlier, better version control for boilerplate so updates apply retroactively when appropriate, and improved strategies for translations.

Review Questions

  1. How did separating documentation into its own branch and CI/CD pipeline address the biggest docs 2.0 bottleneck?
  2. Describe how docs 2.1 reduced conditional logic and why that matters for authoring at scale.
  3. What tradeoffs come with open-source-style pull requests for documentation, and what quality-control mechanism did the team consider?

Key Points

  1. 1

    Move documentation source files into version control and treat them like code to gain transparent history and reviewable changes.

  2. 2

    Automate publishing (e.g., GitHub Pages from AsciiDoc) to eliminate manual Word-to-PDF/HTML conversion steps.

  3. 3

    Avoid routing documentation edits through code test pipelines; separate doc CI/CD so typo-level changes don’t wait hours.

  4. 4

    Reduce repeated generic content by extracting shared sections into a dedicated “AWS general information guide.”

  5. 5

    Replace complex conditional settings with variables and standalone files per doctype/language to keep authoring manageable as options grow.

  6. 6

    Plan for operational gaps in docs-as-code systems, including permissions consistency, pipeline reliability, and automated linting/testing.

  7. 7

    Expect open-source collaboration to increase throughput but also require quality controls for unclear or incorrect pull requests.

Highlights

The team’s biggest workflow win came from removing manual Word-to-PDF/HTML conversion: AsciiDoc changes flowed automatically into published HTML via GitHub Pages.
Docs 2.0 improved auditability and collaboration, but using the code testing pipeline for docs meant even tiny fixes could take hours to publish.
Docs 2.1 separated doc updates into a dedicated branch and CI/CD pipeline, enabling faster previews and publishing without code-test delays.
Extracting shared material into an “AWS general information guide” made individual deployment guides smaller and easier to maintain.
The remaining challenges weren’t conceptual—they were operational: permissions inconsistencies, occasional pipeline stalls, and the need for stronger automated testing/linting and translation strategy.

Topics

Mentioned

  • Marcia Riefer Johnston
  • Dave May
  • Eric Holscher
  • Eric Redmond
  • Troy Howard
  • Anne Gentle
  • Ben
  • Tom Marshall
  • Ben Tom Marshall
  • Kenzie
  • AWS
  • CI/CD
  • CD
  • PDF
  • HTML
  • IDE
  • VS Code
  • GitHub Pages