🧵 From script to version 1.0.0 — 12 years later

In 2013, I wrote a tiny Python script to help with local SMTP debugging during development.
It used smtpd, docopt, and had no ambition other than making my day a little easier.

This tiny helper evolved into a CLI tool: dsmtpd
Then, I forgot about it.


🧹 2021: Minor cleanup, no big plans

Eight years later, I dusted it off:

  • Removed docopt
  • Dropped Python 2.x support
  • Cleaned up the CLI a bit
  • Pushed version 0.3

And once again, the tool went dormant.


⚡ 2025: A wild pull request appears

Fast forward to 2025:
I receive a PR from Sebastian Wagner to replace the deprecated smtpd module with aiosmtpd, now required for Python 3.12+.

The PR was 🔥:

  • Clean and focused
  • Added basic test coverage
  • Included a systemd service file
  • Brought the project back to life

🏁 Result: Version 1.0.0 released

Twelve years after the first commit, I officially tagged v1.0.0.
📅 Release date: May 20, 2025


🍒 The cherry on top?

Turns out dsmtpd has been running in production — quietly, usefully — for years.
No one told me. No compensation. No feedback. Just… usage.

That’s the beauty (and irony) of open source.


💡 Reflections

  • Even the tiniest utility script can have long-term impact.
  • Open source is full of quiet users and surprise contributors.
  • Sometimes, one well-placed git tag v1.0.0 is all it takes to honor the journey.


If you’re like me and you enjoy keeping small tools alive — or watching them get resurrected years later — I’d love to hear your stories.

#python #opensource #cli #developer #smtpd #aiosmtpd #emailtools #dsmtpd #systemd #productionwithoutknowing #devlife