A curated list of tools, patterns, and methodologies for a text-based, versionable, and automated world.
Everything as Code (EaC) is the philosophy of treating all aspects of the software development lifecycle and business operations—infrastructure, diagrams, presentations, policies, and even finance—as code. If it's in Git, it exists.
- Foundations
- Infrastructure & Cloud
- Visuals & Media
- Data & Analytics
- Business & Productivity
- Patterns & Methodologies
- Resources
- Related Awesome Lists
The languages and specifications that power the EaC world.
- YAML - Human-friendly data serialization standard.
- HCL - HashiCorp Configuration Language built for infrastructure.
- JSON - Lightweight data-interchange format.
- TOML - Tom's Obvious Minimal Language for configuration files.
- CUE - Data validation language that makes it easy to define and use data schemas.
- Jsonnet - Data templating language for generating JSON/YAML.
- OpenAPI - Standard for defining RESTful APIs in YAML/JSON.
- Markdown - The ubiquitous markup language for documentation.
Define and provision infrastructure using declarative configuration files.
- Terraform - Infrastructure as Code tool for building, changing, and versioning infrastructure.
- OpenTofu - Open source fork of Terraform.
- Pulumi - Infrastructure as Code using familiar programming languages.
- CDK - Define AWS cloud infrastructure using familiar programming languages.
- CDKTF - Use familiar programming languages to define Terraform infrastructure.
Manage system and application configuration through version-controlled files.
- Ansible - Agentless automation and configuration management in YAML.
- Helm - The package manager for Kubernetes with templated YAML.
- Kustomize - Kubernetes native configuration management without templates.
Define security, compliance, and governance rules as versionable code.
- Open Policy Agent - Policy-based control for cloud native environments.
- Sentinel - Policy as code framework by HashiCorp.
- Conftest - Write tests against structured configuration data.
- Checkov - Static analysis tool for infrastructure as code security.
- Trivy - Comprehensive security scanner for containers and IaC.
- Falco - Cloud native runtime security using declarative rules.
Create diagrams and visualizations from text-based definitions.
- D2 - A modern declarative language that turns text into professional diagrams.
- Mermaid - JavaScript-based diagramming tool that renders Markdown-inspired text.
- PlantUML - Create UML diagrams from plain text descriptions.
- Graphviz - Open source graph visualization software using DOT language.
- Diagrams - Draw cloud system architecture in Python code.
- Markmap - Visualize Markdown documents as interactive mindmaps.
- Structurizr - Architecture diagrams as code using the C4 model.
- Infographic - Declarative infographic rendering.
Build slide decks using text files and version control.
- Slidev - Markdown-based presentation slides with Vue components for developers.
- Marp - Markdown presentation ecosystem with CLI and VS Code support.
- reveal.js - HTML presentation framework with Markdown support.
- Spectacle - React-based presentation library.
Create professional documents from markup and code.
- Typst - Modern markup-based typesetting system for documents.
- LaTeX - Document preparation system for high-quality typesetting.
- Pandoc - Universal document converter between markup formats.
- Asciidoctor - Text processor for converting AsciiDoc to various formats.
Generate video content programmatically.
- Remotion - Create real videos programmatically using React.
- Manim - Create mathematical animations programmatically in Python.
- Satori - Convert HTML and CSS into SVG images.
- Motion Canvas - TypeScript library for creating animated videos.
Define data pipelines and transformations in version-controlled code.
- dbt - The industry standard for data transformation as code.
- SQLMesh - Next-generation data transformation framework.
- Malloy - Experimental language for describing data relationships.
- Dagster - Data orchestration platform with declarative pipelines.
Build reports and dashboards using SQL and Markdown.
- Evidence.dev - Build high-quality data products using SQL and Markdown.
- Rill - Fast operational dashboards from SQL and YAML.
Define data validation and expectations as code.
- Great Expectations - Data validation and documentation as code.
- Soda - Data quality testing using YAML configuration.
- dbt tests - Built-in testing framework for dbt models.
Programmatic charting and plotting tools for data analysis.
- Matplotlib - Comprehensive 2D plotting library for Python.
- Seaborn - High-level statistical data visualization built on Matplotlib.
- Altair - Declarative statistical visualization library for Python built on Vega-Lite.
- Plotly - Interactive plotting library for Python, R, and JavaScript.
- Bokeh - Interactive visualization library for modern web browsers.
- ggplot (plotnine) - Grammar of graphics for Python inspired by R's ggplot2.
- Vega/Vega-Lite - Declarative language for creating, saving, and sharing interactive visualization designs.
- D3.js - JavaScript library for manipulating documents based on data.
- Chart.js - Simple yet flexible JavaScript charting for designers & developers.
- Holoviews - Declarative data analysis and visualization library for Python.
Create and maintain your resume in structured data formats.
- JSON Resume - An open source standard for resumes in JSON format.
- Standard Resume - Build a professional resume from a text-based workflow.
- HackMyResume - Generate resumes from JSON/YAML.
- RenderCV - Write your CV as YAML.
Track personal and business finances in plain text.
- Beancount - Double-entry bookkeeping in plain text.
- Ledger - Command-line accounting with plain text files.
- hledger - Plain text accounting software inspired by Ledger.
Manage knowledge and notes in plain text format.
- Org Mode - Notes, planning, and authoring in plain text for Emacs.
- Obsidian - Knowledge base that works on local Markdown files.
Approaches for scaling the EaC philosophy across organizations.
- GitOps - Using Git as the single source of truth for declarative infrastructure.
- Architecture Decision Records - Capture important architectural decisions in text files.
- Docs as Code - Apply software development practices to documentation.
- Literate Programming - Writing code as a narrative for humans.
- API Design First - Define APIs before implementing them.
- Schema First - Define data schemas before writing application code.
Essential reading for the Everything as Code practitioner.
- Infrastructure as Code - Comprehensive guide to managing cloud infrastructure with automation by Kief Morris.
- Terraform: Up & Running - Practical guide to writing, planning, and creating IaC with Terraform by Yevgeniy Brikman.
Key articles explaining EaC concepts and practices.
- Infrastructure as Code: A Primer - HashiCorp's introduction to IaC concepts.
Conference talks and presentations about EaC practices.
- Infrastructure as Code - Fowler's original definition of IaC.
- Everything as Code - Seth Vargo's talk on codification and automation in cloud environments.
Other curated lists covering related topics.
- Awesome Terraform - Curated list of Terraform resources and modules.
- Awesome Pulumi - Resources for Pulumi infrastructure as code.
- Awesome Ansible - Ansible roles, playbooks, and resources.
- Awesome Kubernetes - Curated list for Kubernetes.
- Awesome GitOps - Resources for GitOps practices.
- Awesome Policy as Code - Curated list of Policy as Code resources.
- Awesome README - Curated list of awesome READMEs.
- Awesome Technical Writing - Technical writing resources.
- Awesome dbt - Curated list of dbt resources.
- Awesome Data Engineering - Data engineering resources.
- Awesome Open Policy Agent - Resources for OPA and Rego.
- Awesome DevSecOps - Security as code practices.
- Awesome Markdown - Markdown tools and resources.
Contributions are welcome! Please read the contribution guidelines first.