Why DevOps Needs a Website
Why DevOps Needs a Website
February 14, 2025
DevOps teams ship code, infrastructure, and processes. But knowledge—how we do things, why we chose tool X, what we learned from incident Y—often lives in wikis, Notion, or scattered docs. A dedicated website changes that.
Why a Website?
- Credibility — A polished site signals professionalism. Recruiters, partners, and the community take you seriously.
- Discoverability — Google indexes your content. Engineers find your guides when they search “how to set up Traefik with Docker.”
- Ownership — You control the content, the design, the URLs. No vendor lock-in.
- Documentation hub — Tutorials, runbooks, architecture docs in one place, linked and searchable.
- SEO and backlinks — Quality content attracts links; authority compounds.
General Problems Setting Up a Website (and Documentation Site)
1. Hosting & TLS
- Problem: Where do you run it? Shared hosting, VPS, Kubernetes, serverless?
- TLS: Certificates, renewal, HTTP→HTTPS redirect.
- Cost vs. simplicity: Managed hosting is easy but pricey; self-hosting is cheap but requires ops.
2. Content Management
- Problem: How do you write and publish? WYSIWYG editor, Markdown, headless CMS?
- Versioning: Git-based workflows vs. database-backed CMS.
- Collaboration: Who can edit? Review workflow?
3. Documentation Sprawl
- Problem: Confluence, Notion, Google Docs, READMEs—content ends up everywhere.
- Finding things: Search across tools is painful.
- Consistency: Different formats, broken links, outdated info.
4. Build & Deploy
- Problem: Manual FTP uploads, custom scripts, or proper CI/CD?
- Preview: How do you test before production?
- Rollback: What if a deploy breaks something?
5. Performance & Scale
- Problem: Dynamic sites can be slow; static sites scale effortlessly.
- CDN: Do you need one? How do you invalidate cache?
Approaches We Could Have Used
flowchart TD
Start[Need: DevOps Website] --> A{Content type?}
A -->|"Blog + docs"| B{Complexity?}
A -->|"Docs only"| C[Docusaurus / MkDocs]
B -->|"Simple"| D[Static: Hugo / Jekyll]
B -->|"Dynamic"| E[Next.js / Headless CMS]
B -->|"Internal wiki"| F[Confluence / Notion]
D --> G[Our choice]
G --> H[Hugo + Hextra]
H --> I[Docker + Traefik]
| Approach | Pros | Cons |
|---|---|---|
| Hugo / Jekyll (static) | Fast, secure, no runtime, Markdown, Git-based | No WYSIWYG; rebuild on change |
| Docusaurus / MkDocs | Doc-focused, versioned docs, search | More opinionated; heavier |
| Next.js / Astro | React ecosystem, flexible | JavaScript runtime; more moving parts |
| Headless CMS (Strapi, Sanity) | Non-technical editors, API-driven | Backend to run, cost, vendor dependency |
| Confluence / Notion | Collaborative, easy to start | Not your domain; export limits; cost at scale |
| Wiki (MediaWiki, BookStack) | Familiar, multi-user | Requires DB, hosting, maintenance |
What We’re Proceeding With
We chose Hugo + Hextra + Docker + Traefik:
- Hugo — Single binary, fast builds, Markdown, no database.
- Hextra — Modern docs theme: search (FlexSearch), dark mode, Mermaid, sidebar.
- Docker Compose — One command to run the whole stack; reproducible.
- Traefik — Reverse proxy with Docker labels; automatic service discovery, TLS, no Nginx config edits.
Why This Stack?
- Dev-friendly: Edit Markdown, save, see changes. No npm watch or complex toolchain.
- Ops-friendly: Containers, labels, certs in one place. Easy to move to Kubernetes later.
- Content-friendly: Sections (blog, projects, tutorials), taxonomies (tags, tools), related links.
- Future-friendly: Static output can go to S3, Netlify, or any CDN; Traefik can front multiple services.
Pros and Cons
Pros
| Benefit | Details |
|---|---|
| Speed | Static HTML; no server-side rendering; CDN-cacheable |
| Security | No database, no app server; smaller attack surface |
| Cost | Cheap or free hosting; no runtime fees |
| Reproducibility | Docker Compose; same setup on any machine |
| Version control | Content and config in Git; full history |
| Extensibility | Custom layouts, shortcodes, Mermaid diagrams |
Cons
| Drawback | Mitigation |
|---|---|
| Rebuild on change | Hugo is fast; incremental builds help |
| No WYSIWYG | Markdown is quick to learn; editors like VS Code help |
| Learning curve | Hugo templates, Hextra config—docs and tutorials available |
| Self-hosting | Can deploy to Netlify/Vercel for zero-ops alternative |
Architecture at a Glance
sequenceDiagram
participant User
participant Traefik
participant Hugo
User->>Traefik: HTTPS (443)
Traefik->>Traefik: TLS termination
Traefik->>Hugo: HTTP (1313)
Hugo->>User: HTML/CSS/JS
Next Steps
- BeingDevOps Website Setup Project — Full architecture and stack
- Multistage Tutorial — Step-by-step setup guide