Home
Softono
FsFediverseArchive

FsFediverseArchive

Open source F#
14
Stars
3
Forks
0
Issues
1
Watchers
2 years
Last Commit

About FsFediverseArchive

FsFediverseArchive is a small project built with F and Google Cloud Functions that archives fediverse activity from Misskey, a decentralized social network implementing the ActivityPub protocol. The system works through a pipeline of cloud functions: a webhook endpoint receives notifications when a user posts a note or receives a reply on their own notes, then parses the content and publishes a Pub/Sub event. A second function is triggered by that event to save the note data to Firestore. A third function retrieves the stored data from Firestore and renders it as an HTML document for viewing. The project demonstrates how to connect multiple Google Cloud services in a serverless architecture, including Cloud Functions, Pub/Sub messaging, and Firestore storage. It serves as both a practical archiving tool for personal Misskey activity and a learning exercise in orchestrating cloud services beyond simple standalone functions. The codebase explores how different cloud components interact in a real workflow rather

Platforms

Web Self-hosted Cloud

Languages

F#

F# and Google Cloud Functions

This is a simple and small project to set up an endpoint for misskey webhooks every time I publish a note (toot/tweet) and I (or someone else) reply on my own notes.

The idea is quite simple:

  • Publish notes in misskey
  • The MkWebHook function endpoint gets hit in google cloud platform
  • Parse the content and fire a Pub/Sub event
  • The MkSaveNote function gets triggered when the a Pub/Sub topic is published from MkWebHook and saves the content of the note to Firestore
  • The MkDisplay function grabs whatever it is currently stored in firestore and renders an HTML document with some of the information.

While arguably most of that could have been done in the same function I wanted to try to connect different services along the way, as cloud services are often more than just a tutorial kind of function where once you get out of your rails it is nothing like the tutorial, so far I find this satisfactory and it was a good learning excercise, feel free to ask and raise issues if you have questions.

What is MissKey?

Misskey is a social network that just as mastodon, pixelfed, and other decentralized social media, implements the ActivityPub protocol it can federate content and is compatible with mastodon up to some extent (where the spec is respected by both parties)