Some time ago I started work on a small library to read FLAC file metadata. Nice to know publishing your niche personal projects can help people.

I was going to use it to manage my small collection of music.

At first, it was all about reading the track length. I wrote that on the train during my commute.

Eventually, I ended up supporting all metadata of the FLAC format.

I wrote it for .NET, which did not seem to have a managed library for that at the time.

I added support for writing metadata to FLAC files, even though I saw no use case for it myself. It was more an exercise in discipline.

For myself, I felt that I had to "finish" it completely. Meaning, support all metadata in the spec and publish the library. Not with the assumption anyone would need it, but just to finish one of my side-projects for once. I have many side-projects that equate to "half a page of scribbled lines".

So I published FlacLibSharp on NuGet and put the source on BitBucket and later on GitHub.

I never considered anyone would have a use case for this. Supporting only FLAC metadata for .NET seems really specific.

Nothing much did happen.

Downloads on NuGet seemed to come, for the most part, from bots downloading the packages.

Googling the library only gave me results related to NuGet and GitHub itself.

It did get 6 stars on GitHub after a while.

Then, somebody opened an issue on GitHub. Noticing it was lacking support for something encouraged in the VORBIS comment specification.

If it was just for me, I would not have touched the library anymore. But it turns out someone was actually using it.

So I was more than happy to address the issue.

Thoughts

So it turns out just putting your stuff online can help somebody. Even though you don't expect it.

If it wasn't for GitHub, I would've not known about it. Places like GitHub make it easy to open issues and even suggest changes in the code. It was possible before, but never this easy.

It's also kind of scary. You put something online, perhaps badly tested, and others start to use it.

What happens if they use it for something important, and it totally screws it up?

What happens if your project becomes popular?

Are you prepared? Are you responsible? Are you accountable? Do you owe the users anything?

Conclusion

I'll put my stuff out there. If it's untested or otherwise risky, I'll try to mention that. And I'll take the risk of becoming popular, or helping someone.

Also, if you find a project like this useful, consider informing the creators about it. It might make their day ;-)