Slugging It Out in Open Source Great Pods

Slugging It Out in Open Source

Key Points

  • In 2011, someone called "Dodo" published a popular npm module called "Slug" for creating URL slugs
  • Dodo stopped working on the module in 2015 and completely vanished from the internet after 2018
  • A denial of service vulnerability was publicly disclosed in the Slug module in 2017
  • The author became frustrated with abandoned packages and contacted npm about taking over maintenance
  • npm had a documented process: email the maintainer, wait for response, and transfer ownership if no reply after follow-ups
  • The author started emailing maintainers of abandoned packages with security issues, getting mostly positive responses
  • Dodo was the only maintainer who never responded - emails bounced or went unanswered
  • After a month and npm support follow-ups, the Slug package was transferred to the author
  • The author quickly fixed the DOS vulnerability but felt stuck maintaining a package they didn't care about
  • Despite not being interested in slugs, the author invested significant time learning romanization methods and adding language support
  • Each new feature required extensive research but appeared as minimal commits adding a few characters
  • The maintenance work was unrewarding and negatively impacted the author's mental health
  • A more popular competing package called "Slugify" existed, which was actually a fork of the original Slug
  • Both maintainers wanted to hand off their packages to each other, leading to mutual collaboration
  • The Slugify maintainer added the author as collaborator after the package became popular from a Google I/O presentation
  • This situation exemplifies the broader problem of critical open-source code being maintained by overwhelmed volunteers
  • Many open-source maintainers suffer from guilt and anxiety due to inadequate time and resources for proper maintenance
  • The same maintenance problems exist in proprietary software - only big, popular packages get proper support while everything else risks developer burnout

Full Transcript