Awesome!
Email can be a challenging way to reach me. I get way too many emails to stay on top of it.
And the picture on the ground is a little different than when I first posted this plea for help! Ilia has been the superhero I wished for, and came along with Authtentic Theme, which has been a miraculous change for all of Webmin. It’s brought some growing pains (and a recent security bug that borders on disastrous). We’re currently working to improve Authentic; I’ve been doing a code review of the Perl side of things, as Ilia is still learning Perl (though he’s getting better very rapidly; sometimes he’s been poorly served by looking to Webmin code for examples, and some Webmin code is old-fashioned enough to be a bad example to follow).
I think there’s also room on the javascript side to improve performance, in particular. We’re pulling down a lot of libraries to build the Authentic UI; that’s probably an area for improvement. We’re also still working with a multi-page application, in some regards, which is sub-optimal for something with such large dependencies. I had sort of solved this in my Bootstrap theme, but it was still a long way from being production quality (whereas Authentic has been ready for production, for many use cases, for at least a few months).
So, our current development projects:
- Modern Perl overhaul of all of Webmin. This one is a huge project. Short-term goals include making “use strict/use warnings” and Perl Critic happy in all of Webmin/Virtualmin/Cloudmin/Usermin. That’s the point where we’ll branch a 2.0 beta of Webmin and start getting more experimental. This strict/warn project is ongoing on github (I’ve just wrapped up several hundred changes over the past week, making all of the bind8 module a bit more modern and ready for 2.0 branch, and I’m starting on another module today).
- Modern Perl overhaul of Authentic. While Authentic is recently written, it is built with Webmin as the primary example of Perl usage, which is pretty old school. So, it needs the same treatment as Webmin. This may also help us sort out potential security gotchas, and we also need to find areas where things have been built as part of the theme that should be part of Webmin core or in a module. I’ve also been working on this one. I’m working with Ilia to get him doing more frequent check-ins, so more people can more readily help out with development there; now that it has become a somewhat mature product with more evolution than revolution, it would be well-served by more code janitors helping keep it nice and clean and tight and solid.
- Performance and bandwidth improvements to Authentic. Ilia has done some nice work on this front recently (18.00 is notably faster than prior versions), but there’s still more to be done. As more of the UI gets built in the client browser, the weight of what we’re pulling down the pipe grows; people on slow links notice the sluggishness of that model (I’m on a slow link, because I live in an RV and use 4G broadband, which is expensive and slow, so I notice this).
- Get ahead of the curve on modern JavaScript and HTML app development. That probably means looking to React (or similar) for some of the front end. Currently Authentic uses jQuery and some other standalone libraries to do its work. As we leave behind the old crappy browsers (IE9, in particular), we can use more modern JavaScript features and shrink our reliance on libraries, making the js payload smaller. A component based approach to the UI might be just the right thing for Webmin; Jamie has already begun work on making an OO interface to ui-lib.pl in Webmin. Making that talk to a React (or other JS) frontend would be a super cool way forward.
- Open up development of all of the plugins for Virtualmin (at the least), via a public repo for each project. We currently have one big private repository with everything Virtualmin related in it, including stuff we release as Open Source. No good reason it’s that way, it is just what we did 11 years ago when we started the Subversion repository.
And, I don’t want to imply that Authentic is the only way to work on JavaScript and UI in Webmin/Virtualmin. New themes are great. Though we’re shaking things up a lot going forward, so it’ll take a real commitment to staying on top of how the UI library evolves to keep a new theme working through the Webmin 2.0 development. For that period, it’ll be easiest to work on Authentic while we learn what the new paradigm ought to look like. There’s so much room for impacting how we build the new UI library and themes going forward, it’s almost hard to point you to anything specific, because it is all wide open. We honestly don’t know the best way forward on UI/HTML5/JavaScript, but we’re moving forward rapidly, anyway!
Do you have a github account? We’re doing all of our development there, for now (we’re looking at gitlab, as it has better CI and code review built in), and all of the changes we’re doing are going in as pull requests. So, you can fork Webmin or Authentic and start making contributions immediately. I’m happy to help guide you in the areas I know well (the Perl update work, for example). On the UI side, I think we’re all flying blind, and learning as we go (Ilia knows more than me or Jamie on that front, however, so we usually defer to him on front end decisions).