There’s Test Pilot itself, and there are the experimental features hosted by Test Pilot.
Test Pilot itself consists of a website and a companion add-on. The main function of that companion add-on is to empower the website to install & manage experiments. The add-on SDK might be deprecated, but it’s one of the few ways to build an add-on that installs other add-ons. Since the .properties format seemed the recommended approach for L10N in an SDK add-on, we went with that. If there’s a better approach, we’re open to switching.
The Test Pilot website is currently built using React & Redux. That seems to be working well, so it will likely stay that way for the foreseeable future. We’re using l20n.js there because that seemed like a good way forward for web sites at Mozilla.
As for experiments, I don’t think we can promise to pin them down to any particular stack. They’ll always be a mix of everything - XUL, SDK, WebExtensions - basically the whole gamut of what Firefox makes practically available. Each experiment has different requirements with respect to APIs and tweaks to Firefox. We also want to do things like dogfood our own APIs and push at the boundaries. We’re playing with everything from React to build systems to measurement systems - all the above.
Long term plans probably do include the companion add-on disappearing into Firefox itself, either in the form of a system add-on or APIs made available to the Test Pilot site. Test Pilot itself is an experiment, but we do hope to stabilize the core framework over time as we work out what works best for supporting experiments & experimenters.
It’s also worth noting that the core Test Pilot team often won’t be the folks developing experiments. Lots of us are participating in that, but some of our experiments have and will come from other teams around Mozilla and beyond. We’re assembling best practices & advice for experimenters, but ultimately we’re trying to be flexible and can’t rely on dictating the tech for any given experiment.