In this paper we propose a language-driven approach for the high-level design of web-based learning applications. In our approach we define a domainspecific language that characterizes the key application aspects. Then we assign a suitable operational semantics to this language, and we keep it independent of lowlevel implementation details such as interaction / presentation or database updating. The resulting design can be easily implemented using the model-view-controller pattern that is very well supported by standard implementation technologies. In addition, these language-driven designs also allow for rapid prototyping, exploration and early discovery of application features, as well as for rational collaboration processes between instructors and developers. We exemplify our approach with a Socratic Tutoring System.