Welcome to Dinghy

Diagram · Infrastructure · ⋆ · as Code

What is it

An open-source toolchain
for everyday engineering

Diagram as Code

draw.io

Infrastructure as Code

OpenTofu
Terraform
Documentation as Code
Docusaurus
Slide as Code

Powered By

Architecture

Cli - Engine

curl -fsSL https://get.dinghy.dev/install.sh | sh

Single Lock

.dinghyrc

DINGHY_ENGINE_VERSION=0.1...

one lock, predictable versions

  • All dinghy docker images version
    • deno version / deno.lock
    • node version / yarn.lock
    • OpenTofu/Terraform version
    • TF Providers version
why

React

the problem

Terraform

HashiCorp Configuration Language

Copy & Paste

The HCL has no native abstraction

  • Two envs → duplicate every resource block
  • Ten envs → ten copies to keep in sync
  • A rename? Find-and-replace across the codebase

Modules help… until they don't

  • Modules are heavyweight
  • No types, no IDE autocomplete
  • for_each and count logic gets messy fast
  • Still just config — no real programming model
Rescue

Programmable IaC

CDKTF
Pulumi
Inspired by CDKTF

Cloud Development Kit for Terraform

Write infrastructure in TypeScript

Render as HCL in JSON format

  • Real language: loops, functions, imports
  • Full IDE support: types, autocomplete, refactoring
  • Build an in-memory model, then render to JSON

React as a Rendering Engine

Zod
YAML
React
TSX
Terraform
JSON

React's reconciler API
a generic tree-building engine

React Core Insight

React separates what from how to render it

  • Lightweight components - just functions
  • Virtual DOM - a tree of fibers
  • TSX is a natural fit for nested resources

React Everywhere

🌐 Web
The original
📱 Native
iOS & Android
💻 CLI
Gemini/Copilot
/Claude Code
☁️ Infrastructure
Dinghy — renders to Terraform / diagrams / docs
without

Complicated Parts

  • useState — local mutable state
  • useEffect — side effects & lifecycle
  • useMemo — memoize expensive computations

Dinghy only renders once

power of

withContext

Show Case

Diagram as Code

Simple

Basic Shape

Readable

Named Shape

draw.io

Styled Shape

Show Case

Infrastructure as Code

  • Generated 248 lines of Terraform code
  • From 8 lines of source code
Minimal Setup

Documentation as Code

one file, one command, live preview at localhost:3000

Show Case

Web App

S3 Deployment

built-in S3 support with smart defaults

  • Removes .html extensions for clean URLs
  • Applies gzip compression to text files
  • Sets optimal cache-control headers
Presentation Builder

Slide as Code

author RevealJS presentations in YAML, Markdown, or HTML

  • YAML DSL maps keys to HTML elements
  • Self-contained HTML output with inline assets
  • YAML, Markdown and HTML auto-loaded
  • Live reload development server
  • Prezi-style zoom and pan (Dinghy exclusive)
Show Case

Slide Features

Build Slide
Single HTML File
RevealJS Features Slide
in the AI Age

Is Dinghy still relevant?

  • People still write code - with AI help
  • Dinghy provides abstractions to scale code
    • Generation
    • Maintenance
    • Software development lifecycle
  • Dinghy works with AI
dinghy codebase

800K lines of code

* as of Feb 2026
  • 🛠️ 15% hand crafted
  • ⚙️ 80% generated by CodeGen
  • 🤖 5% with AI assistant
    • 👀 Every line reviewed
    • 🤗 Worry free
AI + Dinghy
slide skill

/dinghy-slide

dinghy skill will install the skills for popular AI assistants

Fun facts

Dinghy Loves

❤️

TerrafERB

Terraform with ERB templating

recap

simple · reliable · flexible

Ready to set sail?

$curl -fsSL https://get.dinghy.dev/install.sh | sh

Guides & examples → https://dinghy.dev