2019-02-14 12:36:53 -05:00
# Rust Reddit Fediverse (to be renamed later)
We have a twitter alternative (mastodon), a facebook alternative (friendica), so let's build a reddit alternative in the fediverse.
2019-02-28 01:02:55 -05:00
[Matrix Chat: #rust-reddit-fediverse:matrix.org ](https://riot.im/app/#/room/#rust-reddit-fediverse:matrix.org )
2019-02-14 20:42:04 -05:00
2019-02-28 01:02:55 -05:00
[ActivityPub API.md ](API.md )
2019-02-15 13:27:37 -05:00
2019-02-28 01:02:55 -05:00
## Goals
2019-02-14 12:36:53 -05:00
- Come up with a name / codename.
- Must have communities.
- Must have threaded comments.
2019-02-15 13:27:37 -05:00
- Must be federated: liking and following communities across instances.
2019-03-04 11:39:07 -05:00
- Be live-updating: have a right pane for new comments, and a main pain for the full threaded view.
- Use websockets for post / gets to your own instance.
2019-02-15 13:27:37 -05:00
## Questions
2019-02-14 12:36:53 -05:00
- How does voting work? Should we go back to the old way of showing up and downvote counts? Or just a score?
2019-02-15 13:27:37 -05:00
- Decide on tech to be used
- Backend: Actix, Diesel.
- Frontend: inferno, typescript and bootstrap for now.
2019-02-14 12:36:53 -05:00
- Should it allow bots?
2019-03-05 20:00:01 -05:00
- Should the comments / votes be static, or feel like a chat, like [flowchat? ](https://flow-chat.com ).
- Two pane model - Right pane is live comments, left pane is live tree view.
- On mobile, allow you to switch between them. Default?
2019-02-25 15:46:07 -05:00
## Resources / Potential Libraries
- Use the [activitypub crate. ](https://docs.rs/activitypub/0.1.4/activitypub/ )
- https://docs.rs/activitypub/0.1.4/activitypub/
- [Activitypub vocab. ](https://www.w3.org/TR/activitystreams-vocabulary/ )
2019-03-04 11:39:07 -05:00
- [Activitypub main ](https://www.w3.org/TR/activitypub/ )
2019-02-28 01:02:55 -05:00
- [Diesel to Postgres data types ](https://kotiri.com/2018/01/31/postgresql-diesel-rust-types.html )
- [helpful diesel examples ](http://siciarz.net/24-days-rust-diesel/ )
2019-03-04 11:39:07 -05:00
- [Mastodan public key server example ](https://blog.joinmastodon.org/2018/06/how-to-implement-a-basic-activitypub-server/ )
2019-03-05 20:00:01 -05:00
- [Recursive query for adjacency list for nested comments ](https://stackoverflow.com/questions/192220/what-is-the-most-efficient-elegant-way-to-parse-a-flat-table-into-a-tree/192462#192462 )
2019-03-20 21:22:31 -04:00
- https://github.com/sparksuite/simplemde-markdown-editor
- [Sticky Sidebar ](https://stackoverflow.com/questions/38382043/how-to-use-css-position-sticky-to-keep-a-sidebar-visible-with-bootstrap-4/49111934 )
2019-03-22 21:42:57 -04:00
- [RXJS websocket ](https://stackoverflow.com/questions/44060315/reconnecting-a-websocket-in-angular-and-rxjs/44067972#44067972 )
- [Rust JWT ](https://github.com/Keats/jsonwebtoken )
2019-03-27 12:59:21 -04:00
- [Hierarchical tree building javascript ](https://stackoverflow.com/a/40732240/1655478 )
2019-03-05 20:00:01 -05:00
## TODOs
- Endpoints
- DB
- Followers / following
2019-03-20 21:22:31 -04:00