Digital twin applications use digital artifacts to twin targeted, usually cyber-physical, systems. Digital twins are model-centric systems: The purpose is to maintain a model by continuously mirroring the architecture and behavior of a twinned system, such that users can analyse the twinned system by means of the digital twin to, e.g., support decision making. In this talk, we discuss the basic concepts of digital twins, and how they can be built within a framework for self-adaptation. Our work on digital twins combines knowledge bases, using asset models, with behavioral system models, embodied in SMOL, a small custom programming language. We consider how a digital twin can systematically reconfigure over time to mirror a changing target system. We illustrate digital twins by applications to natural systems such as the Oslo Fjord. We end by discussing some challenges for digital twins from a formal methods perspective.