What are weird and/or novel ways to do web UIs?
Do you know any websites that have weird UIs ? Something like a ZUI [1] for example.
[1] https://en.wikipedia.org/wiki/Zooming_user_interface
I once worked at Chase Manhattan Bank and one of their internal networking teams had a web site for wiring requests. They didn’t want to work too hard so their UI was designed to make data entry as slow as possible, mostly by using huge multi-level drop down lists where the slightest twitch would make them collapse and you would have to start over navigating through them, repeat a dozen times for every run of cable, several runs required to make an end to end connection. It wasn’t custom programming, just taking full advantage of the browsers of the era’s inability to render the UI component for that. So I was building out a data center and needed Something like forty thousand cables run which translated into around one hundred and fifty thousand segments. I tried to give this info via a spreadsheet but they were steadfast that the web interface was the only way they could receive it. So I wrote a script to just post the data directly without going through the UI, ran it, and went home. Turns out all their web form did was e-mail the values to a half dozen people. The e-mail system was Lotus Notes (dates this) so each person got their own copy and there was a lot of overhead. The sudden influx of a million e-mail messages brought down Chase’s email system for two thirds of the country. They spent days clearing the mail queue and recovering - they had to fly in IBM techs with suitcases full of disk drives to add the storage needed. Everyone who received the wiring requests spent days deleting them with new ones arriving as quickly as they deleted the old ones. Then when things were finally normal again they asked me to resend them my spreadsheet.
This website uses scatterplots instead of lists to display products:
https://www.productchart.com
So on Product Chart, you can for example say "Show me 300 smartphones and put the price on the x-axis and the size on the y-axis".
It's a bit like you would lay out things on a table and then organize them by some criteria.
An impressive implementation of a web UI is Figma:
Figma is written in C++ code then run in the browser by cross-compiling it to a subset of JavaScript known as asm.js. The asm.js subset is basically JavaScript where you can only use numbers (no strings, objects, etc.). This is all you need to run C++ code since everything in C++ is either a number or a pointer to a number, and pointers are also numbers. The C++ address space is just a giant JavaScript array of numbers and pointers are just indices into that array.
Of course wasm is more performant as it matures, but they’ve been at this since 2015 and I’m impressed by how responsive the app is.
https://www.figma.com/blog/webassembly-cut-figmas-load-time-...
I used to work at a company that behind the scenes had to use a web UI in a weird/novel way for their system to work.
This company's web UI would allow its users to initiate bank transactions. Nothing weird from the user's end. However, the company had to "approve" the transactions in real time, synchronously. The company could do all sorts of programmatic verification on the user, recipient, transaction, etc, but we had to actually physically press a button on the screen of a smart telephone to approve the transaction. There was no programmatic way around this.
Some programmers at the company came up with a robotic arm which could be controlled programmatically, which would do the telephone screen pressing for us.
I always thought that was pretty clever.
I came across this site a few weeks ago. And it's quite unlike anything I've seen. And try to inspect the site using browser inspector. It's a very different ui than I've ever seen before.
This is a bit of an odd answer, even in a question that expects odd answers. That is because it sounds so normal, yet I have Googled for it and almost no one advocates for it. They do maybe advocate for it in terms of design, but I mean in making actual static websites.
Enter Google Slides: the product for your uncle Joe and aunt Lysa to create their own websites without knowing how to code!
I even have an example website for you that I made as it is a project that I'm working on in my free time. I already remade the website in actual HTML/CSS/JS but I was simply curious how well Google Slides would work. IMO, it has a thing or two over Sketch (such as displaying GIFs, having links) since I made the actual layout with Sketch, and then redid everything with Google Slides to do a side by side comparison (I went too far with this :P).
There are a few things to consider:
1. Every page needs to be made in its own slide show as you cannot have different document sizes.
2. You will be stuck with a slide viewer, but I figured for the industrious fellow, you could simply inject some JavaScript that disables that whole viewer when you iframe your Google Slides website.
3. There are zooming issues because the pages are of different document sizes.
4. The fact that you need to define document sizes is noteworthy in itself.
So yea, not super duper practical, unless you aren't a web designer and simply want a simple profile page online, but definitely weird :D
Example website / project that I'm working on (and recreated to the best of my abilities in Google Slides for fun): https://docs.google.com/presentation/d/e/2PACX-1vRxqg4SNv1Sl...
Not sure if this counts as weird or novel web UI, but I wrote a small library to stream Dear ImGui's vertex and index buffers to browsers via websockets, and just render them using WebGL's drawElements [0]. There a couple of examples linked in the README for anyone interested.
[0] https://github.com/ggerganov/imgui-ws
it's just a proof of concept, but this web site discussed a few weeks ago absolutely blew my socks off:
discussion:
https://news.ycombinator.com/item?id=20929801
site:
https://3dforreddit.com/r/pics
From a comment:
"
How to use it Desktop: Click to start, WASD and mouse to move
Mobile: Dragging on left half of screen is move, right have is look
Append any subreddit to the url to switch subreddits
"
It should work in any browser but if you have a good GPU it will help a ton.
This isn't a weird UI as such, but it's probably a technology that isn't explored enough. Back in the very early 2000s before Javascript was universally available, we wrote a CGI-based technology that worked by persisting the entire state of the page between clicks. It was a true widget-based server-side GUI, so you could build single page UIs by composing widgets such as buttons, labels, and more complex things, hierarchically (like native GUIs). The whole page would reload between clicks but everything was so lightweight and tiny that wasn't actually much of a problem, at least by the standards of the day.
It's all open source but probably doesn't compile on modern machines, and of course for extra fun we wrote the entire stack including the webserver, CGIs, cooperative threading, database layer and C libraries from scratch. From top to bottom this is the entire stack:
http://git.annexia.org/?p=monolith.git;a=summary
http://git.annexia.org/?p=rws.git;a=summary
http://git.annexia.org/?p=pthrlib.git;a=summary
http://git.annexia.org/?p=c2lib.git;a=summary
Edit: I should say that it's obsolete if you can make the nowadays reasonable assumption that Javascript can be used on the client side. It's more like "this is the crazy shit that a team of developers in their 20s with VC funding, disfunctional management and time on their hands get up to".
Edit 2: It was used in production for quite a long time, certainly until the 2010s. If you were in a UK school in the mid 2000s there's a chance you might have used this.
Last time I checked Gtk has a web backend, meaning you can run basically any gtk app with the right environment variables and it'll pop open a browser with the app rendered pixel perfect into it.
I don't really think it's useful as an actual web technology since you'd need to spawn a process, reserve a port, and keep a connection open for each and every user which seems like it wouldn't be workable.
It's a neat trick though.
It's full of examples with unconventional design.
You might find some interesting examples by going through the websites here: http://brutalistwebsites.com
They definitely dont all have weird UI, but some do.
I think briefly it was considered cutting edge to have your page content be delivered as an XML document, with an accompanying XSL or XSLT file to mechanically translate the XML into a full-fledged XHTML page suitable for rendering in a browser. I even saw it once on some public website, I think maybe for a Blizzard game? The content XML looked great; very intuitive. The XSLT stuff for translating into XHTML, well, not so much.
For the comment system on my website I wrote a perl script that tails the nginx logs for all instances of /@say/ in the file path of requests. Anything after a /@say/ is considered comment. So the UI for commenting on my website is like,
http://mywebsite.com/somepage.html/@say/Hey, neat somepage content, guy.
Some nginx redirects also included to take users to the comments page after submitting.
I worked on a project before that explores using non-traditional UI on the web:
https://overwebs.ruph.in (warning - sound and high bandwidth)
It emulates a game UI, and uses background video to simulate physical movement when navigating between pages. It also incorporates some controls that are unusual for normal web applications like keyboard controls (shortcuts like 'Esc' to go back, 'Enter' to open chat).
It's a pretty old and very experimental project so some stuff is in a semi-broken state. I should revisit it sometime and clean up.
Animated backgrounds, infinite scrolling, elements that are only partially visible until you mouseover them, and uses zooming interface for opening individual posts.
Feels like a bastard child of GeoCities and modern web.
You can do anything at zombocom
A classic from 1996. Olia Lialina (@GIFmodel on twitter) wanted to make a website that had the feeling of a movie, far before movies were feasible online. So she made My Boyfriend Came Back From the War. Here's a mirror: http://www.teleportacia.org/war/
Well, HN is pretty weird for the web of today. That's also why it's so nice to use it. I wish more sites had simple, lean UI that let the text communicate its message, instead of being interactive marketing brochures.
I'm not ready to show it yet (#FML), but my interface renders everything in threads, including graphical controls, which yield messages.
Nothing happens outside the context of a thread. So it leaves a log of everything that happened in that context. Graphical elements can go full-screen... but you don't lose connection to the thread that they appear in.
It will tile these threads across all your (funky, heterogeneous) screens.
I think this will help you to organize things, and homogenize and simplify your experience with those things across devices.
Imagine actually knowing where everything is, and being able to see who, when, and why anybody touched it.
Weird UIs were what I miss the most about the web in the late 90s. There were no rules, and people were just winging it. I remember my friends making websites for their bands and bragging about how they made it so hard to use, that it was like a secret club if you figured it out.
repl.it's jobs page[1] is basically a bash terminal running on the web. You navigate it by using standard commands like cd and ls, and read files with cat, more or similar. This is NOT a bash emulator, this is an actual bash, running in a Docker container somewhere.
repl.it lets you build an app, in almost any language, on the web, and run it. If it's a console app using stdin/stdout, they even provide you with a terminal emulator. Well, that's some pretty impressive instance of dogfooding.
[1] https://repl.it/jobs
But I’m not a web dev and I don’t know the real reasons why it didn’t get traction :)
Back in design school, web portfolios could get pretty interesting. One novel way was to put up a collaborative google doc with some initial info that visitors could edit.
An example of this was http://carlyayres.com/ though it has since been updated to a non-editable page.
I wrote a library for React, Redux and Rails. Allowing you to build SPA without APIs. https://github.com/jho406/Breezy
Breezy's insight is that frontends are wildly complex due to the industry vertical (say.. childwelfare), so instead of shaping your state for business, breezy shapes it for content. Content being a header, footer, body as opposed to a post model or user model. This means each page is represented as a node in the Breezy Redux tree with its own header body and footer.
On one hand, it is annoying to traverse the pages to make updates, on the other, I can look at any running application and make close-to-correct assumptions on how to update the store. After all, most applications regardless of industry vertical has a header, body and footer somewhere.
I once made a calendar UI that used D3 to animate little circles that represented days. Switching from e.g. week to month caused the circles to flow to new locations. It had a pastel color scheme and it was really beautiful. Everyone who came into the office and saw it said things like, "I've never seen anything like this on the web." It was just eye candy really. It never saw the light of day. I begged them to put it in front of users or investors but no dice.
BTW, if you like ZUIs read up on Jef Raskin's "Humane Interface" https://en.wikipedia.org/wiki/The_Humane_Interface
I favor brutalism. A 1998 style design completely contained in inline code in the header. Using base fonts and features that are supported by all browsers.
It has a unique capability: it loads quickly.
Vimium may not be a web UI itself but it layers on top of them, and I have found it to be a way more efficient and concise way to navigate the web.
This library allows you to compile your winform C# gui app into a set of html, js, wasm and dll files and run them in the browser: https://github.com/roozbehid/WasmWinforms
Completely blew my mind! Probably not practical but really make me wonder if anything is possible with webassembly.
An idea I read about long ago is ring-based context menus. So instead of getting a square list of choices, one per line, you get each choice arranged in a ring around your cursor. So maybe Copy is at 1 o'clock, Cut 2 o'clock, etc. It would be easier to "target" your choice, and even easier once you learned the position of things. I don't know if this has ever been tried. Maybe in a game? EDIT: apparently this is called a pie menu or radial menu: https://en.wikipedia.org/wiki/Pie_menu
Javascript-less seems weird these days yet you can build most sites without really needing Javascript.
Also New York Times and other news site sometimes have really sophisticated interactive story telling or visualizations.
I've seen a website favicon be used to show loading and other information at the top of the browser inside the tab. that was really cool. They made the emoji cycle through multiple so that the favicon was animated.
One of the first websites I built (and one of the few sites left untouched for 20yrs) was a design experiment: http://lyca.com/
I tried mixing SVG and pixel perfect elements: http://fuse.rupy.se
It's really hard because it behaves differently with different aspect ratios.
I'd a big fan of some of the webGL experiments hanging around the internet.
i.e.
http://taotajima.jp/
Using Behavioral Programming you can write UIs mainly using event traces. The state of the app is not really contained and managed in the usual way: it's based off of the state of many concurrent threads running at the same time. Here's a TicTacToe example: https://lmatteis.github.io/react-behavioral/
ZUI huh? Thanks for introducing me to that term. I didn't know there was a name for a type of interface I've created in WPF a number of times. We've always called it a "semantic zooming" interface. WPF makes this super easy, but turns out it's a little harder in the web, but we've almost matched the UX!
My metabrowser [1] transludes webgl volumes into 3d space, and is navigated with FPS controls or VR. It’s ultimately a web site, but I’ve had chromium developers argue with me it’s not really “web”.
[1] https://github.com/exokitxr/exokit-browser
Pokémon Showdown uses a two-column layout on desktop, where you can drag panels between the columns:
https://play.pokemonshowdown.com/
I don't have a good sense of whether or not users actually like it, though.
Think it's been around for a while, but pretty fun and weird. :)
Apache/Nginx SSI + fcgiwrap + bash scripts.
For little admin/monitoring ui for Linux servers this is crazy quick to build. Probably would not want such sites on the Internet. Pwnd instantly if you have shell shock
If you have a good set of cli admin tools #youmightnotneedphp :)
A novel way would be to create a UI using a UI that exports the UI code. Using one of these no code tools like Webflow or Handoff. (Disclaimer: I'm the founder of Handoff. Check: www.handoff.design)
Django and SQLite for the backend and jQuery for the front end. And a $5 a month server from pythonanywhere.com.
Also using a splash page from glitch.com using static html.
I'm a bit confused by the title. Does the OP mean, 'tools and techniques to create (do) UI'?
Or is he or she referring to the look and feel of the final product itself?
back in 2007 I joined a company in a department where they wrote tailor made websites for clients. One of the sites was built to generate reports for ~50 customer's accounts. It was a single webpage with 50 buttons having the account name on each one of them. So you would see a bunch of different shape buttons on the page, you click a button and you would be redirected to another website. It was internally referred as Death By Buttons.
Any examples of websites with ZUIs? Looks interesting!
Google Maps has a ZUI in Chrome ;) more or less.
These days, it's pretty novel to just use HTML and very basic CSS with no JavaScript.
When you say "do", do mean "implementation" or "design"?
Python UI: tkinter. Very popular on stackoverflow.
A while back, just for kicks, I built a site whose UI is essentially a slideshow that takes the form of a draggable map. The content is sort of like a PowerPoint presentation, but user interaction is more like Google Maps.
http://www.youmightbe.pressbin.com
It's not a particularly efficient way for users to traverse the content, but I think it's fun.
The site gives an intro to Distributism, a "third way" economic model that is neither Capitalism nor Socialism nor a mishmash of the two.
There's this thing called Macromedia Flash...
This is more of a joke answer, but r/ProgrammerHumour recently underwent a spate of submissions competing to come up with the wackiest and "wrong" ways to do common UI elements, such as the slider or phone number inputs.
A small album of the best and worst of these submissions: https://www.reddit.com/r/ProgrammerHumor/comments/6fdl8h/an_...
Craigslist. Here is something novel: let html and browsers do their job. Let your browser process simple html at light speed. Let GET be idempotent. Let users be anonymous while getting information.
I think the weirdest way is using React. I mean, it feels so unnatural for me, compared to the jQuery way.
You have to download thousands of packages, keep track of various dependencies and their security holes, adding an overhead for auditing them.
HTML5 with jQuery IMHO still beats everything in simplicity and getting work done fastly
I've heard that some people build UIs with thousands of dependencies, in JavaScript that hits the server for text that is then parsed to object that are then passed through all sorts of classes that each spit out HTML. They also do some weird stuff with events like key-ups in order to re-render input fields based on objects rather than letting the browser manage those kinds of things.
Sounds pretty weird to me.