A small, dependency-free static site about what the free and self-hosted path to an AI content pipeline actually costs — in RAM, in minutes, and in failure modes — measured on a 2015-era MacBook Pro with 8 GB of RAM and two cores.
Live: https://outlier1804.github.io/whatfreecosts/
- Opus Clip alternatives in 2026: Submagic, Vizard, or building your own clipper
- We replaced ElevenLabs with a free local TTS. Here is exactly what it cost.
- Self-hosting Postiz on a VPS — a working setup, HTTPS without a domain, and the OAuth trap that silently breaks your posting seven days after you finish.
- Measured numbers come from runs on named hardware. Vendor numbers are read off the vendor's own page and stamped with the date they were read. The two are never blurred.
- Every price carries the date it was verified.
- No sponsorship, no free accounts, no vendor sees an article before publication.
- As of publication no affiliate programme is joined and every outbound link is a plain
untracked link. See
/disclosure/.
No dependencies — Python 3 standard library only.
python3 build.py # render src/*.md into the repo root
python3 build.py --check # render and report problems, write nothing
build.py contains a deliberately small markdown renderer covering exactly what the articles
use (headings, emphasis, links, blockquotes, nested lists, pipe tables, fenced code, rules).
--check refuses to publish an article that still reads as a draft, contains an unrendered
pipe table, or leaks an internal path.
Output is written to the repository root as /<slug>/index.html, so GitHub Pages serves it
from main / root with no build step and no Actions workflow. All asset and navigation paths
are relative, so the same build works at a subpath, at a domain root, and from file://.
Drop a markdown file in src/ with front matter:
---
title: The headline
slug: url-slug
pricing_verified: YYYY-MM-DD
published: YYYY-MM-DD
---
Then add the slug to ORDER in build.py to place it on the front page, and run the build.
Build script MIT. Article content all rights reserved — see LICENSE.