Alloy is a declarative language for lightweight modelling and analysis of software. The core of the language is based on first-order relational logic, which offers an attractive balance between analysability and expressiveness. The logic is expressive enough to capture the intricacies of real systems, but is also simple enough to support fully automated analysis with the Alloy Analyzer. The Analyzer is built on a SAT-based constraint solver and provides automated simulation, checking and debugging of Alloy specifications. Because of its automated analysis and expressive logic, Alloy has been applied in a wide variety of domains. These applications have motivated a number of extensions both to the Alloy language and to its SAT-based analysis. This paper provides an overview of Alloy in the context of its three largest application domains, lightweight modelling, bounded code verification and test-case generation, and three recent application-driven extensions, an imperative extension to the language, a compiler to executable code and a proof-capable analyser based on SMT. Near 916 desired property by searching for a counterexample to that property; and, finally, it can help debug an overconstrained specification by highlighting any constraints that conflict with one another. All three analyses are performed by reducing Alloy to relational logic, and solving the resulting constraints with Kodkod (Torlak 2009), which is an efficient, SAT-based solver for relational satisfiability problems. Kodkod works by translating a relational problem to a set of equisatisfiable boolean clauses, which are decided by an off-the-shelf SAT solver. The SAT solver is pluggable, ensuring that both Kodkod and Alloy users automatically benefit from the continuing advances in SAT solving technology. The versatility of Alloy, coupled with the fully automated analysis, has motivated its use in a wide range of practical and exploratory applications. Examples include:design modelling and analysis (Kang and Jackson 2009; Ramananandro 2008); bounded program verification (Dennis et al.