The distribution of the population of cities has attracted a great deal of attention, in part because it sharply constrains models of local growth. However, to this day, there is no consensus on the distribution below the very upper tail, because available data need to rely on the "legal" rather than "economic" definition of cities for medium and small cities. To remedy this difficulty, in this work we construct cities "from the bottom up" by clustering populated areas obtained from high-resolution data. This method allows us to investigate the population and area of cities for urban agglomerations of all sizes using clustering methods from percolation theory. We find that Zipf's law (a power law with exponent close to 1) for population holds for cities as small as 12,000 inhabitants in the USA and 5,000 inhabitants in Great Britain. In addition the distribution of city areas is also close to a Zipf's law. We provide a parsimonious model with endogenous city area that is consistent with those findings.