Implementation-wise, the playground uses pre-built Docker containers for the nightly, beta, and stable compilers. The list of crates is updated every so often and then the crates are pre-compiled in debug and release mode, to avoid waiting at run time. The backend server uses Iron and the frontend uses React and Redux. There’s a set of feature tests that use Ruby and a headless browser to try to ensure that the most important bits continue to work.
It’s my hope that these (reasonably) well-understood components will help more people be able to contribute to the playground.