“Documentación como código” se menciona mucho. En su forma más simple, significa tratar la documentación de la misma manera que el código fuente: almacenada en control de versiones, escrita en texto plano, revisada mediante pull requests y construida a través de CI/CD. Pero hay una brecha entre la idea y hacerlo bien en la práctica. Esta guía cubre qué es docs-as-code, qué enfoques existen y dónde falla cada uno.
Por qué importa docs-as-code
Los equipos de software ya tienen flujos de trabajo para gestionar cambios. El código pasa por control de versiones, revisión, pruebas y despliegue. La documentación generalmente no. Vive en una wiki, un Google Doc o un espacio de Confluence — fuera del flujo de desarrollo, mantenida por quien recuerde actualizarla.
El resultado es predecible: la documentación se desfasa de la realidad. Un endpoint de API se renombra, pero la página del wiki sigue referenciando la ruta antigua. Una opción de configuración se depreca, pero la página de Notion dice que es obligatoria. Nadie se da cuenta hasta que un usuario reporta un error.
Docs-as-code resuelve esto integrando la documentación en el mismo flujo de trabajo:
- Control de versiones — cada cambio se rastrea, se atribuye y es reversible
- Pull requests — los cambios en documentación se revisan junto con los cambios de código
- CI/CD — la documentación se construye y despliega automáticamente al hacer merge
- Ramas — los borradores de documentación viven en ramas de funcionalidad hasta que están listos
- Blame — puede ver quién escribió cada línea y cuándo
La comunidad Write the Docs lleva años promoviendo este enfoque, y el argumento se ha ganado en gran medida. La parte difícil es elegir las herramientas adecuadas.
Tres enfoques para docs-as-code
1. Generadores de sitios estáticos
Herramientas como Docusaurus, MkDocs, Hugo y Jekyll toman archivos markdown de un repositorio git y construyen un sitio HTML estático. Usted edita archivos .md en su IDE, hace commit, push, y CI construye y despliega el sitio.
Ventajas:
- Flujo de trabajo verdaderamente nativo de git — los archivos son simplemente markdown en un repositorio
- Compilaciones rápidas, alojamiento económico (Netlify, Vercel, GitHub Pages)
- Control total sobre plantillas, estilos y estructura
- Sin dependencias en tiempo de ejecución — la salida es HTML estático
Desventajas:
- Sin editor web — todos deben usar un editor de texto y git
- Sin control de acceso integrado (es un sitio estático)
- Sin búsqueda sin un servicio de terceros (Algolia, Pagefind)
- Los contribuidores no técnicos quedan excluidos
- La gestión de frontmatter se vuelve tediosa a escala
Ejemplo de flujo de trabajo:
# Clonar el repositorio de documentación
git clone [email protected]:yourorg/docs.git
cd docs
# Crear una nueva página
cat > docs/guides/deployment.md << 'EOF'
---
title: Deployment Guide
sidebar_position: 3
---
# Deploying to Production
Follow these steps to deploy...
EOF
# Vista previa local
mkdocs serve # o docusaurus start, hugo serve
# Commit y push — CI se encarga del resto
git add docs/guides/deployment.md
git commit -m "docs: add deployment guide"
git push
Esto funciona bien para documentación orientada a desarrolladores donde cada contribuidor se siente cómodo con git. Se desmorona cuando gerentes de producto, ingenieros de soporte o escritores técnicos necesitan contribuir.
2. Wikis y bases de conocimiento
Confluence, Notion, Outline, Wiki.js y BookStack proporcionan editores web con interfaces WYSIWYG. El contenido vive en una base de datos y los usuarios editan a través de un navegador.
Ventajas:
- Barrera de entrada baja — cualquiera puede escribir
- Editores ricos con incrustaciones, tablas y multimedia
- Colaboración en tiempo real (en algunas herramientas)
- Búsqueda integrada
Desventajas:
- El contenido NO está en git (o solo como exportación unidireccional)
- Sin revisión por pull request para cambios de documentación
- Sin ramas ni staging — las ediciones son inmediatas
- Dependencia del proveedor — exportar de Confluence a cualquier otra cosa es doloroso
- El historial de versiones es básico comparado con git
Estas herramientas optimizan la comodidad de escritura a costa de todo lo que hace valioso docs-as-code. Puede escribir documentación fácilmente, pero pierde control de versiones, revisión y la conexión con su código.
3. Plataformas de documentación con sincronización git
Una categoría más nueva: plataformas que combinan un editor web con integración real de git. La idea es dar a los contribuidores no técnicos una interfaz WYSIWYG mientras se mantiene el contenido en un repositorio git como fuente de verdad.
Este es el enfoque que toma DocPlatform. Las ediciones realizadas en la interfaz web crean commits de git. Los cambios enviados a git desde un IDE aparecen en el editor web. Ambas direcciones funcionan — no es un espejo unidireccional.
Ventajas:
- Editor web para contribuidores no técnicos
- El contenido vive en git — pull requests, ramas, blame funcionan
- Búsqueda, control de acceso y publicación integrados
- Sin paso de compilación — la documentación publicada se actualiza al guardar
Desventajas:
- La sincronización bidireccional es difícil de hacer bien (consulte Por Qué las Herramientas de Documentación con Git Rompen la Sincronización)
- Menos opciones de plantillas que los generadores estáticos
- Ejecutar un servidor (vs. alojamiento estático)
Tabla comparativa
| Capacidad | Generadores estáticos | Wikis | Plataformas + Git |
|---|---|---|---|
| Contenido en git | Sí | No | Sí |
| Revisión por PR | Sí | No | Sí |
| Editor web | No | Sí | Sí |
| Contribuidores no técnicos | Difícil | Fácil | Fácil |
| Búsqueda integrada | No (terceros) | Sí | Sí |
| Control de acceso | No (sitio estático) | Sí | Sí |
| Paso de compilación/despliegue | Requerido | Ninguno | Ninguno |
| Complejidad de alojamiento | Baja (estático) | Media (app + BD) | Baja-Media (binario único) |
Haciéndolo funcionar: patrones prácticos
Sea cual sea el enfoque que elija, estos patrones hacen docs-as-code más efectivo:
Co-localice documentación con código
Coloque su documentación en el mismo repositorio que el código que documenta, o al menos en la misma organización de GitHub con referencias cruzadas. Cuando un desarrollador cambia un endpoint de API, la documentación para ese endpoint debería ser visible en el mismo PR.
Use frontmatter de forma consistente
Cada página de documentación debería tener frontmatter estructurado:
---
title: "API Authentication"
description: "How to authenticate with the DocPlatform API using JWT tokens"
last_reviewed: 2026-02-15
owner: "@backend-team"
---
Los campos last_reviewed y owner no son campos estándar de Hugo — son metadatos personalizados. Pero hacen trivialmente fácil encontrar documentación obsoleta y saber a quién preguntar.
Automatice las verificaciones de frescura
Configure un trabajo de CI que marque documentación no revisada en 90 días:
#!/bin/bash
find docs/ -name "*.md" -exec grep -l "last_reviewed" {} \; | while read f; do
reviewed=$(grep "last_reviewed" "$f" | cut -d'"' -f2)
if [[ $(date -d "$reviewed" +%s) -lt $(date -d "-90 days" +%s) ]]; then
echo "STALE: $f (last reviewed $reviewed)"
fi
done
No condicione a la perfección
El mayor modo de fallo de docs-as-code es hacer la contribución demasiado difícil. Si su plantilla de PR requiere una revisión de guía de estilo, una verificación de enlaces, una verificación ortográfica y dos aprobaciones — la gente dejará de escribir documentación. Mantenga la barra baja para cambios de contenido. Reserve la revisión rigurosa para cambios estructurales.
Dónde encaja DocPlatform
DocPlatform está construido para equipos que quieren docs-as-code sin forzar a todos a usar la línea de comandos. El editor WYSIWYG maneja la escritura. Git maneja el control de versiones. El patrón Content Ledger maneja la sincronización bidireccional para que ningún lado sobrescriba al otro.
La Community Edition es gratuita y autoalojada — instálela en cinco minutos con una descarga de un solo binario. Si desea alojamiento gestionado, los planes en la nube comienzan en $0 para equipos pequeños.
La parte difícil de docs-as-code nunca fue la filosofía. Fueron las herramientas. Los generadores estáticos funcionan para desarrolladores pero excluyen a todos los demás. Las wikis incluyen a todos pero abandonan el control de versiones. La respuesta correcta es ambas: una interfaz de escritura que las personas no técnicas pueden usar, respaldada por un flujo de trabajo git en el que los desarrolladores confían.