Granular media are frequently found in nature and in industry and their transport by a fluid flow is of great importance to human activities. One case of particular interest is the transport of sand in open-channel and river flows. In many instances, the shear stresses exerted by the fluid flow are bounded to certain limits and some grains are entrained as bed-load: a mobile layer which stays in contact with the fixed part of the granular bed. Under these conditions, an initially flat granular bed may be unstable, generating ripples and dunes such as those observed on the bed of rivers. In free-surface water flows, dunes are bedforms that scale with the flow depth, while ripples do not scale with it. This article presents a model for the formation of ripples and dunes based on the proposition that ripples are primary linear instabilities and that dunes are secondary instabilities formed from the competition between the coalescence of ripples and free surface effects. Although simple, the model is able to explain the growth of ripples, their saturation (not explained in previous models) and the evolution from ripples to dunes, presenting a complete picture for the formation of dunes.