Log
Append-only history. Each entry: ## [YYYY-MM-DD] <op> | <title> where <op> is
ingest, query, or lint. Query with grep "^## \[" log.md | tail -5.
[2026-05-29] split | created from research-wiki cluster F
Spun out of the research-wiki as its own wiki (cloud infrastructure was off that wiki’s
knowledge-management thesis). Migrated 2 sources / 2 pages: hetzner-cloud,
oracle-cloud-signup. Re-homed index/log/synthesis; removed cluster-F framing from
the pages. Original ingests 2026-05-29 (see research-wiki log history).
[2026-05-29] lint | health check (2 sources, 2 pages)
Clean: both pages mutually linked, no broken links, no orphans. Known weakness:
oracle-cloud-signup is a content-less stub (the signup SPA yielded no text) —
recommend re-fetching via a JS-capable method or leaving it as an honest stub.
Recommendation: both current sources are vendor marketing; needs neutral comparative
sources (pricing/reliability/benchmarks) before any real thesis is possible.
[2026-05-29] lint | health check (2 sources, 2 pages)
Clean: both pages mutually linked, no broken links, no orphans. Unchanged since last lint. Recommendations stand: oracle-cloud-signup is still a content-less stub (re-fetch via a JS-capable method or accept); both sources are vendor marketing — needs neutral comparative data for a real thesis. No fixes needed.
[2026-05-31] lint | health check (2 sources, 2 pages)
Part of a hub-wide lint of all five spokes. Mechanically clean: no broken links, no
orphans, full raw coverage. Findings (unchanged trajectory): (1) still the thinnest spoke —
2 vendor-marketing sources, 2.0 links/page, no real thesis; (2) oracle-cloud-signup
remains a content-less stub; (3) both pages typed WebPage (correct as source summaries,
but no distinct Thing page for Hetzner-the-company / Oracle-the-org if vendors get compared
later); (4) concept gaps — VPS, IaaS, egress/free-tier-catch have no pages. Priority:
ingest one neutral comparative source (pricing/reliability/egress) — everything else waits
on that. No fixes applied; dormant-but-healthy.
[2026-05-31] ingest | re-fetch oracle-cloud-signup (in-place refresh) — still a stub
Lint follow-up. Re-fetched https://signup.cloud.oracle.com/ a second time; it again returned
only the title + “You need to enable JavaScript to run this app.” Confirmed the URL is a
client-rendered SPA that our non-JS fetch can’t render — a dead end without a headless/JS
fetch. Refreshed oracle-cloud-signup in place (note + updated date); raw/ untouched
(immutable). No content added — deliberately not back-filling Oracle details from general
knowledge, since that wouldn’t trace to this source. The Free-Tier content page
(oracle.com/cloud/free) is a separate URL and would be a new source, not a refresh.
[2026-05-31] split | removed oracle-cloud-signup (source + raw deleted)
At the curator’s explicit instruction, deleted both wiki/oracle-cloud-signup.md and
raw/oracle-cloud-signup.md — an explicit override of the standing “never delete raw/” rule,
authorized in-conversation. Rationale: the source was a content-less stub (signup.cloud.oracle.com
is a JS-only SPA; two non-JS fetch attempts on 2026-05-29 and 2026-05-31 returned only the
title). Cleaned all references: removed the index entry, the oracle-cloud-signup pairing
- Related link from hetzner-cloud, and the synthesis sources/thesis/open-question mentions (kept a one-line note in synthesis recording the removal). Spoke is now 1 source / 1 page (hetzner-cloud), still dormant pending a neutral comparative source.
[2026-05-31] ingest | oracle-cloud-free (oracle.com/cloud/free) — new source
Ingested the official Oracle Cloud Free Tier content page as a new source, replacing the
removed signup-SPA stub. WebFetch hit HTTP 403; retrieved via curl with a browser UA (HTTP
200, ~79KB) and parsed the readable text. URL-only ingest → oracle-cloud-free (WebPage,
source:true, url: not sources:; nothing added to raw/). Captured: the $300/30-day trial,
the permanent Always Free model + service list (AMD & Ampere A1 compute, object storage, two
flexible load balancers, Autonomous DW/ATP/JSON, NoSQL Phoenix-only), eligibility (one
account/person, idle-30d suspension), and the credit/debit-card requirement. Did not record
per-service quotas — the page only says “some limitations apply”; flagged as an open item
for Oracle’s resource-details docs. Re-paired hetzner-cloud ↔ oracle-cloud-free,
updated index + synthesis (real “cheap paid IaaS vs. free-tier funnel” contrast now backed by
content). Spoke is back to 2 sources / 2 pages.
[2026-06-09] ingest | +3 managed-PaaS providers + Oracle Always Free quotas (daily-loop DRY RUN)
Trial run of the daily spoke-expansion loop on the thinnest spoke (was 2 pages). Router-curated 4 authoritative/official sources targeting this spoke’s own synthesis open questions:
- New Tier-2 (managed developer PaaS) pages — the exact Render/Railway/Fly trio the open questions
named: fly-io (per-second pay-as-you-go, edge regions, metered egress, no free tier),
render (managed PaaS; 750 free instance-hrs/mo, spins down after 15 min, free static sites,
30-day free Postgres — from
/docs/free, since/pricingis JS-only), railway (usage-metered; $5/mo Hobby + per-second billing). - Refreshed oracle-cloud-free in place with the actual Always Free quotas from Oracle’s
resource-details docs (Arm A1 4 OCPU/24 GB, 200 GB block, 2 Autonomous DBs, 10 TB/mo egress) —
closing the standing open question the page itself had flagged.
Rewrote synthesis around a two-tier / cost-model spectrum (fixed VPS → free-tier+PAYG →
sub+usage → pay-as-you-go edge → free-with-spin-down) and the “free always has a shape” pattern;
cross-linked all five pages; updated index (grouped by tier). Honesty notes kept: Render paid pricing
not captured (JS table), sources are still vendor/official surfaces (no neutral benchmarks yet). Spoke
2 → 5 pages. Site rebuilt + verified. (Dry run for the daily-loop prompt — see memory
daily-spoke-expansion-loop.)
[2026-06-09] ingest | +2 DigitalOcean (midpoint) + Cloudflare (edge) — all-spokes cron test
digitalocean (WebPage, src — Droplets IaaS + App Platform PaaS; the Hetzner↔hyperscaler midpoint) and cloudflare (WebPage, src — Workers/Pages/R2/Workers AI edge compute; no-egress R2 vs Fly’s metered egress; answers “where AI stacks run”). Extends the tier model to three: raw IaaS → managed PaaS → edge. Wikipedia url-only. 5 → 7 pages.
[2026-06-10] ingest | AWS (hyperscaler anchor) + Vercel (frontend PaaS) — all-spokes pass
Two new source pages bracketing the cost-model spectrum. aws (WebPage, url) — the wiki’s first hyperscaler: 200+ à-la-carte services (you assemble & meter everything separately), and the revamped 2025 free tier = a credit funnel ($200 credits, $100 on signup, 6-month auto-close, 30+ always-free services). Framed as the baseline the Tier-2 PaaS pitches argue against — why managed PaaS exists. vercel (WebPage, url) — frontend-specialized Tier-2 PaaS (maker of Next.js): pure usage-metered Managed Infrastructure (Hobby free = 1M function invocations / 4 CPU-hrs / 5K image transforms, then it stops), box abstracted away (ship a build, not a sized machine — contrast fly-io). Cross-spoke seam: Vercel hosts static-site-wiki’s frameworks. Folded into synthesis (new “hyperscaler anchor + frontend PaaS” section; spectrum now hyperscaler→VPS→midpoint→edge→usage-PaaS→free-spin-down) + index (new section). Both vendor surfaces — standing caveat (no neutral price-perf benchmark yet) still open. 7 → 9 pages.
[2026-06-12] ingest | VPSBenchmarks — DigitalOcean vs Hetzner (independent benchmark)
All-spokes daily expansion. Added vpsbenchmarks-docean-hetzner — the wiki’s first neutral third-party benchmark, directly answering the standing open question (“all data is vendor-stated”). VPSBenchmarks grades providers A–F on a percentile curve from a reproducible suite (web/sysbench/ geekbench/fio/iperf3/network). Result corroborates the vendor-built story: Hetzner CCX13 beats a $12 DO droplet on value (≈4× RAM/2× cores for ~37% more, sharpest edge in network throughput); DO confirmed weak on raw synthetic CPU/RAM (value = platform, not box specs). No contradiction — independent corroboration. Updated synthesis (open question reframed: still want the PaaS tier measured independently), index (new “Independent benchmarks” group), and the hetzner-cloud + digitalocean Thing pages. 1 new page.
[2026-06-18] ingest | Cloudflare Workers (official docs)
Telegram-dropped; hub-routed → cloud-wiki (runner-up: none; the Astro/Next.js framework-hosting angle
brushes static-site-wiki but the subject is the compute platform). Subject already partly paged via
cloudflare (T3 Wikipedia provider overview); this is a distinct, higher-tier source — the official
Workers docs (T1) — so rather than flatten the provider page I added a dedicated cloudflare-workers
deep-dive and cross-linked both. Gap-relevance: deepens the Tier-3 edge-compute model — the docs show
the edge tier now carries a full data plane (Durable Objects, D1, KV, R2, Hyperdrive, Vectorize,
Workflows) so a stateful app runs end-to-end on the edge, not just stateless functions; continues to
answer “where do AI stacks run?” (Workers AI). Integrated into synthesis (Tier-3 bullet) + index.
Entities: none new — publisher (Cloudflare) is the subject, already represented by cloudflare;
per ENTITIES the subject is not a discovered entity. freshness: volatile (pricing/product list shift).
Cross-spoke: Workers/Pages host static-site-wiki’s frameworks (noted, not duplicated); this very wiki runs
on Cloudflare Pages. Site rebuild + commit follow.
[2026-06-23] ingest | AWS Lambda MicroVMs
New source page aws-lambda-microvms (T3, vendor product page). A new AWS serverless compute primitive: Firecracker-based isolated VM sandboxes (dedicated kernel/mem/disk) with a serverless model and the distinctive move — state-preserving suspend/resume up to 8h, suspended = no charge, per-second compute + snapshot + transfer pricing. Slots into the cost-model spectrum as “warm scale-to-zero” (like render spin-down but state is preserved, at VM isolation). Refreshed aws (added the MicroVMs section) and folded into synthesis (new shape + the AI-agent-stacks open question). Cross-spoke: AWS pitches it first at agent sandboxes for LLM-generated code — the agent-execution substrate agentic-tooling-wiki tracks (DeerFlow sandboxes, Signadot ephemeral envs); runner-up spoke noted. Index updated (Hyperscaler group). +1 page (cloud 11→12). Fetched live. (No build/commit here — hub handles.)
[2026-08-03] lint | unlink the dead oracle-cloud-signup references (markup only)
The five [[oracle-cloud-signup]] wikilinks in this log pointed at a page deliberately deleted on
2026-05-31 at the curator’s instruction (see that entry) and replaced by oracle-cloud-free. They
have been unresolvable ever since — the new npm run verify warning surfaced them, five of the six
occurrences corpus-wide.
Converted to backticked plain text, not rewritten. Every word of the history is unchanged, and the
rendered output is byte-identical: the renderer already emitted these as plain text, so a reader never
saw a link. This is a markup correction, not an edit to the append-only record — the entries still name
the page, still describe it in the past tense, and the deletion entry still records what was removed
and why. Backticks now say “names a deleted page” instead of implying a link that should work.
Also fixed the matching registry drift in the hub wikis.md, which still advertised
oracle-cloud-signup as a cloud-wiki sample-page — the router reads that block to classify
incoming sources, so it was pointing at a page that has not existed for two months. Now lists
hetzner-cloud, oracle-cloud-free and vpsbenchmarks-docean-hetzner, all of which exist.
[2026-08-09] ingest | Azure and Google Cloud — the other two hyperscalers (via research pass)
Coverage edge 5 closed. Sources are the vendors’ own infrastructure documentation, T3 as the edge explicitly permitted: Microsoft’s Azure reliability regions overview, and Google Cloud’s geography and regions.
New pages: azure, google-cloud.
Why one example was not enough. Every “hyperscaler versus Hetzner” claim in this spoke rested on aws alone. With three descriptions in hand the common product is visible, and it is not compute: it is an explicit failure-domain hierarchy (zone → region → geography) plus managed multi-region state. Google commits to “three or more zones housed in three or more physical data centers” and defines a zone as a single failure domain; Microsoft runs 70+ regions inside residency geographies, with availability zones and region pairs customers cannot choose.
A drift worth recording: Azure’s newer regions are not paired and use availability zones as their primary redundancy, so the redundancy unit is moving from region-to-region down to zone-to-zone.
What is still missing is the price half — both pages describe geography, neither carries a rate, so the expensive end of the spoke’s cost-model spectrum is still anchored on AWS for cost. That is edge 5’s successor.
Entities: 0 created — Microsoft and Google already exist as nodes in sibling spokes; linked cross-wiki rather than duplicated.
[2026-08-10] quality | Cycle: the hyperscalers get a price, two snapshots re-verified
Weakest-spoke pick of the daily quality cycle. cloud-wiki scored worst in the corpus on floor quality (9 T3 pages to 1 T1) and staleness (8 volatile pages past the 60-day window).
Quick win #9 closed by half. The spoke’s hyperscaler pages described geography and never a price,
because azure.com/pricing/details/virtual-machines/linux/ renders its table in JavaScript and a fetch
returns prose. The way in is the Azure Retail Prices API — unauthenticated JSON, no key —
now paged as azure-vm-retail-prices, the spoke’s second T1. D2s v5 (2 vCPU / 8 GB, eastus):
$0.096/hr on demand · $519/yr reserved 1-year · $997 reserved 3-year · $0.020266/hr spot.
google-cloud stayed unpriced and no substitute was used. Its pages are JS-rendered too, the
legacy public pricelist.json returns 404, and the Billing Catalog API wants a key. AWS’s bulk Price
List JSON exists but the EC2 file is hundreds of MB, which this device won’t chew. Recorded as an open
edge rather than closed with an affiliate comparison table — the same floor-raise rule that has kept
the PaaS-benchmark gap open since June.
Two stale snapshots re-verified, both changed materially. fly-io: the June entry recorded RAM at “about $5 per 30 days per GB” with no whole-machine figure; there is now a published preset (shared-cpu-1x/256 MB = $0.0028/hr ≈ $2.02/mo) and three egress bands, the worst 6× the NA rate. railway: June had no unit rates at all and called Pro per-seat — it is per-workspace, and the metered rates work out to $20.02/vCPU-month.
What it changed in the thesis. A purchase-model axis, which the PaaS and IaaS tiers don’t have: the same Azure machine ranges $35.04 → $13.85 per vCPU-month on commitment alone, $7.40 on spot. So the long-standing “where does Hetzner stop winning” question was under-specified — the answer depends on which contract you compare against, not on the workload.