It is often beneficial to allow users extend your software with their own logic and with dynamic languages on the JVM it is also easy to do. In this session, we will share our experience in creating a public, Groovy-authored user plugin interface. We will explain what domain specific languages (DSLs) are, what their relevance to user plugins is, and how they can be implemented both in Groovy or Java. We will talk about another very important aspect of plugability: good public API design. Then we will cover security concerns and how they should be tackled. We will also discuss classpath isolation issues you may run into and will compare different solutions to this problem.