I’m grappling with an idea: the end-user can manipulate their app GUI as they are using it in any way they like. The nearest example is, of course, Excel. But that’s not really it.
Could I, as an end-user, have a number of GUI templates which I can choose from? So, I have my preferred shopping template, or messaging template, or media playback template, or flight booking template. And I can create and edit these templates.
But how do we get here? I mean how do we get to my personal GUI? This might be a GUI skin on a set of data, functions, actions, component (these terms are use loosely). Could the stage before my personal GUI be a semantic UI? For example, here’s a volume control, but it’s not explaining how it gets rendered in my personal GUI. I have a default for it in my personal GUI templates. It could be a slider or a number input with up and down arrows. And, sure, there would need to mapping from the semantic UI (what the data and logic exposes) to my personal GUI (my preferred rendering).
Then maybe I can group semantic UI functions like transport control or a selectable list of things. And my personal GUI templates describe how I want them rendered.
Anyone heard of anything remotely like this? Any pointers welcome.
Cheers Daniel, welcome to the community, and what an interesting first question! This is actually just the kind of thing I have spent some time on, but such a thing is not easy to build and is perhaps an example of what Steve Yegge has called the Nonesuch Beast. It was the goal of the Infusion framework that I worked on with the Fluid community since about 2008, and you can see an example of the kind of thing we produced in this documentation for the Preferences Framework which ironically is itself a framework for customising UIs : P
I don’t suggest you try using this since the UX of getting all the various intricate schemas right is very difficult and to my knowledge noone outside the team has succeeded in customising it effectively. I am still at work trying to deliver a newer version of Infusion but it’s going to be some time before I have anything usable to show, I will make sure to ping this space should I come up with anything.
In the meantime you may be interested in Semprola which was an interesting system presented at our Salon some years ago which has a means of hanging a flexibly determined UI on top of a semantic backend. There isn’t a publically usable implementation so far as I know.
There are a huge variety of NoCode systems out there but they are proprietary or unpleasant to varying extents. Here is one I see that seems to be flavour of the month: Bubble.
Hey @Bosmon thanks for all the info. A little bit overwhelming perhaps. I don’t really see what I want yet. After a couple of discussions what’s surfaced is maybe to do this as a series of constraints – or it may look like that anyway – rather than a one time mapping from semantic UI to rendered UI. Or maybe by having a graph of objects and relationships where a play button object can be part of a transport object which is part of a media player object. I think I’m looking for a pure view of the semantics before trying to figure out how to render it though. So, then I can choose how many transport functions I want to expose: just a play button or also skip 15 seconds forward/backward or a timeline slider too? It’s ongoing…
Maybe could be useful/inspiring to take a look at the Anytype Gallery, as it contains prepackaged GUIs for its more generic data model that can be customized further by its users. AFAIK, the chat functionality that is enabled over any Anytype objects is part of this customization possibilities.
I have read the “Nonesuch Beast”, recommended by @Bosmon, and I would say that in my experience over decades with several wiki engines, some of them used successfully by communities, enterprises and individuals, over years, I would say that wiki engines seem like that simple enough tool to get most of the job done and my unique extra feature I would add, would be a Domain Specific Language (DSL) that empowers users to create functionality almost as easy as they create content. TiddlyWiki has done a great job on this front with several lessons to learn, particularly in comparison with the wiki engine mentioned by Steve Yegge (Twiki and its open source active fork Foswiki). Maybe those customized GUIs can be packaged as plugins that bundle GUI + UX, in a similar way to Anytype galleries or TiddlyWiki plugins (that is what I’m envisioning for my wiki engine, using simpler web techs).