Context. Fast Radio Bursts (FRBs) are radio transients of an unknown origin. Naturally, we are curious as to their nature. Enough FRBs have been detected for a statistical approach to parts of this challenge to be feasible. To understand the crucial link between detected FRBs and the underlying FRB source classes we perform FRB population synthesis, to determine how the underlying population behaves. The Python package we developed for this synthesis, frbpoppy, is open source and freely available. Aims. Our goal is to determine the current best fit FRB population model. Our secondary aim is to provide an easy-to-use tool for simulating and understanding FRB detections. It can compare surveys, or inform us of the intrinsic FRB population. Methods. frbpoppy simulates intrinsic FRB populations and the surveys that find them, to produce virtual observed populations. These resulting populations can then be compared with real data, allowing constrains to be placed on underlying physics and selection effects.Results. We are able to replicate real Parkes and ASKAP FRB surveys, in terms of both detection rates and distributions observed. We also show the effect of beam patterns on the observed dispersion measure (DM) distributions. We compare four types of source models. The "Complex" model, featuring a range of luminosities, pulse widths and spectral indices, reproduces current detections best. Conclusions. Using frbpoppy, an open-source FRB population synthesis package, we explain current FRB detections and offer a first glimpse of what the true population must be.