Daily standups slip when people are traveling or juggling time zones. An async version works if it is structured, time-boxed, and easy to skim. Here’s a format that keeps signal high and noise low.

Use the same window every day

Pick a 30–60 minute window when everyone can post. Late updates create follow-up questions that bleed into the day. If someone misses the window, they post later but start with Late update: so it’s obvious.

Lead with a one-line headline

  • Pattern: Status — Headline
  • Example: Green — Shipped billing retries; adoption spike on Teams.

Answer three prompts, no extras

  • Done: What shipped since the last update (max 2 bullets).
  • Next: What’s the single next outcome you’ll complete today.
  • Blockers: What’s in your way and who can unblock.

Example block you can paste into /clr:

Status — Green: Shipped billing retries; adoption spike on Teams.  
Done: Rolled retry jobs to 50%. Fixed webhook alerting noise.  
Next: Move retries to 100% and monitor error budget.  
Blockers: Need @Nina to approve new SLO threshold before 3 PM.

Link to the source, don’t paste the source

Drop one link to the relevant doc, issue, or dashboard. Avoid screenshot dumps. If there’s nothing to link, say Link: n/a.

React to close loops, not to chat

Default reactions keep threads tidy:

  • 👀 Seen it.
  • ✅ Unblocked / done.
  • ❓ Need clarification (follow with one question).

Escalate to live only when needed

Call for a huddle only when a blocker affects more than one person or a decision is ambiguous. Post the BLUF summary back into the thread so latecomers don’t have to watch a recording.

Run your async standup like this for a week and watch meetings shrink. The structure makes it easy to scan and gives you a log of decisions, blockers, and owners without extra ceremony.

Shorter Slack updates with Clear.