My primary browser is Pale Moon, so all of my scripts are created and tested in it. I avoid using special Greasemonkey API's, though I often use ES6 features, which may not be supported on all browsers (yet). If a script fails to work for a browser: create a feedback thread with the browser, browser version, and script loader (e.g. Greasemonkey, Tampermonkey), and I'll try to take a look at it.
I'm also on OpenUserJS, though most scripts will likely be mirrored on both sites.