A "stratum" is the set of all Riemann surfaces together with a differential with prescribed multiplicities of zeroes and poles. The stratum is a natural subvariety of the moduli space of curves for enumerative computations, and is the phase space of the SL(2,R) action known as Teichmuller dynamics. We describe a smooth functorial compactification of the strata, which parameterizes multi-scale differentials - certain collections of meromorphic differentials on components of nodal curves, together with some extra data. The moduli space of multi-scale differentials has almost all the good properties one could wish for in a compactification. Joint work with Matt Bainbridge, Dawei Chen, Quentin Gendron, Martin Moeller.