on master help sign in
add feed aggregator proposal (#682)

* add feed aggregator proposal * minor typos and edits * fix formatting * fix more formatting * fix even more formatting and typos * formating fix intesifies

commitde21b6954d23ff7ff565ff1fa1df45e4271f9c8f authormikeosborne <mike@urbit.org> dateTue 20 Jul 2021, 11:19 (5 years ago) parent5e2e233
1 file changed+105
content/grants/proposals/feed-aggregator.md+105
content/grants/proposals/feed-aggregator.mdnew file+105
@@ -0,0 +1,105 @@
1++++
2+title = "Urbit Feed Aggregator"
3+date = 2021-07-16
4+[taxonomies]
5+grant_type = ["proposals"]
6+grant_category = ["App Dev: Other"]
7+[extra]
8+image = ""
9+description = "A feed aggregation application"
10+reward = 5
11+assignee = "~mirtyl-wacdec"
12+grant_id = "P0043"
13+completed = false
14+link = ""
15++++
16+
17+## Purpose
18+
19+Urbit as it stands now (June 2021) is a very functional social network, but it's not yet making use of all the strengths of its computing model.
20+As a personal server Urbit is the perfect platform to build a centralized social media consumption application.
21+
22+Urbit TweetDeck (henceforth UTw) is two applications in one. On one side, it's a Microblogging app. A Twitter clone, basically. Users have individual feeds; you can follow, be followed, and keep custom lists of users.
23+Most importantly, though UTw can fetch data from external sources and present them for consumption, and interaction with the Microblogging app.
24+
25+Most internet users subscribe to a variety of data sources. Twitter, Facebook, Reddit, YouTube; this or that internet forum. Maybe some RSS feeds.
26+You will be able to import that data (scraping if public, fetching it if authenticated) and keep it as a column in the interface. You will also be able to share that data on your microblogging feed; "retweeting" or quoting data from any source you're subscribed to.
27+
28+The interface (as of now) follows TweetDeck; a deck of multiple columns, each displaying data from a single source, with vertical scroll.
29+
30+"Alternative frontends" such as Nitter or Invidious exist for many mainstream applications, but they all have one big problem: rate-limiting. Urbit solves this issue by having individual users do their own data fetching. No application can possibly block individual users fetching data for normal, personal use. That is literally a problem that only Urbit is equipped to solve.
31+
32+
33+
34+## Details
35+
36+### Target User
37+
38+Target user is any social media user who wants their data in a single dashboard, most especially people who like microblogging and would enjoy a way of easily sharing or commenting on their own data to their followers.
39+
40+### Plugin Framework
41+
42+A plugin system will allow data fetching and interaction from virtually infinite internet data sources. This achieves one of the earliest goals of Urbit, aggregation of internet data in a single private interface, where data is under your own control. It also essentially kills Twitter; it replicates all its functionality, and then some.
43+
44+
45+
46+## End Products
47+
48+### External Application
49+
50+UTw would be an external application, to be installed as a third-party package once the capability exists.
51+It does not require to be merged into core but it does require to extend the present functionality of graph-store, e.g. a timeline generator (scrying multiple resources at once) would be required, and that capability would be useful, we believe, to merge into core.
52+
53+### Web Application
54+
55+Beta version will be released as an external Elixir web-app that connects to Urbit via Airlock. Final version should be a lansdcape-ish React frontend on a (minimal) hoon backend
56+
57+### Documentation
58+
59+We'll have a tutorial but the app is quite self-explanatory. Documentation for plugin development will be provided.
60+
61+
62+## User Stories
63+
64+### As a normal user, I will be able to:
65+ - Set up an Urbit based microblogging feed, where I can post short pieces of text, upload or share (within limits) images, videos or audio files.
66+ - Follow other Urbit users who use the app, as they can follow me, and I can keep custom lists of people I follow, generating a Twitter-like timeline of either lists or all people I follow.
67+ - Browse Twitter while inside the same app, just adding a new column in the interface.
68+ - Have access to all the functionality Twitter has; I can follow people, keep them in lists. That data is stored in my Urbit's settings-store, where nobody can track it.
69+ - Quote or "retweet" tweets onto my Urbit feed, allowing me to share data from Twitter while inside Urbit, with a single click.
70+ - Share those Urbit Feed posts in other Urbit channels with a couple clicks.
71+ - Login to Twitter and use UTw as an alternative Twitter frontend.
72+ - Manage my lists and follows and post to Twitter.
73+ - Set up automatic crossposting and keep my Urbit and Twitter feeds in sync.
74+ - Perform all these actions on Facebook, Instagram, YouTube and Reddit as new plugins are developed. Perhaps even email - the sky is the limit.
75+
76+
77+### As a developer I will be able to:
78+ - Make plugins to integrate a data source into UTw. Basically just a custom scraper (a way of telling UTw how to fetch and render the data).
79+
80+
81+## Resources
82+
83+We have been in contact with ~timluc-miptev and ~tacryt-socryp.
84+
85+
86+## Milestones
87+
88+### Basic microblog - 1 star
89+Basic microblog functionality implemented with integrated Twitter client.
90+
91+### Twitter integration - 1 star
92+Twitter Login implemented, enabling cross-posting and import-export of data between Urbit and Twitter.
93+
94+### Graph-Store integration - 1 star
95+Full Urbit graph-store interaction implemented: live DMs, share-to-chat, export-to-notebook and collection.
96+
97+### Email/RSS integration - 1 star
98+Email and RSS feed importing implemented.
99+
100+### Plugin creation - 1 star
101+Plugin system implemented, enabling developers to integrate any data feed into the app.
102+
103+
104+
105+