WebUI v3 Theme/Extension Development

A couple people have asked about getting started with theme and extension development for WebUI v3. I’ve messed with this quite a bit and am happy to share anything I’ve learned. To avoid cluttering other threads, I’ve created this one. Currently, WebUI v2 is what is recommended.

I created a page out on my Github to document my notes. It’s still a work in progress but I’ll update it along the way. It can serve as the reference documentation for things discussed here. Some of this information is scattered throughout the forum.

While I’m happy with what I’ve created in this space, I want to state that I don’t consider myself to be a great UI developer. While in my professional job, I do both frontend and backend development, my strengths are really in the backend (APIs, databases, etc.). I say this mainly not to appease my impostor syndrome, but because I don’t want to come off as the expert or for you to assume that my way is the best way, because it’s probably not. I’m open to suggestions. I just hope this helps get some others started if they want to go down this path. And you know, document some stuff in case I get hit by a bus or something.

Either way, I’m happy to help.

Also, a big thanks to @Michael_Melancon for leading the way on WebUI v3.

7 Likes

Thank you!

Copying my comment from another thread here because I think it’s important in regards to changing up the whole dashboard. If a user asks for help using WebUI v3, the default answer should be targeting the base WebUI. It may evolve beyond that.

I’m trying to restrain myself a bit for now. WebUI v3 is still relatively new and v2 is the currently recommended version. I absolutely prefer v3 over v2 and have been happy using it for quite awhile now. I’ve had thoughts on replacing other panels like Status and Terminal. As v3 becomes more popular, I’m curious how opinions play out. I don’t want to change up the whole dashboard and drive people in that direction before they’ve had a chance to see it as is. It’s in the same vein as recent discussions of trying out the LR4 as is before modding it.

With that said, none of that is meant to discourage you from making your own stuff. I’ve had a lot of fun messing with all this.

Sometimes software development feels like a super power (and sometimes it’s really frustrating), but to quote Uncle Ben:

image

3 Likes

Hey @jeyeager, noticed some Maslow folks curious/frustrated enough looking to invest time/energy into making similar improvements to Maslow WebUI (not firmware so much). Just shared some pointers to some of your experiments/mods.

1 Like

Does Maslow use FluidNC?

Yeah, think they use a fork. No idea how much integration between forks is/has been occurring though, Search results for 'fluidnc fork order:latest' - Maslow CNC Forums

With as much as has been happening in FluidNC, if they’re not keeping their fork up to date, that sounds like a mess. I know there were a bunch of changes to support WebUI v3. I don’t think they’re even looking at v3.

1 Like

Yes, they use a fork.

Bar’s repo is here

They have v3 UI that I think is already customized beyond stock config, but not sure yet if that is the default UI for Maslow, or if they are still running the V2 version.

If so, then a lot of those comments may be more related to V2 WebUI.

At one point I was considering doing something like they are discussing, a standalone SPA that could be installed, or some other Native UI that was easy to cross-compile, but it really wasn’t worth my time.

We have a UI capable of running the CNC, in either V2 or V3, and in the end, I don’t have much to gain from yet another UI.

There’s not much I really do with the UI other than start a job, and a few other things. I just can’t see investing the amount of hours it would take to replace the V3 UI, and support the never ending requests, without a really good reason to do it.

If it’s one thing I’ve learned, it’s nearly impossible to make a UI for it that everyone will be happy with, just the way it is.

1 Like

Just to clarify, I mean this mostly from the standpoint of, I have a lot more interesting projects that I want to do, that I have trouble finding time for.

If I spend 100-200 hours writing a new UI, if it could even be reliably done in that amount of time, not counting ongoing support and maintenance, it really doesn’t make my CNC use any more enjoyable. At least not enough to justify the time cost…

There’s always a large amount of people that “want to” create a new UI, but few ever follow through.

Lots of people can do these types of things, but when you really start to sit down to create the kind of project the WebUI V3 is, I think the reality of the amount of time and effort sinks in, and it’s difficult to follow through.

I think there were at least 10 people in the FluidNC discord that popped in wanting to create a new UI from scratch instead of take on the V3 project.

We never heard from any of them again…

And just to correct this, maybe they don’t. What I remembered seeing was actually a customized V2 UI…

I 100% agree with you. Creating a whole new UI is way more effort than it’s worth. That’s why I like the extension capabilities of v3. There are things I don’t like about it, but no where near the threshold that would send me down that path.

2 Likes

Absolutely…

It lets the fun stuff happen quickly, without getting bogged down in framework details

2 Likes