We have DB-backed queues using https://github.com/sorentwo/oban to avoid dropped activities
Public Interest Social Networks
Bonfire is built by communities, for communities. Rooted in autonomy, mutual care, and collective power. Co-create your tools, reclaim your data, and resist manipulation by shaping your own federated digital spaces.
Previously at @bonfire@indieweb.social
@zabbeer@floss.social thanks 😊 @dynamic you may want to have a look also at https://bonfirenetworks.org/design
@triptych awesome! that sure sounds like the kind of projects we want to help build and support :)
@triptych As you wish! We already have “flavours” in the architecture with which you can package up the app with a set of extensions and configs (including app name/icon/etc).
To implement federation, all you need is to declare in your context what Activity and/or Object types you want to handle, eg for posts:
```
def federation_module,
do: [
"Note",
{"Create", "Note"},
{"Create", "Article"}
]
```
and implement these two functions:
- for outgoing: `ap_publish_activity(subject_struct, verb, object_struct)`
- for incoming: `ap_receive_activity(subject_struct, activity_json, object_json)`
2/2
- Schema: https://github.com/bonfire-networks/bonfire_pages/blob/main/lib/pages/page.ex
- Context: https://github.com/bonfire-networks/bonfire_pages/blob/main/lib/pages/pages.ex
- Create a page “act” (which along with “epics” is an optional way to define pipes that pass data between different extensions and modules in a particular order): https://github.com/bonfire-networks/bonfire_pages/blob/main/lib/pages/page.create.ex
- “Epic” definition (which reuses many “acts” from other extensions) https://github.com/bonfire-networks/bonfire_spark/blob/main/lib/runtime_config.ex#L120
@triptych yeah that just gets you a skeleton, then you’ll probably need at least:
- DB schema(s): https://doc.bonfirenetworks.org/database.html
- Backend logic modules (contexts)
- Integration with the composer (smart input)
- Publish activities to feeds
- “Activity previews” to display your custom activity and/or object types in feeds
- Custom UIs using https://surface-ui.org https://www.phoenixframework.org https://daisyui.com https://tailwindcss.com
- LiveHandlers as the glue between your backend logic and UI
1/2
@kyva hola, nuestros otros fondos vinieron de https://nlnet.nl/ y https://culturalfoundation.eu/stories/culture-of-solidarity-fund/
Learn how the Bonfire framework empowers communities to (re)design their digital spaces from the ground up: https://bonfirenetworks.org/design
@triptych feel free to ask when it comes time for you to grok those (or any other components), it may even be a good exercise for us to draft the missing docs 😄
@triptych That's definitely something we need to write as we near 1.0, for now I can recommend this repo to use as a base for a new extension: https://github.com/bonfire-networks/bonfire_extension_template (we hope to create generators so there's less manual operations involved for this in future)
Also the guides which you can find in the sidebar of the docs are a must, such as: https://doc.bonfirenetworks.org/database.html
Notable things still missing from those are:
- how to add activities to the feed
- plugging into federation
- setting boundaries