Files
zooqueen 81939f2b2e comparison: price running it yourself, from the compose files
/comparison answers the question every open-source vendor is asked and few
answer with a number: what does this cost if I run it. It reads GET
/v1/blueprint/sbom, where apps/blueprint parses each stack's own
docker-compose, sums what its services reserve and prices that through one rate
card it publishes with the answer — so every figure here is one a customer can
get themselves from an endpoint, and the page cannot disagree with it.

sync-blueprints.mjs holds the three rules its siblings hold: never fail the
build on an unreachable API, never write a payload smaller than the committed
snapshot, and say what it did.

IT DOES NOT WIN BY ARITHMETIC. Compute against compute is a figure both sides
can check; the operating work — upgrades, a restore you have rehearsed, a second
replica, one identity across five admin panels, whoever answers at 3am — is
described and deliberately NOT costed. An invented engineer-hours line would be
worth less than the sum a reader can do knowing their own team, and it is the
fabricated number the blueprint plane exists to avoid.

The basis travels with the total, and what the estimate excludes (storage,
egress, and every GPU) is stated next to it.
2026-08-14 18:19:49 -07:00

23 lines
787 B
TypeScript

import type { Metadata } from 'next'
import Comparison from '@/components/marketing/Comparison'
import { PageHero } from '@/components/marketing/page-kit'
export const metadata: Metadata = {
title: 'What it costs to run it yourself — Hanzo',
description:
'The open-source stacks people reach for, priced from the compute their own compose files reserve, and the operating work that is not a line item.',
}
export default function Page() {
return (
<>
<PageHero
eyebrow="Comparison"
title="Buy it, or run it"
lede="Everything Hanzo does is open source, so the honest question is not whether you could run it — you could — but what that costs. These are real numbers from real compose files."
/>
<Comparison />
</>
)
}