Feed - amark/gun GitHub Wiki

Unity

lots of apps have the feed, notifications & DMs as separate: But I instead imagine a single feed+notification+DMs coming from above, and each item having slightly different media-type looks so as your scrolling you can tell which one is a blog post, which one is a video/reel, which one is a DM, which one is a game, etc.

and then filtering: let's pretend left/right "pages" are a single filter of degrees of separation

so all the way to the left is 0 degrees = just my posts, my settings, etc.

the next "page" over is 1 degree = DMs, posts from my immediate friends, and MAYBE a group chat if it is majority my 1st degree friends, this corresponds pretty closely to notifications as well, this all however still ultimately in "feed" format, if I click on one of the DM or group chat media-types then its gonna show just that thread as the feed.

Slide to right again 2 degree separation is posts from friends-of-friends or larger group chat.

Slide right again and we're at 3 degree separation (which turns out to be able to reach the entire world) and this is like your "recommended for you" type feeds, popular celebrity trending posts, news blogs, etc. etc.

Then slide again Deg 4 = bots, spam, ads, promotions, etc.

in most apps... sliding between different pages results in completely different code that's powering same but almost similar things (DMs vs Posts), no unity.

With sliding between these "pages" nothing is actually different mechanically about them, its just the sliding is adjusting the filter criteria - it then gets SUPER powerful if then you can also sort the filter by time or popularity or etc. etc. etc.

Views

this is part of the larger goal with SecureRender (now renamed to just THE game console graphics engine), the goal is that there is no such thing as apps. There is only data (from GUN), and then there are "views" for that data's media-types - which is closer to all apps being more like browser extensions, than apps.

apps are just media-type "views" that are constantly running on streams/feeds of data, and when the "view" (extension / "app") sees media-type data it recognizes it then renders it. When you now apply this same concept to video games, it gets cooler: its like you're wearing many special types of glasses that give you superpowers to see new types of 3D models & objects in the game, if you take off 1 of the layers of glasses... suddenly you don't see Dragons anymore.

Metaphor

from ABOVE = external/search/discovery, and from BELOW = productivity/creativity/practical as metaphors in all my UX designs. So for a game: health status at bottom of screen, goal status at top of screen. So for apps or OS: notifications / time / feed / messages come from top, while writing / editing / creating comes from below.

and if you notice, the 0 ~ 4 degrees of separation, LEFT to RIGHT is the exact same thing as the UP DOWN metaphor. Down = closer to yourself, your thoughts, private settings, etc. & Up = further from you, discovery, world events. Same concept but just mapped to left -> right instead. (combining them is helpful tho since we can only fit so much space on 1 screen, we don't want to infinity scroll thru doom to get to our drafts, so the UP/DOWN kinda work nicely as video-game style HUD elements... search up top, create post at bottom, and then the inbetween space is scrollable and left/right helps teleport/zoom the severity of that filtering)

Combining

if you're scrolling thru your feed and you see a video media-type, clicking makes it full screen.

Likewise, if you're scrolling thru feed and see a "2pm lunch confirmed" you notice it is a end-to-end encrypted DM media-type and it is clickable... initially it seems like it has no context, but clicking it then goes into thread view were you can scroll thru the whole chat.

Likewise, if you're scrolling thru a feed and you see a blog/tweet/post media looking type, clicking will expand to load the whole thing to scroll thru (notice: when the feed is fullscreen, the item is only a preview that must not exceed 99% screen/view height, however once clicked IT then BECOMES the fullscreen, so it is scrollable. There's never sub-scrolling, only FEED of previews, then preview -> full scrolling, etc.) scrolling thru the blog you might see that each paragraph/post has its own micro-preview underneath which when clicked goes into scrollable comments which are of course just its own feed (top/down sort by popularity or time, etc., left/right sort by degree of separation, etc.)

Now let's rewind. Back in private chats, there might be a micro preview above one of the DMs which indicates what it is replying to... which is again the exact same mechanic as the comments, but uses it to indicate a more direct threading than the time-sorted "feed" of the DM.

Micro-previews generally should not be displayed, unless the media-type is hovered or center of focus. so I'm kinda imagining the Feed of Media-Types having a slight (ever so tiny) magnifying effect as previews comes into focus/center-of-view where then the micro-preview metadata kinda fade/peeks into view to show time of post, what it was responding to, that there are comments responding to it, etc.

This illustrates even from a design standpoint everything follows the same type of design rules, there's only 3 "types" of things: micro-previews, previews, full-screen (which then once something has gone from preview to fullscreen mode it is scrollable, and its micro-previews are now previews, which when clicked, become fullscreen and their micro-previews are previews, etc. etc. etc. loop loop loop).

Now a preview can be a preview of a game, and when clicked, it becomes fullscreen and is "scrollable" in its own special way (1st person), vs say... a video having a preview and when clicked becomes fullscreen and is "scrollable" (fast forwarding, etc.)

This is how we escape sub-scrolling views && when expanded into this FEED&preview + Filtering, we get super rich, super expressive, super consistent & therefore predictive -> intuitive interface navigation of just about any type of media-type , system, information!