Skip to content

Blog: Putting apps to sleep, and waking them in under two seconds#8

Merged
max-tet merged 4 commits into
mainfrom
blog/app-sleep-fast-wake
Jul 25, 2026
Merged

Blog: Putting apps to sleep, and waking them in under two seconds#8
max-tet merged 4 commits into
mainfrom
blog/app-sleep-fast-wake

Conversation

@ClaydeCode

@ClaydeCode ClaydeCode commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

Adds the blog post about the PAUSED+PAGED app tier (shard_core 0.40.0, tracker FreeshardBase/freeshard#81), plus its cover image. Picks up one unrelated agents.md fix as a byproduct.

Contents

  • docs/blog/posts/2026-07-25_app_sleep_fast_wake/main.md — the post. Dated 2026-07-25, draft: false, author max. Structure: problem (self-hosted apps eat a 2 GB VPS, cold starts take 30s+), rejected alternatives (CRIU/docker checkpoint, Podman migration, Sablier), the implementation (cgroup freezer via docker compose pause + memory.reclaim to swap, three-state Running → Paused+Paged → Stopped with PSI-driven LRU demotion), the swap story (RAM-sized swapfile + zswap), and what it means for shard owners.
  • docs/blog/posts/2026-07-25_app_sleep_fast_wake/cover.png — 1600×896, generated with Flux 1.1 Pro Ultra.
  • agents.md — the documented commands were bare pip install / mkdocs serve; the repo is built with uv. Updated to uv venv / uv pip install -r requirements.txt / uv run mkdocs build, which is what this PR's output was actually built and verified with.

No mkdocs.yml change needed — the blog plugin picks up post directories automatically.

Notes for review

  • The closing CTA asks readers to report anything misbehaving, not just wake-time annoyances, matching the newsletter going out alongside this post.
  • The post says real-world telemetry numbers aren't available yet, only the integration-test-asserted <2s unpause. That matches rollout state at drafting time; worth a re-check before merge in case the soak has produced numbers worth quoting.
  • Cover art deliberately breaks the dark-dramatic register of the previous post's cover in favour of a bright-daylight one — same ligne claire treatment, same brand palette, inverted values. The scene (helpers folded up dozing on a bench, one stretching awake, one serving at the counter) maps to the three app states.
  • draft: false means this publishes as soon as it lands on main.

Verification

uv run mkdocs build exits 0; the post renders at /blog/2026/07/25/putting-apps-to-sleep-and-waking-them-in-under-two-seconds/ and appears on the blog index with its cover and excerpt.

🤖 Generated with Claude Code

ClaydeCode and others added 4 commits July 25, 2026 06:23
…conds

Covers the PAUSED+PAGED app tier shipped in shard_core 0.40.0: cgroup
freezer via docker compose pause, proactive memory.reclaim to swap, and
the swapfile+zswap provisioning that makes paging viable on a 1-2 GB VPS.

Cover art uses the bright-daylight register of the house ligne claire
style rather than the dark-dramatic one used for the previous post, since
this story is about relief rather than threat.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The post's closing CTA asked only about wake times, which reads as a
request for tuning input. Broaden it to any misbehaviour, phrased as a
standing invitation, matching the newsletter going out alongside it.

agents.md still documented bare pip/mkdocs commands; the repo is built
with uv, which is what these docs were built and verified with.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@max-tet
max-tet merged commit d5239e1 into main Jul 25, 2026
4 checks passed
@max-tet
max-tet deleted the blog/app-sleep-fast-wake branch July 25, 2026 06:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants