Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/iohzrd/identia
Decentralized, censorship resistant social media on IPFS.
https://github.com/iohzrd/identia
cryptography decentralized distributed identity ipfs media p2p publishing social social-media social-network svelte sveltejs
Last synced: about 2 months ago
JSON representation
Decentralized, censorship resistant social media on IPFS.
- Host: GitHub
- URL: https://github.com/iohzrd/identia
- Owner: iohzrd
- License: agpl-3.0
- Created: 2021-08-12T06:56:00.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-09-04T15:45:49.000Z (4 months ago)
- Last Synced: 2024-09-05T21:58:30.340Z (4 months ago)
- Topics: cryptography, decentralized, distributed, identity, ipfs, media, p2p, publishing, social, social-media, social-network, svelte, sveltejs
- Language: Svelte
- Homepage:
- Size: 6.47 MB
- Stars: 74
- Watchers: 5
- Forks: 9
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-tauri - Identia - Decentralized social media on IPFS. (Applications / Social media)
README
# identia
Peer-to-peer, censorship resistant social media on IPFS. Plus experimental RSS reader.
Successor to [follow](https://github.com/iohzrd/follow)
![screenshot1](screenshot-1.png)
## Development / Running from source
Follow [this guide](https://tauri.studio/v1/guides/getting-started/prerequisites) to setup dev dependencies...
### Linux
For video playback on linux, you may need to manually install gstreamer/gst-plugins:
`gstreamer gst-libva gst-plugins-bad gst-plugins-base gst-plugins-good gst-plugins-ugly`For hardware video acceleration install: `gstreamer-vaapi`. Optional but recommended.
```
npm install
npm start
```## Architecture
### The identity object:
```
{
"avatar": "", // base64 encoded image or ipfs CID for "avatar"
"description": "", // user-defined description / bio
"display_name": "", // user-defined display name
"following": [""], // a list of ID's the user follows
"meta": {}, // graph time!
"posts": [""], // a list of CIDs that represent post objects
"publisher": "", // users IPNS ID
"timestamp": 1608271880058, // UTC adjusted UNIX timestamp of the identities last alteration
}
```### The post object:
```
{
"body": "", // the text body of the post
"files": [], // a list of file paths, relative to the post root
"meta": {}, // graph time!
"publisher": "", // original publisher, will be used for "re-post" functionality
"timestamp": 1608271880058 // UTC adjusted UNIX timestamp of the post
}
```### The meta object:
```
{"TODO": "so many things to do..."}
```The meta object is a store for arbitrary data that can be used to describe complex relationships between various types of data.
These relationships can be stored in a post object to add context to a specific post or in the identity object to provide an identity-wide context scope.## TODO
- [x] prototype logic
- [x] periodically re-publish self identity
- [x] periodically update identities you follow...
- [x] cache posts
- [x] enable file in posts
- [x] bundle IPFS binaries and manage execution
- [x] post view
- [x] implement tray.
- [x] progress events for spinners and such
- [x] Distribute binaries
- [x] migrate to SQLite...
- [x] Paginate feed
- [x] enable(fix) audio/video playback
- [ ] re-implement comment system via pubsub
- [ ] implement image(media) board system via pubsub
- [ ] implement custom IPFS in rust-libp2p
- [ ] mobile...
- [ ] "re-post" / mirror a post
- [ ] include crypto signature of body in post
- [ ] mechanism for exporting / importing, identity / posts
- [ ] strip exif data from images
- [ ] include index.html with posts to allow styling for browser consumption...
- [ ] Auto-update system
- [ ] advanced pin management
- [ ] meta view
- [ ] settings view
- [ ] keybase-like functionality...## Follow me
```
12D3KooWHxU85q4JWsDXq4ZHjBCdjHHGL9wnMtqBMMgArkn6xcyz
```## Support me
https://github.com/sponsors/iohzrd
https://www.patreon.com/iohzrd
```
BTC:
bc1qtss3kxqcfl7glaskys7tevs98e6v62rhpx8lzj
```## License
[AGPL-3.0](LICENSE)