This page is a live proof that page-level freeze works. The code cells below were executed once via great-docs freeze, and their outputs are persisted in the repository’s _freeze/ directory. Every subsequent great-docs build reuses these cached outputs without re-executing the code.
Look at the “Executed at” timestamp below. If it shows a date in the past (not today’s date), that means the code was not re-executed during this build — the output was loaded from the freeze cache.
Cached Computation
import datetime
import hashlib
import platform
import time
# Record when this cell actually executed
executed_at = datetime.datetime.now()
print(f"⏱️ Executed at: {executed_at.strftime('%Y-%m-%d %H:%M:%S')}")
print(f" Python {platform.python_version()} on {platform.system()} ({platform.machine()})")
⏱️ Executed at: 2026-07-22 11:07:08
Python 3.13.12 on Darwin (arm64)
The timestamp above is frozen. On a normal build, this cell is skipped — Quarto loads the cached output from _freeze/ instead of running the code.
A “Slow” Computation
To make the demo more convincing, here’s a computation that simulates expensive work:
# Simulate an expensive operation (e.g., MCMC sampling, model training)
print("Running expensive computation...")
start = time.time()
# Compute SHA-256 hashes in a loop (simulates ~2 seconds of work)
result = b"great-docs-freeze-demo"
for i in range(500_000):
result = hashlib.sha256(result).digest()
elapsed = time.time() - start
final_hash = hashlib.sha256(result).hexdigest()[:16]
print(f"✓ Completed in {elapsed:.2f}s")
print(f" Result hash: {final_hash}")
print(f" Iterations: 500,000")
Running expensive computation...
✓ Completed in 0.16s
Result hash: 6ecf43c8b72d40b6
Iterations: 500,000
Without freeze, this cell would add ~2 seconds to every build. With freeze enabled, the cached output is reused instantly.
How This Page Is Configured
This page uses the simplified frontmatter syntax:
---
title: "Freeze a Page to Cache Outputs"
freeze: auto
---
During the build, Great Docs normalizes this to:
---
execute:
freeze: auto
---
Great Docs enables freeze: auto by default, so the cache restore and persist happens automatically on every build. No extra configuration needed.
Reproducing This
To update this page’s cached outputs (for example, after changing the code above):
great-docs freeze recipes/24-freeze-demo.qmd
git add _freeze/
git commit -m "Refresh freeze demo outputs"
This re-executes the cells, captures the new outputs in _freeze/, and the updated timestamp proves the refresh happened.