That's the best part about what I'm doing. The core logic under the hood requires very little change between 2.0 and 2.1. There is a hook I need that's in 2.1 that isn't in 2.0 (so the code path for 2.0 can be ignored there), there's a renamed column in the database (the member group stars column is now internally known as icons and the URL to them is a bit different) and the editor component needs a bit different handling - but this stuff I was aware of and largely built in a way that separated this stuff out.
The plan is to have the 2.1 version essentially grab the 2.0 code and then apply the files that are different on top of it, which should be the templates (due to changes in 2.1's markup and style) and one of the helper modules (because the rich text editor code is different). That last one is interesting and important in a lot of ways - because the main editor code is so awkward in general to actually deal with (and I spent time researching how I did it back in SimpleDesk because I didn't remember how to do it), I made a thing called LevGal_Helper_Richtext which isolates *all* of the editor behaviour away from the core LevGal code, meaning that provided the wiring matches up (each function does the same job as it did before), the core doesn't care which editor is being used as long as the helper does its job and returns the expected data. It's sort of magic really

In fact, LevGal doesn't even look terrible for the most part on 2.1, the main item page works fine for example. I could make use of shiny features in 2.1 but then I'd have to split the code base to do it when the 2.0 stuff works perfectly fine as it is. For example, jQuery is bundled with 2.1 and I could use that and rejig how the media player and lightbox work to work with how 2.1 does it but then I'd have quite a few large chunks of code that operated differently which increases bug likelihood.