Without accounting for the limited availability of shared cellular resources, the standard model of gene expression fails to reliably predict experimental data obtained in vitro. To overcome this limitation, we develop a dynamical model of gene expression explicitly modeling competition for scarce resources. In addition to accurately describing the experimental data, this model only depends on a handful of easily identifiable parameters with clear physical interpretation. Based on this model, we then characterize the combinations of protein concentrations that are simultaneously realizable with shared resources. As application examples, we demonstrate how the results can be used to explain similarities/differences among different in vitro extracts, furthermore, we illustrate that accounting for resource usage is essential in circuit design considering the toggle switch.