How to Write a Daily Standup Update
Most developers know what they did yesterday. Getting it into words at 9:58am — with standup in two minutes — is the hard part. This guide explains the Yesterday / Today / Blockers format, shows you what good standups look like, and introduces a free AI tool that does the writing for you.
Table of Contents
What is a daily standup update?
A daily standup update (also called a "daily scrum" or "standup report") is a short, structured summary that developers share at the start of each workday. In agile teams, it's the backbone of sprint ceremonies. In async-first teams, it's often written in Slack or a shared doc.
The goal isn't to report everything you did — it's to give your team just enough context to know where things stand, flag any coordination needs, and keep the meeting under 15 minutes.
The classic format, popularized by agile methodology, covers three questions:
- What did you do yesterday?
- What are you doing today?
- Are there any blockers in your way?
The Yesterday / Today / Blockers format
The three-section standup format (also written as Yesterday / Today / Blockers) works because it maps directly to what a team actually needs to know:
- Yesterday creates accountability and helps teammates who depend on your work know what's done
- Today sets expectations and reveals potential conflicts or dependencies
- Blockers is where a standup becomes useful — if someone can help you unblock, this is where it happens
💡 Pro tip: If you never have blockers, you may be working too independently. Blockers don't have to be crises — "Waiting on design feedback for the new modal" is a valid blocker. It gives your team visibility and gives someone the chance to help.
What makes a good standup update?
A good standup is:
- Specific — "Fixed the auth redirect bug on mobile Safari" is better than "Fixed some bugs"
- Brief — 2-4 bullet points per section. If you need more, you probably need a separate conversation
- Honest — If you got stuck for 3 hours and didn't make progress, say so. It's more useful than padding
- Actionable for blockers — Don't just name a blocker; say what you need to get past it
- No jargon — Write for a team member who wasn't in your context yesterday, not just your future self
Real examples: good vs. bad standup updates
Example 1: Bug fix work
Yesterday: Worked on bugs and some code stuff
Today: More of the same
Blockers: None
Yesterday:
• Fixed the auth token refresh bug causing 401s on mobile Safari after 30min
• Reviewed and approved Diego's PR for the notification preferences update
Today:
• Investigate the intermittent 504s on the /api/export endpoint
• Start refactoring the user settings page to use the new design system components
Blockers:
• Need design sign-off on the settings page mockup before I start implementation — can someone ping Maya?
Example 2: Feature development
Yesterday: Spent all day on the payment flow because there was this really weird issue where the Stripe webhook was getting called twice on some edge cases that only happen when the user refreshes mid-checkout and the session expires at the same time as the webhook fires which caused duplicate charges in about 0.3% of transactions but we caught it in staging...
Yesterday:
• Debugged and fixed duplicate charge issue in Stripe webhook handling (was affecting ~0.3% of checkouts)
• Added idempotency key to webhook handler to prevent future duplicates
Today:
• Write tests for the webhook fix
• Start on the subscription upgrade flow (new spec in Notion)
Blockers:
• None
Example 3: Async team / Slack standup
For async teams, standups are often written in Slack. The same format applies, but use Slack's markdown:
*Yesterday:*
• Set up the CI/CD pipeline for the new microservice
• Pair-programmed with Lena on the data migration script — got it working in dev
*Today:*
• Run the data migration in staging and verify results
• Write runbook for the deployment process
*Blockers:*
• Waiting on DevOps to grant staging DB access — @alex can you help?
Writing standups for Slack
Many teams do async standups in Slack — a dedicated #standup channel where everyone posts at the
start of their day. Tips for Slack standups specifically:
- Use
*bold*for section headers so they stand out in the feed - Use bullet points (•) — they render well in Slack and are scannable
- Tag teammates when you have a specific request or blocker that needs their attention
- Keep it short — Slack threads get long fast. Standup isn't the place to write a novel
- If your company has a standup bot (Geekbot, Standuply, etc.), the format is the same — just shorter
5 tips for faster, better standup updates
-
Check your git log before you start. Run
git log --oneline --since=yesterdayto see your actual commits. Your standup should map to real work, not what you remember doing. - Keep a running note in your editor or Notion. Add a quick bullet whenever you complete something during the day. Morning standup writes itself.
- Write the blocker first. If you're blocked on something, that's the most useful information. Start with it.
- Don't explain — describe. "Fixed auth bug" not "fixed auth bug because the token refresh logic wasn't accounting for timezone differences in the JWT expiry calculation." Save the explanation for the thread or a follow-up chat.
- Use a standup generator if you're stuck. If you have raw notes but can't get them into words, paste them into a standup generator. You'll have a clean draft in seconds.
Using AI to write your standup update
If you have notes — from your git log, task list, Jira tickets, or just scattered thoughts — an AI standup generator can translate them into a clean Yesterday / Today / Blockers update in seconds.
StandupWriter is a free tool built specifically for this. You paste your raw notes (commits, task list, whatever you have), choose your format (standard markdown, Slack, or one-line brief), and get a clean standup instantly.
No account required. No email. Paste, click, copy.
Write your standup in 10 seconds
Paste your dev notes, git log, or task list. Get a clean Yesterday / Today / Blockers standup instantly. Free, no signup.
Try StandupWriter free →Frequently asked questions
How long should a standup update be?
A standup update should take 2–3 minutes to read aloud (for live standups) or 30 seconds to scan (for async Slack updates). That's roughly 3–6 bullet points total across all three sections. If yours is consistently longer, trim the Yesterday section first — that's usually where over-explaining happens.
What if I didn't do much yesterday?
Be honest. "Spent most of yesterday blocked on a dependency — investigating options" is a valid standup. The team can help if they know you're stuck. Padding your standup with vague work to seem busy helps nobody.
What's the difference between a standup and a status update?
A standup is for your team — it's short, daily, and about coordination. A status update is for stakeholders or clients — it's less frequent, more narrative, and focused on outcomes and timelines rather than day-to-day work. They serve different audiences and need different language.
Can I skip the Blockers section if I have none?
Yes — just write "None." Don't skip the section header. Saying "None" is useful signal: it tells the team they don't need to take any action for you today.
What format does Jira/Linear/Slack standup bots use?
Most standup bots use the same three-question format: yesterday, today, blockers. StandupWriter supports both standard markdown (for Jira/Notion/docs) and Slack markdown. Pick the format that matches your tool.