If someone puts their stuff into the public domain, I usually assume that they are open for PRs, unless explicitly stated otherwise. So I sometimes fork and make PRs for things I use whenever I think they are not 100% adequate or missing a feature I need. I usually go upstream instead of maintaining a fork since that's more convenient for me (I do not have to merge all the patches and watch out for compatibility and stuff) and others can review my changes and even improve them themselves.