stashapp / stash

An organizer for your porn, written in Go. Documentation: https://docs.stashapp.cc
https://stashapp.cc/
GNU Affero General Public License v3.0
8.76k stars 778 forks source link

[RFC] Proposed Stash Home Page Layout #1653

Open jeremymeyers opened 3 years ago

jeremymeyers commented 3 years ago

Creating a useful and interesting home page for Stash instances

Scope

One of the things currently missing from Stash is a specifically useful home page for new installs (currently it goes to a changelog)

My thoughts are that a home page should serve the following goals (in this case, "Content" means any scene, movie, image, gallery, tag or performer":

Details

Please note that this is intended mostly as a starting point for a conversation rather than a locked-down specific recommendation.

To this end, I have sketched (very loosely) out a few ideas:

(if anyone wants to mess about with the wireframes, stash redesign.zip they are in Balsamiq format)

A proposed home page layout.

Home Page

Some features:

A "Discover" page more specifically for finding buried content. Obviously this could be rolled into the home page.

Discover

A reworked "Content Info Box" (currently its a Scene one) more applicable to this design

Scene Info Box

A reworked "Tag Box" more applicable to this design

Tag Box

Examples

Other content management apps do some version of a good job at this. Here's the home page from the HTPC app i use, Emby.

Web capture_20-8-2021_122020_192 168 1 111

Reference Reading

Plex Home Page

echo6ix commented 3 years ago

My feedback is going to be pretty specific, but I think it might be relevant to suggest out of the gate as this concept is being gelled.

Widgets

Your wireframes contain blocks of content titled Recently Added, Favorites, Unwatched, Top Tags, etc. and you list a few more ideas of information that can be summarized on the dash within those blocks. For the sake of clarity I am going to refer to said items on the dashboard as widgets.

I would assume each dashboard widget is basically the result of:

  1. A (SQL) query: Content is selected from the DB meeting some criteria, sorted using some criteria, and the results limited to n amount.
  2. Content type: Then it must be determined how the data is displayed depending on what the content is:
    • scene: displays the scene thumbnail
    • movie: displays the poster art
    • performer: displays the performer thumbnail
    • image: displays an image from the image section
    • gallery: displays the galley thumbnail
    • tags: displays the tag thumbnail and name
    • markers: displays the marker thumb etc.
    • studio: displays studio thumbnail
    • graph: displays a pie chart of results from the query (i think this has been requested multiple times #506 at least)
    • featured content: whatever this is or means, i am assuming it displays a scene in a larger thumbnail with more metadata. the specifics aren't important yet i guess
  3. A heading/title for the widget

Hardcoded widgets or customizable widgets

You have outlined some basic and obvious widgets that would probably appeal to most users. My only suggestion would be to relieve the dev of the burden of thinking of relevant widgets to hardcode into the dash, because the torrent of requests to add such-and-such a widget will be inevitable and never-ending.

Instead of "hardcoding" the widgets, add some basic functionality with dashboard settings that gives the user the ability to modify, remove, or create their own widgets. (#744)

I am not a dev so maybe I am under-estimating the complexity of such a feature, but conceptually the SQL queries for the widgets could be guided with a basic UI similar (but a bit different) to the already existing filters. So we'd have a dashboard section in the settings with list of saved widgets that can be deleted or modified (or created anew), and each widget comprises of a name, query, and content type.

Discover

Customizable widgets would also cover anything a Discover section could present.

EDIT: Added Discover section. Added some content types I forgot about (studio, markers)

jeremymeyers commented 3 years ago

@echo6ix Yes agree with this. I imagine one could use the Filter functionality to create and save these queries (and perhaps stash could come with some sample saved queries)

Stephan972 commented 3 years ago

@jeremymeyers How did you do the images sketch ?

jeremymeyers commented 3 years ago

@jeremymeyers How did you do the images sketch ?

an app called Balsamiq

Failead0r commented 2 years ago

Plex home page for this could be a WIN WIN.

It's too good to be true

PS: Balsamiq TO THE MOON.

sleetx commented 2 years ago

Teda1's recent commits are great. I'd like to see some enhancements to it in the future. Right now every recommendation line is just "Recently Added"/"Recently Released" - for scenes, studios, movies, performers, and galleries.

How about the ability to toggle the existing "Recent" view with a "Random" view, or "Most Popular" (particularly for studios and performers, where they have a scene count).