I'm finding similar results. I used to just write everything myself when a need arose, but in trying to better spend my time I find myself checking what's out there. And inevitably I'll find something that will claim to do exactly what I need.
From there, I find two problems rather often. One, it doesn't actually do what it claims. Googling is fruitless because I must have been the first one to actually try it. Gotta love Googling an error and finding exactly one result - the source code. I sometimes open a bug report depending on how the project seems, and that gets anything from deaf ears to "oh thanks, we'll fix it in the April release" which is of little use to me now.
The other is something you touched on briefly, that the API or contract changes in unexpected ways over time. You can stave this off for a little while by pinning, but then you're missing out on bug fixes and new features. Which, especially for a middleware type thing, is usually a death sentence by bitrot.
From there, I find two problems rather often. One, it doesn't actually do what it claims. Googling is fruitless because I must have been the first one to actually try it. Gotta love Googling an error and finding exactly one result - the source code. I sometimes open a bug report depending on how the project seems, and that gets anything from deaf ears to "oh thanks, we'll fix it in the April release" which is of little use to me now.
The other is something you touched on briefly, that the API or contract changes in unexpected ways over time. You can stave this off for a little while by pinning, but then you're missing out on bug fixes and new features. Which, especially for a middleware type thing, is usually a death sentence by bitrot.