Primary goal: Make it easier for Manifold to curate markets, articles, and other media relevant to breaking news to display on the homepage.
Secondary goal: Allow all users to create and share custom dashboards of markets + relevant media on any topic.
The Groups Question
- Dashboards are similar to Groups in many ways: both involve curating a set of related markets.
- One option would be to implement Dashboards as an additional feature exclusive to Groups
- I think would be a mistake: Groups are already very complicated and overload several different types of interaction (curation of markets vs community hub)
- The better approach is to build them in a decoupled fashion, allowing for further integration in the future, if desired
Proposal
- Approach: Create a set of reusable components to generalize what we’re currently doing to manually curate the news.
- Dashboards UX:
- Are a series of dashboard cards displayed in 2 x 1 grid (on desktop), or vertical list (on mobile)
- Each dashboard card is either a
- Market card
- Should include the graph!
- News article
- (or less importantly)
- Image
- Text block
- Tweet
- YouTube video
- Dashboard cards look physically like cards, have a smallish border, and have a max width ~440px and variable height (min height of ~200px)
- Each dashboard has a title displayed at the top of the page
- Dashboards can be accessed at /dashboards/{dashboard_slug}
- Dashboard creators can add new cards by clicking a “+” button inside of a card-looking element
- A popup dialog appears asking users to select one of the dashboard card types, and the further details needed for each card type
- An icon in the top right shows a popup containing a list of draggable elements showing sort order.
- On desktop, creators can also drag card elements around to control order.
- Other UI changes:
- Rename the Comments tab on the porfolio page to something like “Content” (not sure on specific label)
- Inside, show list of Dashboards a user has created, and a “create dashboard” button (similar to current posts UI)
- Change homepage to include hardcoded list of Dashboards
- In the future, we can try to algorithmically choose relevant user dashboards, but manual creation will probably be better for some time
- Later: Allow Groups to contain one or more linked Dashboards
- Backend design
- DB tables:
- “dashboards” with id, slug, title, description, creator_id, last_updated, created_time, dashboard_card_ids (array for sort order)
- “dashboard_cards” with id, dashboard_id, card_type (”market”, “article”, “image”, etc), card_data (possibly just a json blob), last_updated, created_time
- API functions
- /create-dashboard
- /add-dashboard-card
- /move-dashboard-card
[iw] Couldn’t these be combined with posts?
[c] Dashboard table has a json column with an array of items
- Alternately, a one row per item of the dashboard which each has the dashboard id