# Best practices

One page per task, for the jobs that take more than one call: the requests in
order, the in-guest work between them, and what goes wrong in the middle.

Facts — limits, field names, error codes — belong to the
[guide](../index.md) that owns the resource, and a page here links rather than
repeats.

Every page exists twice, the markdown and an `.html` twin. Fetch the markdown
and read it whole rather than through a summarizing fetch: a summary drops the
step you were missing.

- [Recreate a VM](recreate-vm.md) — grow a root disk, replace a machine, move
  off failed hardware
- [Debug a VM that will not come up](debug-vm-boot.md) — what to read when
  there is no console
- [Harden a VM](harden-your-vm.md) — firewall and sshd changes that cannot
  lock you out
- [Put a CDN in front](use-a-cdn.md) — serve cacheable traffic near the
  reader, and take those bytes off the egress meter
- [Self-host storage](self-host-storage.md) — S3 or a shared filesystem on a
  VM you own
- [Build a private mesh](wireguard-mesh.md) — private addressing between your
  own VMs
- [Watch your credits](watch-your-credits.md) — what to poll, what to cut, and
  what happens at zero
