Skip to content

Commit 5ebb79d

Browse files
lex00claude
andcommitted
Site: homepage in the reader's language
A plain intro under the headline saying who it is for, cards framed as the reader's situation, tool descriptions without our nouns, and a bridge for people already on a hosted control plane. "Estate" is defined at the top of the work page. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EFsqVDRNABeAMP8zhQawtz
1 parent 67dd19f commit 5ebb79d

6 files changed

Lines changed: 27 additions & 17 deletions

File tree

assets/css/site.css

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ hr{border:0;border-top:1px solid var(--rule);margin:2rem 0;}
4747
.lede{max-width:var(--measure);}
4848
.lede h1{font-size:clamp(2.2rem,6vw,3.4rem);}
4949
.lede .sub{font-size:1.25rem;max-width:40rem;}
50+
.lede .intro{max-width:40rem;margin-top:1rem;font-size:1.05rem;}
51+
.bridge{margin-top:1.4rem;padding:1rem 1.2rem;background:var(--panel);border:1px solid var(--rule);border-radius:10px;color:var(--muted);font-size:0.95rem;}
5052
.cta{margin-top:1.6rem;display:flex;gap:0.7rem;flex-wrap:wrap;}
5153
.problems,.evidence{margin-top:3.5rem;}
5254
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem;margin:1rem 0 0;}

content/_index.md

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,30 +2,32 @@
22
title: "Intentius"
33
lede: "The creators of choudoufu and chant"
44
sub: "Our tools are free. Need help?"
5+
intro: "Intentius is an infrastructure consultancy. We help teams whose Terraform has outgrown one shared state file, and teams that want an agent doing routine operations without holding a production key. We do it with two tools we built and give away."
56
problems:
6-
- title: "A Terraform estate nobody wants to inherit"
7-
body: "We move ownership onto the resources as tags. Handover becomes an IAM grant."
8-
link: "Estate migration"
7+
- title: "Your Terraform has outgrown one shared state file"
8+
body: "Teams stepping on each other, and a handover that takes a migration project. We put ownership on the resources themselves, so splitting the work or handing it over is a permissions change rather than a rewrite."
9+
link: "How that works"
910
href: "/work/#estate-migration-and-carving"
10-
- title: "Agents that need production access"
11-
body: "The program makes the call and never holds the credential."
12-
link: "Agents against real infrastructure"
11+
- title: "You want an agent doing ops, without giving it the keys"
12+
body: "The agent runs your routine operations as a program with approval gates, and it never sees the production credential."
13+
link: "How that works"
1314
href: "/work/#agents-against-real-infrastructure"
14-
- title: "A pipeline per component, drifting"
15-
body: "Describe each component as data and the release compiles from it. Adding one is a declaration, and the CI is generated from the same declarations."
16-
link: "Releases as compile targets"
15+
- title: "Every service has its own deploy pipeline"
16+
body: "Describe each one as data, and the deploy and its CI are generated. The hundredth service costs the same as the first."
17+
link: "How that works"
1718
href: "/work/#releases-as-compile-targets"
19+
bridge: "Already on Spacelift or Terraform Cloud? Those put an approval loop around Terraform, and it only governs people who go through the loop. We put the record of who owns what where your cloud's own permissions can read it, so the rule holds for anyone with a key. [The comparison.](/compare/control-planes/)"
1820
---
1921

2022
<div class="tool">
2123
<div class="name">choudoufu</div>
22-
<p>OpenTofu plus identity hooks. Ownership is two tags on the resource, and the state file is a cache you may lose. <a href="https://intentius.io/choudoufu/">Docs</a> · <a href="/compare/choudoufu-and-terraform-state/">Compare</a></p>
24+
<p>A build of OpenTofu, the open-source Terraform, that writes who owns each resource onto the resource itself. The state file stops being the thing everyone fights over. <a href="https://intentius.io/choudoufu/">Docs</a> · <a href="/compare/choudoufu-and-terraform-state/">Compare</a></p>
2325
</div>
2426
<div class="tool">
2527
<div class="name">chant</div>
26-
<p>A type system for operations. Typed source folded to the platform's own spec before anything runs, then deployed to the three big clouds and Kubernetes from one project. <a href="https://intentius.io/chant/">Docs</a> · <a href="/compare/chant-cdk-and-pulumi/">Compare</a></p>
28+
<p>Infrastructure written as typed code and checked before anything runs. It deploys to the three big clouds and Kubernetes, and generates the pipelines for you. <a href="https://intentius.io/chant/">Docs</a> · <a href="/compare/chant-cdk-and-pulumi/">Compare</a></p>
2729
</div>
2830
<div class="tool">
2931
<div class="name">the standard</div>
30-
<p>Both are rated against the fourteen properties of <a href="https://accessibleops.net/">Accessible Ops</a>. <a href="/accessible-ops/">The scorecard</a></p>
32+
<p>Both are rated against the fourteen properties of <a href="https://accessibleops.net/">Accessible Ops</a>, alongside the tools you already use. <a href="/accessible-ops/">The scorecard</a></p>
3133
</div>

content/compare/control-planes.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
---
22
title: "The control planes and orchestration wrappers"
3-
summary: "An approval loop around Terraform, sold as governance. Here is each claim when ownership lives on the resource."
3+
summary: "If you are on Spacelift, Terraform Cloud or something like them, this is the page. Their pitch, claim by claim, and how each of our tools answers it."
44
weight: 30
55
---
66

77
The pitch is a loop. Plan and apply one effect, then replan and go round again with a person or a policy between rounds. It works only for actors that go through the loop. Anyone holding IAM credentials goes around it.
88

99
Our answer is a tag on the resource, so your IAM is the boundary whether or not the actor used any tool.
1010

11+
Read the left column for the claim and the other two for the answer from each tool.
12+
1113
| The claim | choudoufu | chant |
1214
|---|---|---|
1315
| Every change approved, nothing off-plan | The plan file is the approval. The apply re-plans against live and refuses if anything moved. | A gate whose resolution is a commit, bound to the plan digest since 0.63. |

content/contact.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@ summary: "No form, nothing to sign up for."
77

88
Bring three things. What exists today, and who owns it. The one operation you would like to stop doing by hand. Who has to approve it.
99

10-
Not a vendor. If the right answer is a tool we did not build, we will say so.
10+
You get one reply saying whether we can help and what it would look like. Not a vendor. If the right answer is a tool we did not build, we will say so.

content/work/_index.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@ title: "Work"
33
summary: "Four kinds of engagement. Everything we build is open source, so nothing you keep depends on us."
44
---
55

6+
One word first. An estate is everything one team owns in a cloud account: the resources, and the right to change them.
7+
68
## Estate migration and carving
79

8-
A Terraform estate shared by more teams than it was built for. We move ownership onto the resources as two tags, and the state file becomes a cache. Carving a team out is one `live-mv` per resource and an IAM policy. Handover is a role grant.
10+
One Terraform state file shared by more teams than it was built for, so every handover is a migration project. We move ownership onto the resources as two tags, and the state file becomes a cache nobody has to guard. Carving a team out is one `live-mv` per resource and an IAM policy. Handover is a role grant.
911

1012
You keep your HCL, the tags and the policies. One command hands a stock state file back if you want out. AWS only, and the [limits are enumerated](https://intentius.io/choudoufu/docs/use/compatibility/).
1113

@@ -25,7 +27,7 @@ You keep the Ops, the lint rules and the audit trail. We will not promise the ag
2527

2628
## Releases as compile targets
2729

28-
Off Kubernetes there is no shared apply verb, so every component grows its own pipeline and they drift apart. We describe each component as data instead, and the release compiles from it: typed and linted before anything runs, with cross-stack references resolved by name rather than scraped out with `jq`. One generic runner deploys every component in dependency order, and adding the hundredth costs one declaration and no new pipeline. [The argument in full.](https://lex00.github.io/posts/a-release-is-a-compile-target/)
30+
Outside Kubernetes every service ends up with its own deploy pipeline, each a near copy of the last, drifting apart. We describe each component as data instead, and the release compiles from it: typed and linted before anything runs, with cross-stack references resolved by name rather than scraped out with `jq`. One generic runner deploys every component in dependency order, and adding the hundredth costs one declaration and no new pipeline. [The argument in full.](https://lex00.github.io/posts/a-release-is-a-compile-target/)
2931

3032
The CI is generated from the same declarations, one thin job per component, for whichever of the three platforms you run. A write stops at an approval, and the approval is a commit, so an outage cannot lose it.
3133

layouts/index.html

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
<section class="lede">
33
<h1>{{ .Params.lede | markdownify }}</h1>
44
<p class="sub">{{ .Params.sub | markdownify }}</p>
5+
{{ with .Params.intro }}<p class="intro">{{ . | markdownify }}</p>{{ end }}
56
<p class="cta"><a class="btn btn-primary" href="{{ "/contact/" | relURL }}">Talk to us</a> <a class="btn" href="{{ "/work/" | relURL }}">What we do</a></p>
67
</section>
78

@@ -19,7 +20,8 @@ <h3>{{ .title }}</h3>
1920
</section>
2021

2122
<section class="evidence">
22-
<h2>The tools are the evidence</h2>
23+
<h2>Two tools, both free</h2>
2324
{{ .Content }}
25+
{{ with .Params.bridge }}<p class="bridge">{{ . | markdownify }}</p>{{ end }}
2426
</section>
2527
{{ end }}

0 commit comments

Comments
 (0)