Howdy,
I have just released Beta 3 of Hye Ararat (v3.0.0-beta.3).
You can install it using the instructions on the GitHub repo: GitHub - hyecompany/ararat-web: Take your infrastructure to its peak · GitHub.
If you don’t know what Hye Ararat is, here’s some context: Introducing Hye Ararat: A Web UI native to Incus
This release mainly serves as preparation for adding the primitives beyond instances. As a result, most of the changes are internal, and not really visible on the surface level (but are quite comprehensive!). That also means this announcement will be more technical!
The most significant change is a complete re-write on our data fetching layer. Instead of SWR (which was already extremely fast), Ararat now maintains a custom local cache for Incus data that is directly tied-in with the Incus events socket.
UI elements now instantly update through event emittance, no longer requiring a refresh. If an instance is created, edited or modified, the UI immediately reflects that. Ararat is now also intelligently aware what has and hasn’t changed, so network traffic is substantially reduced. In fact, it will be extremely rare you see any loading or waiting for data fetching in Ararat (outside of first visit of course). You just have to try it!
I also have employed some intelligent routing & concurrency logic on the fetching layer, and have virtualized all tables on the UI. This allows us to show the full resource list without sending a huge network request to Incus, or lagging out the client. Resources are just loaded based on what is visible.
As you can see from the efforts I went to (on the SPICE client too in the previous build!), performance is a huge focus in Ararat, and this work is foundational to bring strong implementation of future primitives. Primitives beyond instances will be introduced in Beta 4 next week, starting with storage pools. I have already added initial support in this release. Only listing is currently present:
This release also has also laid some groundwork for a potential future UI refactor. Over the last 2 weeks, I have been experimenting with several different methodologies to make Ararat cater more to context-rich power users, while maintaining its simplicity for those less technical. I am thinking that hover-cards with controls and realtime information over related primitives is the way to go, keeping the UI simple but all of the options there, however, I’m still uncertain and would absolutely love some feedback from the community on what changes y’all want to see layout-wise, or how additional options can be handled. I’ve prototyped everything from simple hover cards to full on simulated window management with window snapping
, so there is a lot of flexibility to the ultimate approach. I encourage y’all to use your imagination! More feedback = more polish.
One more note: As of May 5th, I have been moved to full time on Hye Ararat. Development will now be moving much faster & with much more momentum, so definitely don’t be afraid to make big feature requests or request large changes. I’m here to serve the community.
Thank you!
