Most systems in nature are heterogeneous. Porous media, fractals, random or fluctuating environments, and ecological patchiness are only a few examples. Homogeneous media are, in fact, an idealization. In this chapter we discuss how fronts propagate in these more complex structures. Our main goal is to present various techniques that allow us to calculate the front velocity. When the heterogeneity is weak, we can employ perturbative methods, but in most cases only the Hamilton–Jacobi method works effectively in the large-time limit.