+
diff --git a/src/components/IFrameTool.astro b/src/components/IFrameTool.astro
new file mode 100644
index 0000000..9b39c39
--- /dev/null
+++ b/src/components/IFrameTool.astro
@@ -0,0 +1,43 @@
+---
+// Embeds an interactive tool (an HTML file in /public/) inside a Starlight page.
+// The iframe takes the full content width and a tall fixed height; on small
+// viewports we collapse the height so it remains usable.
+interface Props {
+ src: string;
+ title: string;
+ height?: string;
+}
+const { src, title, height = "min(78vh, 760px)" } = Astro.props as Props;
+---
+
+
+
+
+
+
diff --git a/src/content/docs/index.md b/src/content/docs/index.md
index 4e28639..9b01900 100644
--- a/src/content/docs/index.md
+++ b/src/content/docs/index.md
@@ -1,35 +1,26 @@
---
title: Plinth
-description: An open-source platform foundation for enterprise teams running fleets of internal-tooling modules.
+description: An open-source platform foundation for organisations running fleets of internal-tooling modules at regulated companies.
template: splash
hero:
title: |
- The load-bearing base for
enterprise internal tooling.
- tagline: A substrate, an SDK, a scaffolder. Six commitments. One Helm install. Modules grow on top — so each one isn't the platform's weakest link.
+ A platform foundation for
internal‑tooling fleets.
+ tagline: Plinth is an open-source platform for organisations that operate fleets of internal-tooling modules at regulated companies — banks, insurers, healthcare, government. A substrate, an SDK, a scaffolder. One Helm install. Modules grow on top.
actions:
+ - text: Open Plinth Sketch
+ link: /tools/sketch/
+ variant: primary
- text: Read the manifesto
link: /manifesto/
- variant: primary
- - text: Try it in 60 minutes
- link: /start/try-it/
variant: minimal
- - text: Architecture
- link: /architecture/
+ - text: View on GitHub
+ link: https://github.com/plinth-dev
variant: minimal
---
-:::tip[v0.1.0 just shipped]
-A working SDK across Go and TypeScript, two starters, a CLI, a Backstage scaffolder, a Helm chart, and a worked example — all stable, all open. Read the [launch announcement](/launch/v0-1-0/).
-:::
-
-## What Plinth gives a team
-
-A fleet of internal applications — project management, change requests, audit dashboards, HR tooling, internal admin — sharing one substrate, one SDK, one scaffolder. Modules import the platform; they don't re-implement it.
+You run a fleet of internal applications — project management, change requests, audit dashboards, HR tooling, internal admin. Modules that began as starters and grew. Every one re-implements the same plumbing: identity, authorisation, audit, observability, deployment. Every one inherits the same gaps: a session secret committed in `.env.example`, an authorisation layer that fails open in dev mode, no real healthcheck, no centralised logs.
-- **Substrate.** A Helm umbrella chart that brings up the entire reference architecture on a fresh Kubernetes cluster. Identity, authorization, secrets, data, observability, security, GitOps, dev portal — one `helm install`.
-- **SDK.** Versioned Go and TypeScript packages encoding the platform contracts: fail-closed Cerbos client, audit publisher, OTel wiring, typed errors, healthcheck, server-action forms. Imported, not copy-pasted.
-- **Scaffolder.** A CLI (`plinth new
`) and a Backstage software template. Five minutes from idea to deployed-in-dev.
-- **Manifesto.** Six commitments — zero standing trust, GitOps everything, immutable infrastructure, durable workflows, evidence by default, open source first. The opinions that shape every default.
+Plinth is the foundation those modules should have stood on from day one. *A substrate, an SDK, a scaffolder* — assembled into something a small platform team can deploy, and let dozens of modules grow on top of without each one becoming the platform's weakest link.
## Who it's for
@@ -37,9 +28,26 @@ Organisations that run **multiple internal-facing modules**, operate in a **regu
Not for single-product startups, cloud-native teams already happy with managed services, or teams uncomfortable operating Kubernetes.
+## What's shipped
+
+| Repository | What it is | Install |
+|---|---|---|
+| `platform` | Helm umbrella chart. CloudNativePG, Cerbos, OpenTelemetry Collector. Walking-skeleton dev profile. | `git clone && helm install` |
+| `sdk-go` (×7) | Fail-closed authz, non-blocking audit, OTel init, RFC 7807 errors, paginate, vault, health. | `go get …/sdk-go/@v0.1.0` |
+| `sdk-ts` (×7) | env, api-client, authz, authz-react, forms, otel-web, tables. | `pnpm add @plinth-dev/` |
+| `starter-api` | chi + pgx, every Go SDK pre-wired into one running service. | `git clone` |
+| `starter-web` | Next.js 16 + React 19, every TypeScript SDK pre-wired into one app. | `git clone` |
+| `cli` | `plinth new` — scaffold both starters with identifiers rewritten. | `go install …/cli/cmd/plinth@v0.1.1` |
+| `scaffolder` | Backstage software template emitting the same output as the CLI. | `pnpm add @plinth-dev/scaffolder-actions` |
+| `example-access-requests` | Worked internal-tool: temp-prod-access requests with approver workflow. | `git clone` |
+| `sketch` | DSL → typeset SVG architecture diagrams. CLI + GitHub Action. | `npm i @plinth-dev/sketch` |
+
+Eight repositories, all v0.1.0, all MIT.
+
## Where to go next
-- **New here?** Read the [manifesto](/manifesto/) and the [architecture overview](/architecture/).
-- **Curious how the substrate fits together?** Open the [interactive explorer](/explorer.html).
-- **Building modules on Plinth?** Start with the [SDK design docs](/sdk/).
-- **Standing it up?** Follow the [60-minute tutorial](/start/try-it/).
+- **Curious about the opinions?** [Read the manifesto](/manifesto/) — six commitments that shape every default.
+- **Want to see the architecture?** [Architecture overview](/architecture/) and the [interactive explorer](/explorer.html).
+- **Building on Plinth?** Start with the [SDK design docs](/sdk/).
+- **Try the tools** — [Plinth Sketch](/tools/sketch/) is live in your browser, no signup.
+- **Standing the platform up?** Follow the [tutorial](/start/try-it/).
diff --git a/src/content/docs/tools/index.md b/src/content/docs/tools/index.md
new file mode 100644
index 0000000..483fb6b
--- /dev/null
+++ b/src/content/docs/tools/index.md
@@ -0,0 +1,54 @@
+---
+title: Tools
+description: Free utilities for working with Plinth and the adjacent stacks Plinth integrates — Cerbos, OpenTelemetry, CloudEvents, Helm, RFC 7807. No signup, no tracking. Each tool's source is on GitHub.
+sidebar:
+ label: All tools
+ order: 100
+---
+
+Free utilities for working with Plinth and the adjacent stacks Plinth integrates — Cerbos, OpenTelemetry, CloudEvents, Helm, RFC 7807. No signup. No tracking. Each tool's source is on GitHub. Each tool's URL is bookmarkable and shareable.
+
+## Diagrams & visualisation
+
+### [Sketch](/tools/sketch/) — *live*
+
+A visual + DSL editor for system architecture diagrams. Type a few lines of plain text — components, edges, layers — get a typeset SVG matching this site's design language. Share via URL. Export PNG / SVG / embed iframe. Available as a [CLI + GitHub Action](https://github.com/plinth-dev/sketch) so you can render diagrams at build time and embed them in any README.
+
+> **Use instead of** Mermaid (default chrome reads as utility), draw.io (overkill), Excalidraw (looks amateur), screenshotting Whimsical.
+
+```bash
+npm install -g @plinth-dev/sketch
+plinth-sketch architecture.sketch -o architecture.svg
+```
+
+### Module Preview — *coming soon*
+
+Type a `plinth new` command and see the resulting file tree, dependency graph, and SDK surface area in the browser before installing.
+
+## Configuration builders
+
+### OTel Config — *coming soon*
+
+Drag-and-drop builder for OpenTelemetry Collector configurations. Pick receivers, processors, exporters from a catalog; outputs full YAML. Imports existing configs to validate. Targets: Tempo, Jaeger, SigNoz, Honeycomb, Datadog, vendor-neutral OTLP.
+
+### Values Diff — *coming soon*
+
+Paste two Helm `values.yaml` files; see a semantic diff with schema validation against the Plinth platform chart.
+
+## Validators & explorers
+
+### Audit Explorer — *coming soon*
+
+Paste CloudEvents JSON-lines; validate against the 1.0 spec; render as a queryable timeline. See what Plinth's audit module emits before adopting it.
+
+### Problem Builder — *coming soon*
+
+Visual builder for RFC 7807 Problem Details JSON. Validates trace + extension fields. Generates copy-paste code for `sdk-go/errors` and `@plinth-dev/api-client`.
+
+### Cerbos Lint — *coming soon*
+
+Paste a Cerbos policy; check syntax against the v1 schema; simulate decisions against principals you define inline.
+
+---
+
+**Want a tool that isn't here?** [File an issue](https://github.com/plinth-dev/.github/issues) describing what you'd build for an internal-tooling fleet. Tools with use cases beyond just Plinth get prioritised.
diff --git a/src/content/docs/tools/sketch.mdx b/src/content/docs/tools/sketch.mdx
new file mode 100644
index 0000000..07b8114
--- /dev/null
+++ b/src/content/docs/tools/sketch.mdx
@@ -0,0 +1,51 @@
+---
+title: Plinth Sketch
+description: Type a few lines of DSL — get a typeset architecture diagram in the Plinth design language. Share via URL. Export PNG / SVG. Live in your browser.
+template: splash
+sidebar:
+ label: Sketch
+ badge:
+ text: live
+ variant: success
+ order: 1
+hero:
+ title: |
+ Plinth Sketch.
+ tagline: A DSL for system architecture diagrams. Output is typeset SVG in this site's design language. The diagram on the home page was made with this tool.
+---
+
+import IFrameTool from "../../../components/IFrameTool.astro";
+
+
+
+## DSL syntax
+
+```sketch
+# Comments start with #.
+@layer Layer name # set the current layer
+
+id : Label / sublabel # define a node (sublabel optional)
+a -> b : edge label # directed edge (label optional)
+
+@cite Custom bottom-right text # optional cite line
+```
+
+That's the whole language. Layers stack vertically, nodes flow horizontally inside each layer, edges are auto-routed.
+
+## Use it at build time
+
+The same DSL that powers this in-browser editor ships as `@plinth-dev/sketch` on npm. Install once, render diagrams at build time, embed the SVG in your README:
+
+```bash
+npm install -g @plinth-dev/sketch
+plinth-sketch architecture.sketch -o architecture.svg
+```
+
+Or wire up the [GitHub Action](https://github.com/plinth-dev/sketch) to re-render on every commit:
+
+```yaml
+- uses: plinth-dev/sketch@v0
+ with: { pattern: 'docs/**/*.sketch', commit: 'true' }
+```
+
+[**View source on GitHub →**](https://github.com/plinth-dev/sketch)