
Docs-as-Code: Automating Documentation for User-Centric Experiences
Our Docs-as-Code initiative is built on a simple principle: treat documentation as a living, breathing part of the development process.
Our strategy is to move as much of the "heavy lifting" as possible into the one layer we can guarantee is consistent everywhere
This document outlines the strategic direction for our SmoothGlue platform. It is our "why"—the core philosophy that guides our architecture, our tool choices, and our mission to provide a world-class platform that accelerates development, ensures security, and simplifies operations for everyone.
For years, building and deploying software has involved a painful handoff between Developers, Site Reliability Engineers (SREs), and Security. Each team speaks a different language, uses different tools, and optimizes for different outcomes. This creates friction, slows down delivery, and introduces risk. Our developers want to ship features; our SREs want stability; our security team wants to ensure compliance. Today, these goals are often in conflict.
Our platform strategy is designed to solve this fundamental problem by creating a single, unified control plane built on Kubernetes. Think of it as a universal translator and a central factory for all the resources our applications need.
Instead of developers learning five different tools to request a database or configure a security policy, they make a simple, standardized request. The platform intelligently interprets this request and provisions the right resource for the right environment—be it a simple database for a test environment or a highly-available, multi-region database for production on AWS or Azure.
By choosing Crossplane as the engine for this control plane, we are adopting a community-backed, production-ready standard. This allows us to:
This is a multi-year strategic investment that moves us from manually stitching together disparate systems to building a true, scalable platform-as-a-product. It is the foundation for our next phase of growth and efficiency.
The central challenge we face is impedance matching. Our developers, SREs, and security experts all have valid concerns, but their tools and workflows don't naturally align.
In the past, we bridged these worlds with fragile, custom-coded scripts and complex CI/CD pipelines—stitching Terraform outputs into Helm values, managed by one central team. This model was a bottleneck. It didn't scale, was prone to errors, and created a dependency on a small group of experts.
Our strategy is to move as much of the "heavy lifting" as possible into the one layer we can guarantee is consistent everywhere: the Kubernetes control plane.
We're not just using Kubernetes to run containers; we're leveraging its powerful, extensible API as the central point of truth for our entire platform. Why here? Because we get a massive head start:
This is our "stable ground." Everything below this layer is cloud-specific and variable. By building here, we create an abstraction that can endure changes in the underlying infrastructure. Yes, there is work to bridge that (a ton of it, in fact), but we have to pick our battles.
The Magic Ingredient: Crossplane and True Lifecycle Management
If Kubernetes is our foundation, Crossplane is the engine we install on top. It teaches the Kubernetes API to speak the language of external services like AWS, Azure, and GCP.
This is the key that unlocks true lifecycle management, a concept that declarative, one-shot tools, like Terraform, cannot provide on their own.
PostgreSQLInstance
.
PostgreSQLInstance
for their app.dev
, it might provision a simple in-cluster Postgres pod. In prod
on AWS, it provisions a highly-available, multi-region RDS instance with backups and encryption enabled.This allows us to bundle an application with all its external needs into a single, manageable unit that can be deployed anywhere with a single command.
No strategy is without its tradeoffs. We are clear-eyed about the challenges and are actively working to mitigate them.
Our Docs-as-Code initiative is built on a simple principle: treat documentation as a living, breathing part of the development process.
We’re on a mission to enable developers to ship fast and ship safe, especially in environments where the margin for error is zero.
An authentic user experience goes far beyond giving customers what they say they want. So we go deeper and research the underlying wants and needs of the end-user. To provide a high-quality user experience, we have to be seamless in our disciplines, which we discuss in detail.