You kind have the same problem if you are the only one using your custom lib and you dont have a huge army of others who could fix it. And it's… so… much… more exhausting
back then we even ended up using surprisingly complex structures that actually are close to what you describe but clientside. as in: we didnt rely on classnames but often on positions next to some text.
``` find(SomeTitle).parent.parent.find(p[something]).text ```
If it's acceptable that it breaks often then it's fine to use, but if you're expecting reliability, then no.
We host our SDK and you remotely load it at runtime. The benefit is that we detect breakages due to gmail and automatically update the SDK. Your users just need to refresh gmail to load your extension and the latest SDK which is compatible with any changes Gmail makes.
By the way, there's a real opportunity to own the content side of gmail development. Articles on getting up and running, like building a basic Rapportive clone, would be incredible.
EDIT: we have automated systems that help with this though making our turnaround time incredibly fast. We also see the changes to gmail before 99% of users so usually our updates are out before users even refresh to get the new version of gmail
In general though, we treat the SDK as its own product and have several competitors to Streak using it. We have millions of end users using apps built on the SDK from major companies (Dropbox, Hubspot, etc) so we're pretty careful with our terms.
The main goal is to retain the ability to maintain compatibility between different extensions being run by the same user and being able to respond quickly to changes in Gmail.
> Linux (or BSD [U+1F642]) would
EDIT: Does HN not support emoji?
EDIT^2: How it should look: https://pastebin.com/raw/rKmTCdFX
A square box with 01F 642 in it? I'd rather have a nose on my smilies.
edit: you downvoters are lame. What a bunch of wimps
edit: You downvoters of my comment, however, are lame!