Quokka is a two-moment radiation hydrodynamics code that uses the piecewise-parabolic method, with AMR and subcycling in time. It runs on CPUs (MPI+vectorized) or NVIDIA GPUs (MPI+CUDA) with a single-source codebase. The hydrodynamics solver is an unsplit method, using the piecewise parabolic method for reconstruction in the primitive variables, the HLLC Riemann solver for flux computations, and a method-of-lines formulation for the time integration. The order of reconstruction is reduced in zones where shocks are detected in order to suppress spurious oscillations in strong shocks. Quokka's radiation hydrodynamics formulation is based on the mixed-frame moment equations. The radiation subsystem is coupled to the hydrodynamic subsystem via operator splitting, with the hydrodynamic update computed first, followed by the radiation update, with the latter update including the source terms corresponding to the radiation four-force applied to both the radiation and hydrodynamic variables. A method-of-lines formulation is also used for the time integration, with the time integration done by the same integrator chosen for the hydrodynamic subsystem.