Given the mental energy required to switch OS projects (including different languages), this is akin to travel time between different physical locations. So your sub-areas are effectively contexts and would justify an @ tag. No?
That failing, you could have a single @OpenSource or @GitHub area and the #Project 1 etc. That way when you select @GitHub, there should be a manageable number of # tags to then select for
Personally, I think that nested tags could address some of this too - especially with ability to collapse these. However, I understand that there are technical impediments. See Nested or dependent tags