> If still angry then I would create a liceasd that doesn't allow Microsoft/github/etc to use your product in anyway. Share to lib users with self hosted link.
This would actually cause your project to no longer be open source. AGPLv3 is probably the closest you can get, forcing anyone who uses your project, even on a server and not distributed to end-users, to contribute all changes back.
> forcing anyone who uses your project, even on a server and not distributed to end-users, to contribute all changes back.
Actually, it doesn't quite do that. It treats "providing access to via a network" as "distribution", and requires the source to be provided, under the AGPL, to users who ask. For example, if Hacker News was AGPL'd (and not copyright owned by Y Combinator), I could ask Y Combinator for the source and they'd have to give it to me… but they wouldn't have to provide the original developers their patches.
If, say, this AGPL Hacker News was only available to people within Y Combinator, I wouldn't be entitled to receiving a copy of the source from the company. I'm not a user, you see. (Notably, the original developers aren't entitled to Y Combinator's fork, unless they're also being provided the software.) But I could ask a friendly employee for a copy, and they could get it for me, and then I could give it to anybody who wanted it as per normal GPL rules.
I support the concept of open source including some restrictions. It would be open source depending on user/application. We've seen some open source depending on usage liceases (can't be used in a sass, you can't sue us clauses).
It does feel like a poison pill that would reduce usage. But maybe it's worth it.
This would actually cause your project to no longer be open source. AGPLv3 is probably the closest you can get, forcing anyone who uses your project, even on a server and not distributed to end-users, to contribute all changes back.