MPS technology stack, project concepts, and OpenAPI relations explained visually

While giving courses and helping colleagues, Eugen and me have noticed that it can be challenging to grasp the basic MPS project concepts and their relations. They are thoroughly explained by JetBrains here, but we often found ourselves drawing this diagram, so we decided to share it and hopefully help more people. The same holds … Read more

Connecting with Modelix MPS plugin to a model repository through a webserver that has a custom SSL certificate

If you try to connect using the Cloud tool window of Modelix to a model repository that is served through a web server that has a custom SSL certifcate (something that would be typical to a company-internal webserver), then (at least at the moment of this writing), you will get an exception from the Modelix … Read more

MPS Extensions available as plugins on JetBrains marketplace

Let me tell you about something awesome that I have been working on with Mike Vlassiev from the JetBrains people (or rather, they have been working on it and I have done testing and provided feedback): the MPS Extensions ( are now automatically made available on the JetBrains marketplace on every new MPS and MPS … Read more

Separate MPS caches for different MPS distributions based on the same MPS major version

Between MPS major versions, the MPS global caches are nicely separated (e.g. for MPS 2017.1, the cache directory is $HOME/.MPS2017.1 and for MPS 2017.2, the cache directory is $HOME/.MPS2017.2, where $HOME is your home directory, e.g. C:\Users\<yourusername> on Windows or /home/<yourusername> on Linux). Sometimes, there are reasons why you would want to change the cache … Read more

How I make an open source mbeddr developer release

The mbeddr RCP is great, because it gives you a focused MPS-based IDE, including mbeddr.platform, which you can use to write models in the embedded software domain. However, I find it often useful to have the mbeddr.platform plugins (which are generic pieces of functionality useful for any DSL development) available for development as a language … Read more

How to add default to a property in a concept

This post assumes that you have an MPS with mbeddr preloaded. Go to the constraints aspect for the concept you want to add a default to a property: Create a new constraint for this concept: Press Ctrl+L and import the language com.mbeddr.mpsutil.propertydefault: Go to the property constraints and press Enter to make a new one: Choose … Read more

Welcome to DSLFoundry!

Here we create and collect tools and libraries for Domain Specific Languages (see about). You can see some of the tools on our projects page. In addition, we will post some handy tips about DSL tools now and in the posts further down this blog. Please feel free to reuse our code and if you … Read more