<!-- .slide: data-background="https://hackmd.io/_uploads/rJ7A48wCa.png" -->
<aside class="notes">
[Distributed Press](https://distributed.press) is a software suite for decentralized publishing made by two worker owned cooperatives with based in Argentina and Canada
</aside>
---
## This Year:
- [Publishing API](https://github.com/hyphacoop/api.distributed.press/)
- [Social Inbox](https://github.com/hyphacoop/social.distributed.press/)
- [Reader](https://github.com/hyphacoop/social.distributed.press/)
- [Sutty CMS](https://sutty.nl/)
<aside class="notes">
- This year the team has been working on a suite of tools and libraries to work with distributed publishing thanks to a grant from the Filecoin Foundation for the Distributed Web.
- We've decomposed what it means to publish and view activitypub into components which we can mix and match across different applications. Publishing, Inbox, and Reading.
</aside>
---
## Publishing websites to the Fediverse
![image](https://hackmd.io/_uploads/rJF5i8PCp.png)
<aside class="notes">
- The first thing we did was figure out how to get any statically published blog viewable on the fediverse using our [`staticpub` example](https://github.com/RangerMauve/staticpub.mauve.moe/). We placed JSON files along static HTML for posts and made sure it was able to load across major implementations as an ActivityPub actor posts and an outbox.
</aside>
---
## Social Inbox
![image](https://hackmd.io/_uploads/rkva9Hw0a.png)
<aside class="notes">
- Next we looked at what it means to be able to interact with an ActivityPub actor and created the Social Inbox for handling incoming activities like follow requests. We link to it using statically published actors and activities and use it for sending out updates to followers in our site publishing pipelines.
</aside>
---
https://reader.distributed.press/
![image](https://w3s.link/ipfs/bafybeicpdsrn57z2jwtrxvqizeikqclvghiozn33kufd4qlymhhwn6ph34/)
<aside class="notes">
- Next we looked at what it means to read from the fediverse and put together our [Distributed Press Reader](https://reader.distributed.press/) which can follow and view ActivityPub actors feeds using a local timeline. Instead of one big database on an instace, each reader indexes activitypub data directly and can start following blogs without needing to set up an account.
</aside>
---
## A FEP for the distributed web
[FEP-1042 : Peer to Peer Fediverse Identities](https://github.com/hyphacoop/distributed-press-organizing/issues/103)
Based on [FEP-FFFD](https://codeberg.org/fediverse/fep/src/branch/main/fep/fffd/fep-fffd.md)
<aside class="notes">
- Through this we have also been working on a specification for publishing and loading ActivityPub data over peer to peer protocols like IPFS. With this you can publish content and accounts without needing to choose a central server or need an always online internet connection. We're working on our initial draft of FEP-1024 based on existing work in FEP-FFFD.
</aside>
---
## Discovering websites
![image](https://hackmd.io/_uploads/SJGA38vC6.png)
<aside class="notes">
- Lastly we've made sure that new sites are easily discoverable by letting them opt into being announced onto the fediverse as they are created.
</aside>
---
## Jekyll plugin to make it reproducible
https://rubygems.org/gems/jekyll-activity-pub
<aside class="notes">
- All of what we've learned with `staticpub` has been turned into a [Jekyll plugin](https://rubygems.org/gems/jekyll-activity-pub) so static websites can have AP enabled, and delegate remote activities to the Social Inbox.
</aside>
---
## Sutty CMS
https://panel.sutty.nl
![image](https://hackmd.io/_uploads/BJgKcFSPRp.png)
<aside class="notes">
- All of these tools have been combined in the Sutty CMS which provides an easy to use front-end for Jekyll static site publishing and Social Inbox ActivityPub moderation.
</aside>
---
## Moderation and safety tools
![image](https://hackmd.io/_uploads/Bysl5HDA6.png)
<aside class="notes">
- As we've been federating with other instances we've made sure to make onboarding more safe by incorporating moderation and default blocklists to keep the worst of the toxic instances at bay, while giving sites the option to add and remove individual users from their block and allow lists.
</aside>
---
## Working with communities
![image1](https://hackmd.io/_uploads/ByyqhUdCT.png)
<small>Anonymized screenshot of a collectively created board</small>
<aside class="notes">
- We're also running UX research groups with allied collectives and organizations from Latinamerica, so the tools we end up building are useful and understandable by the people we work with/for.
- A report on our findings is going to be out soon
</aside>
---
<aside class="notes">
- We're actively looking to integrate our specs and approaches with other implementations, come by our session later if these topics are interesting to you
</aside>
<!-- .slide: data-background="https://hackmd.io/_uploads/H1gftIv0a.png" -->
<!--
## Screenshots
- snapshot of post creation
![image](https://hackmd.io/_uploads/BJgKcFSPRp.png)
![image](https://hackmd.io/_uploads/rJqsYrvC6.png)
![image](https://hackmd.io/_uploads/rkva9Hw0a.png)
![image](https://hackmd.io/_uploads/r17IoHw0a.png)
- snapshot of moderation queue
This image works as a first slide
![para-fediforu4m](https://hackmd.io/_uploads/rJ7A48wCa.png)
This one works as a final slide
![para-fediforum5](https://hackmd.io/_uploads/rJMZDIPCT.png)
![image](https://hackmd.io/_uploads/Bka1crPR6.png)
![image](https://hackmd.io/_uploads/Bysl5HDA6.png)
![image](https://hackmd.io/_uploads/rJR-5HwAp.png)
![image](https://hackmd.io/_uploads/rk6McBwCT.png)
- snapshot of Sutty-published post in reader (p2p url)
![Screenshot 2024-03-19 at 11.51.52 PM](https://hackmd.io/_uploads/S1Za3LvRT.png)
- snapshot of followed account UI in reader
![Screenshot 2024-03-20 at 12.45.41 AM](https://hackmd.io/_uploads/Hyhj4vwAa.png)
- snapshot of announcements outbox in reader -->
{"title":"Fediforum Script","description":"snapshot of post creation","contributors":"[{\"id\":\"b3be1766-3501-403b-8f3d-2d380203efa3\",\"add\":3644,\"del\":808},{\"id\":\"cbf35e50-199f-40c2-a404-4621e06bf013\",\"add\":6016,\"del\":3277},{\"id\":\"db9cec42-1f27-4306-8499-7eeb64a33809\",\"add\":811,\"del\":457},{\"id\":\"a9d6a30e-a9fb-4551-8049-c10951292373\",\"add\":271,\"del\":25}]","slideOptions":"{\"slideOptions\":{\"theme\":\"white\"}}"}