Back to blog

How to post about a bug or outage on X as a developer

By Naod Tadele · · 5 min read

Loudcode guidePost aboutthe bugyou shipped

Your app went down for forty minutes. Or a bug sent the wrong email to a few users. You fixed it. Now comes the harder question: do you say anything?

Most developers stay quiet and hope nobody noticed. Some people noticed. Others will notice next time, and they will remember who was straight with them. A short, honest post about what broke is one of the best trust builders you have on X.

Why this works

People who follow developers want to see the real work. A bug is real work. When you explain it plainly, readers learn two things: you tell the truth, and you fix problems properly.

It also makes good material. A bug has a cause, a fix and a lesson. That is a complete post.

When to post, and when not to

Post when:

  • Users were affected and some of them saw it.
  • You fixed it, or you know exactly when you will.
  • You learned something others can use.

Hold off when:

  • The issue involves someone's private data. Tell affected users directly first, and follow your legal duties before writing anything public.
  • You don't yet understand the cause. "We are looking into it" belongs on your status page, not in a polished post.
  • You would have to blame a person or a vendor. Describe what happened, not who to blame.

The five parts of a good incident post

  1. What happened. One plain sentence.
  2. Who it affected. Be honest about the size. Don't shrink it.
  3. The cause. The real reason, in simple words.
  4. The fix. What you changed.
  5. What you will do next. One concrete step so it doesn't repeat.

You do not need all five every time. For a small bug, three is enough.

Example posts

A short outage post:

Example post
Nightshift was down for 40 minutes this morning. Summaries were not generated during that time. Cause: a database migration locked a table longer than I expected. It is fixed and the missed summaries were sent. Next: I will run migrations against a copy of production size data first.

A small bug post:

Example post
A bug in Nightshift sent some on-call engineers the same summary twice yesterday. Cause: two alerts closing in the same minute both triggered a send. Fixed with a check before sending. Sorry for the noise.

A lesson learned post:

Example post
I shipped a change on Friday afternoon and spent Saturday fixing it. Not doing that again. New rule: nothing that touches billing or email goes out after Thursday.

Tone: calm, short, accountable

Write the way you would explain it to a colleague.

  • Own it. "I shipped a bug" beats "an issue occurred."
  • Skip the drama. No "we are devastated." Facts are enough.
  • Skip the excuses. The cause is not an excuse. Say it once and move on.
  • Say sorry once. One line, sincere, no groveling.

Compare these two:

Example post
We experienced a brief service disruption due to unforeseen circumstances.
Example post
The site was down for 40 minutes. A bad deploy caused it. I rolled it back. Sorry.

The second reads like a person. People trust people.

Add something useful for other developers

The best incident posts teach. If your cause was interesting, share the technical detail in a short thread or a code snippet.

-- the fix: check before sending
UPDATE summaries SET sent_at = now()
WHERE id = $1 AND sent_at IS NULL
RETURNING id;
Example post
If that returns no row, someone else already sent it. Stop. Simple, and I wish I had written it on day one.

Other builders will save the post, reply with their own stories and follow you for the honesty.

After the post

  • Reply to people. If a user says they were affected, answer them directly.
  • Follow up. If you promised a change, post when it ships. That closes the loop and makes a second post.
  • Update your status page, if you have one, so the story is in one place.

How Loudcode helps

Writing an incident post right after a bad day is hard. Loudcode reads your GitHub commits, pull requests and releases, so a fix like the one above can become a draft for X in your voice, with the cause and change already in it. You review every draft, edit the tone, and nothing is posted until you approve it. For the shipping side, see how to turn a pull request into a post.

You ship the code. We write the posts.

Your commits, revenue, traffic and a 30-second weekly check-in become build-in-public posts for X, in your voice. You approve every post.

Keep reading

All posts