This document discusses leveraging software product lines engineering techniques to construct domain-specific languages (DSLs). It presents an example of a family of languages for finite state machines that demonstrates variability points both syntactically and semantically. Challenges in developing language product lines like modeling variability, composing modular languages, and providing interfaces are discussed. The document demonstrates a tool for developing DSLs that supports variability modeling, configurable DSLs from language units, and extensions. Future work on program structure, constraints, and structural heterogeneity between platforms is also mentioned.