OSTRICH: a rich template language for low-code development (extended version)

Hugo Lourenço, Carla Ferreira, João Costa Seco, Joana Parreira

Research output: Contribution to journalArticlepeer-review

1 Citation (Scopus)


Low-code platforms aim at allowing non-experts to develop complex systems and knowledgeable developers to improve their productivity in orders of magnitude. The greater gain comes from using components developed by experts capturing common patterns across all layers of the application, from the user interface to the data layer and integration with external systems. Often, cloning sample code fragments is the only alternative in such scenarios, requiring extensive adaptation to reach the intended use. Such customization activities require deep knowledge outside of the comfort zone of low code. To effectively speed up the reuse, composition, and adaptation of pre-defined components, low-code platforms need to provide safe and easy-to-use language mechanisms. This paper introduces OSTRICH, a strongly typed rich templating language for a low-code platform (OutSystems) that builds on metamodel annotations and allows the correct instantiation of templates. We conservatively extend the existing metamodel and ensure that the resulting code is always well-formed. The results we present include a novel type safety verification of template definitions, and template arguments, providing model consistency across application layers. We implemented this template language in a prototype of the OutSystems platform and ported nine of the top ten most used sample code fragments, thus improving the reuse of professionally designed components.

Original languageEnglish
Number of pages19
JournalSoftware and Systems Modeling
Publication statusPublished - 16 Dec 2022


  • Development productivity
  • Low-code
  • Metamodel templating
  • Model reuse
  • Parameter constraints
  • Typechecking templates


Dive into the research topics of 'OSTRICH: a rich template language for low-code development (extended version)'. Together they form a unique fingerprint.

Cite this