Modern, mobile-friendly Web UI

Hello,

I’ve been using OpenWRT for 20 years but have in recent times found its interface a bit difficult to drive from my phone, which is the primary device that I use for most things. Also given that OpenWRT is rock solid I rarely need to log in and when I do I would always need to brute force the menus to find the setting I was looking for.

I knocked together a new UI which is a bit more modern and mobile friendly. Thought I’d share in case anyone is interested to use or build on top of it.

Main features:

  • Modern, mobile-friendly UI
  • Command drawer so it's easier to find features
  • SSH to your router over Web tunnel
  • Backwards compatibility with all existing LuCI apps

https://github.com/3aa49ec6bfc910647fa1c5a013e48eef/i-love-luci

11 Likes

screenshots look nice. are you planning to have this merged as either a standalone luci app or luci2/luci3?

I’ll be honest - I don’t understand enough about the ecosystem to be able to answer that. At this stage I don’t have any plans to integrate in any formal capacity but open to guidance on what might be useful to the community.

1 Like

I tried the UI and it's really nice :slightly_smiling_face:

I've been using the theme for a bit now and wanted to share some feedback. Overall, I really like the direction it's going in, and these are just a few suggestions that I think could make the experience even better.

  1. The Memory % value might look better if it were centered inside the donut chart. It would make the information easier to read at a glance.

  2. I noticed that the Associated Devices and Active DHCP Leases sections are no longer visible. Personally, I found those very useful on the dashboard and would love to see them return if possible.

  3. For users with multiple WAN-like interfaces (for example, a pppoe-wan and a wireguard vpn), it currently shows both. It could be nice to have an option to choose which interface is used for the upload/download statistics displayed on the dashboard.

  4. The Interfaces page showing all interfaces is a bit overwhelming one thing I miss from the default Bootstrap theme is being able to quickly see the status of only active interfaces, such as whether they're connected, their uptime, DNS servers, etc. In my case, I mostly care about my pppoe-wan and wireguard interfaces, so having active interfaces highlighted or prioritized could be helpful.

  5. As I mentioned earlier, some LuCI components still appear to use the default Bootstrap styling rather than the theme. A few examples I noticed were:

    • Channel Analysis
    • Routing
    • Software
    • Attended SysUpgrade
    • Backup / Flash Firmware
    • Interfaces
    • Wireless
  6. One small usability issue I found is that scrolling is not working when categories are expanded.

  7. The Information about your Disk Space, Memory is too Minimal we should have an option to get a detailed view of these

These are all minor observations, and I only wanted to mention them because I genuinely like the theme and think it has a lot of potential. It's already looking great, and I'm excited to see how it develops further. Thanks for all the work you've put into it! :slightly_smiling_face:

1 Like

Thanks for taking the time to provide such detailed feedback! I’ll see what I can do to incorporate all of these changes into an upcoming release.

Edit: These are included in r10.

1 Like

This looks promising for phone use. One small thing I would make very explicit in the README is the security model for the web SSH/tunnel part: whether it is local-only by default, what it exposes, and how to disable it completely. A mobile-friendly UI is nice, but on routers I would rather see the remote/control features opt-in and boringly documented than surprising.

Thanks for the feedback. So that I can better understand, what do you mean by local-only in this context? The tunnel is over whatever web session you are connecting to LuCI over, it does not expose any additional surface. I mean, I haven't audited it, but this is the intent. It is the same approach as most other modern router interfaces that I've used.

The 3rd paragraph in README.md has a summary of the implementation, not difficult to implement a toggle so I'll include that in a future release.

I just had a look at the code, this will never be merged into openwrt. It is some ai generated code, that is hard to maintain, just look at this:

it reimplements logic of existing luci apps, all in one file.

Hell no!

Thanks for your comment but I have no intention of ever merging it anywhere.

It’s obviously written using AI. The premise that AI-written code is unmaintainable, or that humans will be the ones maintaining code in the future, is an interesting one.

I’ve added an AI disclosure section to the README to avoid the need for others to point out the obvious.

I can kind of accept the the former, but not the later. For getting things merged into OpenWrt, it does need to be maintainable by humans - if you actually do -or not- is another question. The problem with effectively lumping it all into a single file is a problem for ongoing maintenance, because that kind of code duplication makes it much harder to fix anything (ranging from security issues to adaptions for API changes). This is even more relevant for Second System circumstances, OpenWrt is changing all the time - no one can really confirm that n+1 new skins (themes) or alternative webinterface keep working, so there is a strong aim to keep things manageable.

Note: specifically declared no desire to have this package merged.

Independent of that, this is still the implicit assumption for (many) comments.

Yeah, seems like it.