i think two separate branches/projects/deployables is easy to picture. i'm wondering if there's a way to streamline this especially if there will be a long support need for both versions (on the order of years). on the javafx side, the deconfliction would occur on the class side. you'd add classes to no.tornadofx from two modules, either shaded or using a custom assembly. build a cross-platform JAR but deploy a java9 jar or a java8 jar with the relevant class files added