Salta al contenuto principale

Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


I've improved federation support for Lemmy and other servers that support FEP-1b12 Group Federation.

I had to increase the number of available file descriptors on my personal server 4x because of the resultant inbound volume of ActivityPub activities! I liked a federated post and DOSed my server.

#ktistec #activitypub #fediverse

reshared this


Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


L'introduzione nell'ultima versione di Calibre (calibre-ebook.com/it/whats-new) , il software opensource per la gestione degli ebook, di una funzione di IA sta già suscitando, giustamente, diverse polemiche, qui sotto la posizione dello sviluppatore e di alcuni utenti

mobileread.com/forums/showthre…

buc.ci/abucci/p/1765053767.148…

#Calibre #ebook #IA #AI #SoftwareLibero

@informapirata
@libri
@scuola
@alephoto85
@maupao


Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


A volte il silenzio digitale non è vuoto: è respiro.
Ho scritto un nuovo pezzo su cosa significa disintossicarsi senza sparire e perché il Fediverso è meno tossico dei social veloci.

Link nei commenti

#fediverso #fediverse #neurodivergenza #neurodivergent #autismo #autism #michiyospace #digitaleconsapevole #digitalawareness

reshared this

in reply to Michela

michiyospace.altervista.org/un…

Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


Several people asked if our artwork, such as the print we offer as a crowdfunding reward, is AI-generated.
It’s not.
It’s an original work by Rocco Lombardi, the artist behind the Bonfire icon and much of our other illustrations, hand screen-printed by BeeInk, a social print studio in Belluno, Italy.

Grab one and support the development of federated groups in Bonfire
indiegogo.com/projects/bonfire…

And it looks great on your wall too. Here’s @samvie print ❤️

reshared this


Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


La fine del mondo sta arrivando (ed è a fumetti!)

Il 18 dicembre in edicola con il manifesto
troverete il numero zero del magazine a fumetti, ideato e curato da Maicol & Mirco.

Sarà un appuntamento mensile con i migliori nomi del fumetto italiano e internazionale.

Costa solo 4 euro più il prezzo del quotidiano.

#fumetti #ilmanifesto #letture #Maicol&Mirco #ComingSoon #RivisteDiCarta #BD

@lindasartini
@alephoto85
@mauriziocarnago
@luther
@maicolemirco


Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


🚀 Il client mastodon Phanpy è aggiornato!

Ora è integrato anche il nostro servizio di traduzione LibreTranslate e di default punta sulla nostraistanza mastodon.uno.

Cosa aspettate a provarlo? 👉 phanpy.mastodon.uno/

Phanpy è un modo diverso e innovativo per navigare su #Mastodon con il browser!

Un grazie speciale a @magostinelli per l’incredibile lavoro nel portare #Phanpy in Italia. 🙌

:fediverso: Seguiteci e restate aggiornati sul Fediverso nel gruppo: @fediverso 🌐

#phanpy #mastodonUno

in reply to Maximass

@maximass su phanpy basta che clicchi sul pulsante traduci per tradurre tutti i messaggi in altre lingue
in reply to Uno Academy

Ho necessità di capire come funziona il tutto devo chiarirmi le idee.
Phanpy è un applicativo di mastodon oppure bisogna accedere sempre in Phanpy per navigare su mastodonuno e così i post si possono tradurre cliccandoci sopra

Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


Good news everyone! We hit our first milestone: maintenance is 100% funded. Thank you all ❤️

Next up: unlock the stretch goal to co‑design federated groups: community‑owned spaces to organise across the fediverse, with no server or platform lock‑in.

Read about why this matters and how it can empower communities: bonfirenetworks.org/posts/why-…

Support the campaign: indiegogo.com/projects/bonfire…

#Fediverse #FederatedGroups #CommunitySpaces #ActivityPub

in reply to Moved to @bonfire@bonfire.cafe

backing!

Very happy to hear compatibility with the threadiverse is a goal. On that note, I hope you’ll consider pioneering the ability for groups to follow other groups:

blog.erlend.sh/group-convergen…

in reply to Erlend Sogge Heggen

@erlend Appreciate it! Could you expand on how you envision a group following another group working?

General Discussion reshared this.


Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


The Oxford Word of the Year is "rage bait" 🙁

In a world seemingly filled with "rage bait", we're building technology that lets you connect authentically. That's why we carefully designed consent-respecting Quote Posts. Free speech isn’t about giving hate a megaphone, it’s about protecting the voices that need it most.🛡️

Mastodon’s community-driven moderation proves we can foster open dialogue and safety, without algorithms or agendas.

Donate #SupportMastodon joinmastodon.org/sponsors#dona…

in reply to Mastodon

that's clearly two words. You might even call it a phrase.
in reply to Dibs

@dtwx we don't write dictionaries, those Oxford people did...! 🧑🏻‍🎓
@Dibs
in reply to Mastodon

so some people need freedom of speech more than others?

Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


Successfully imported a #Mastodon archive into my #Wordpress blog with #ActivityPub plugin's Importer. Yay! One down, two to go...
in reply to The Void ザ・ヴォイド

You know what I didn't understand?
Did you import your Mastodon account's JSON archive into your WordPress?
And what procedure did you use?
Can you explain more?
in reply to macfranc

@macfranc @notizie DL yr Masto archive as .zip. Install AP plugin to your WP. Tools>Import>Mastodon Importer(beta). en-gb.wordpress.org/plugins/ac…
in reply to The Void ザ・ヴォイド

@macfranc @notizie I've been helping to test/debug. You can read this thread about that if you like: wordpress.org/support/topic/im…
in reply to The Void ザ・ヴォイド

Yes, thanks... I only noticed it half an hour ago! I hadn't realized this feature had been introduced.
Anyway, thanks for your reply.

@notizie


Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


I've just published version 2.85 of #snac, the simple, minimalistic #ActivityPub instance server written in C. It includes the following changes:

Quoted posts are now shown.

Added metadata to remote users in the people page (contributed by dandelions).

Fixed memory leak (contributed by dandelions).

Fixed user matching (contributed by rakoo).

Rendering visibility conditionally, with lesser reach if needed (contributed by byte).

Added a button next to a follow notification to follow back.

Fixed typo in man page (contributed by spky).

Updated Czech and German translations (contributed by pmjv and zen).

comam.es/what-is-snac

If you find #snac useful, please consider buying grunfink a coffee or contributing via LiberaPay.

#snacAnnounces #FrugalFediverse



La guida definitiva per rispondere a un post su Mastodon:

1) Inizia a scrivere una risposta impertinente, ma inizia a preoccuparti che venga fraintesa.
2) Scarta la risposta senza pubblicarla.
3) Inizia a scrivere una risposta sincera. Continua finché non avrai scritto un post di 5000 caratteri, composto da più paragrafi.
4) Scarta la risposta senza pubblicarla.
5) Inizia a scrivere una nuova risposta in cui cerchi di formulare il tuo post nel modo più succinto possibile.
6) Arrenditi e scarta la risposta senza pubblicarla.
9) Clicca semplicemente sul pulsante a forma di stella del post ⭐

Post originale di @Luftvaffel@Che succede nel Fediverso?


How to reply to a post on Fedi:

1. Begin writing a sassy reply, but start to worry that it will be misunderstood.
2. Discard reply without posting.
3. Start writing a sincere reply. Continue until you have written a 5000 character, multi paragraph screed.
4. Discard without posting.
5. Start a new reply where you try to phrase your screed as succinctly as possible.
5. Give up and discard without posting.
6. Just click the star button on the post instead ⭐

#fediverse


reshared this



Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


Ho aperto una stanza pubblica su Matrix dedicata agli aspetti tecnici del Fediverso 🛠️🌐

È pensata per admin, smanettoni, curiosə e chiunque voglia parlare di:

Tutto ciò che riguarda il Fediverso,

self-hosting di istanze,

configurazioni, backup, sicurezza,

strumenti e buone pratiche tra admin e futuri admin.

Niente flame, niente politica del giorno, niente “il Fediverso sta diventando X”: solo confronto tecnico, domande, aiuto reciproco e condivisione di esperienza.

La stanza è aperta a tuttə gli interessati:
👉 link Matrix: matrix.to/#/#Feditecnica:searx…

Se ti va di imparare, aiutare o semplicemente lurkare per capire come funziona “dietro le quinte”, sei il benvenuto.

P.s. Presentatevi all'iscrizione.😉

@fediverso

#Fediverso #Matrix #SelfHosting

Questa voce è stata modificata (2 mesi fa)
Unknown parent

mastodon - Collegamento all'originale
Punco X
Ciao, sono su Bida 🙂

Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


Tumblr sospende l'integrazione con fediverso e il passaggio a WordPress

Tumblr sta abbandonando – o almeno sospendendo – il suo piano di migrazione a WordPress. Di conseguenza, ciò significa anche sospendere i piani di integrazione di Tumblr nel fediverso.

La notizia è stata diffusa lunedì sul podcast Decoder di The Verge . Automattic, proprietaria di Tumblr, aveva annunciato l'anno scorso di voler spostare il backend del suo sito web da Tumblr a WordPress. Ma il fondatore e CEO di Automattic, Matt Mullenweg, ha dichiarato a Decoder che l'idea era in sospeso perché l'azienda aveva deciso di "concentrarsi il più possibile sulle cose che sarebbero state visibili agli utenti e che gli utenti stavano chiedendo". Questo è coerente: cambiare il backend di un sito web è un'impresa importante, ma che non è immediatamente evidente alla maggior parte degli utenti.

mashable.com/article/tumblr-fe…

@fediverso


Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


Il Fediverso e la creazione di contenuti: la monetizzazione

"Certo, abbiamo sostituti open source e federati per Instagram, TikTok e YouTube. Come possiamo convincere i creatori a usare queste cose? Una considerazione riguarda la possibilità di pagare per le cose."

deadsuperhero.com/the-fedivers…

@fediverso


Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


RE: mastodon.social/@_elena/115643…

We have been really happy to watch the #Plushtodon friends uniting with their brethren!


My #Plushtodon family just got bigger 🧡💛💙

Thank you @Mastodon @staff for creating such adorable, super soft plushies


reshared this


Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


Do you want to help people escape Big Tech and join the open social web? We need help to boost the Bonfire campaign. With #GivingTuesday momentum is on our side, but most people stuck on enshitified platforms only see content from people still active there.

If that's you, pick a template below (or write your own) and post it anywhere you have reach: Facebook (incl groups), LinkedIn, Twitter, email lists, Slack/Discord. Every share brings us closer to an open community‑governed internet. Thanks!

reshared this

in reply to Moved to @bonfire@bonfire.cafe

2/2

Document with some examples posts you can share (feel free to customise!): hackmd.io/@mayel/ByB9Qvnbbg

Link to our crowdfunding campaign: indiegogo.com/projects/bonfire…


Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


Per ritornare ad avere un motore di ricerca che restituisce quello che realmente si cerca, senza AI, senza risultati sponsorizzati, senza manipolazione, c'è il meta-motore di ricerca open source SearXNG:

:opensource: searxng.devol.it

per installarlo su #Firefox, #Waterfox, #Librewolf c'è l'estensione dedicata:

<img class=" title=":firefox:"/> :librewolf: addons.mozilla.org/it/firefox/…

qua invece la guida a #SearXNG dei @devol:

:devol: newsletter.devol.it/guida-comp…

:lemmy: Pubblicato nel gruppo sicurezza: @sicurezza

in reply to quinta - Stefano Quintarelli

@quinta per assurdo le ricerche sono più precise quando chiedi al chatbot, se capisce la domanda.
Li la enshittification non è ancora arrivata.
Chissà.
Tra un po' prima ti dovrai leggere la pubblicità e poi ti darà la risposta....


Un server ActivityPub in un singolo file PHP? Ecco come fare... Il post di @tofeo

Qualsiasi programma per computer può essere progettato per essere eseguito da un singolo file, se la progettazione è abbastanza sbagliata! 🤣

Volevo creare il server #Fediverse più semplice possibile, che potesse essere utilizzato come strumento didattico per mostrare come funziona ActivityPub / Mastodon.

shkspr.mobi/blog/2024/02/activ…

@Che succede nel Fediverso?


ActivityPub Server in a Single PHP File


shkspr.mobi/blog/2024/02/activ…

Any computer program can be designed to run from a single file if you architect it wrong enough!

I wanted to create the simplest possible Fediverse server which can be used as an educational tool to show how ActivityPub / Mastodon works.

The design goals were:

  • Upload a single PHP file to the server.
  • No databases or separate config files.
  • Single Actor (i.e. not multi-user).
  • Allow the Actor to be followed.
  • Post plain-text messages to followers.
  • Be roughly standards compliant.

And those goals have all been met! Check it out on GitLab. I warn you though, it is the nadir of bad coding. There are no tests, bugger-all security, scalability isn't considered, and it is a mess. But it works.

You can follow the test user @[url=https://example.viii.fi/example]example@example.viii.fi[/url]

Architecture


Firstly, I've slightly cheated on my "single file" stipulation. There's an .htaccess file which turns example.com/whatever into example.com/index.php?path=whatever

The index.php file then takes that path and does stuff. It also contains all the configuration variables which is very bad practice.

Rather than using a database, it saves files to disk.

Again, this is not suitable for any real world use. This is an educational tool to help explain the basics of posting messages to the Fediverse. It requires absolutely no dependencies. You do not need to spin up a dockerised hypervisor to manage your node bundles and re-compile everything to WASM. Just FTP the file up to prod and you're done.

Walkthrough


This is a quick ramble through the code. It is reasonably well documented, I hope.

Preamble


This is where you set up your account's name and bio. You also need to provide a public/private keypair. The posting page is protected with a password that also needs to be set here.
PHP // Set up the Actor's information $username = rawurlencode("example"); // Encoded as it is often used as part of a URl $realName = "E. Xample. Jr."; $summary = "Some text about the user."; $server = $_SERVER["SERVER_NAME"]; // Domain name this is hosted on // Generate locally or from cryptotools.net/rsagen // Newlines must be replaced with "\n" $key_private = "-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----"; $key_public = "-----BEGIN PUBLIC KEY-----\n...\n-----END PUBLIC KEY-----"; // Password for sending messages $password = "P4ssW0rd";

Logging


ActivityPub is a "chatty" protocol. This takes all the requests your server receives and saves them in /logs/ as a datestamped text file.
PHP // Get all headers and requests sent to this server $headers = print_r( getallheaders(), true ); $postData = print_r( $_POST, true ); $getData = print_r( $_GET, true ); $filesData = print_r( $_FILES, true ); $body = json_decode( file_get_contents( "php://input" ), true ); $bodyData = print_r( $body, true ); $requestData = print_r( $_REQUEST, true ); $serverData = print_r( $_SERVER, true ); // Get the type of request - used in the log filename if ( isset( $body["type"] ) ) { $type = " " . $body["type"]; } else { $type = ""; } // Create a timestamp in ISO 8601 format for the filename $timestamp = date( "c" ); // Filename for the log $filename = "{$timestamp}{$type}.txt"; // Save headers and request data to the timestamped file in the logs directory if( ! is_dir( "logs" ) ) { mkdir( "logs"); } file_put_contents( "logs/{$filename}", "Headers: \n$headers \n\n" . "Body Data: \n$bodyData \n\n" . "POST Data: \n$postData \n\n" . "GET Data: \n$getData \n\n" . "Files Data: \n$filesData \n\n" . "Request Data:\n$requestData\n\n" . "Server Data: \n$serverData \n\n" );

Routing


The .htaccess changes /whatever to /?path=whateverThis runs the function of the path requested.
PHP !empty( $_GET["path"] ) ? $path = $_GET["path"] : die(); switch ($path) { case ".well-known/webfinger": webfinger(); case rawurldecode( $username ): username(); case "following": following(); case "followers": followers(); case "inbox": inbox(); case "write": write(); case "send": send(); default: die(); }

WebFinger


The WebFinger Protocol is used to identify accounts.It is requested with example.com/.well-known/webfinger?resource=acct:username@example.comThis server only has one user, so it ignores the query string and always returns the same details.
PHP function webfinger() { global $username, $server; $webfinger = array( "subject" => "acct:{$username}@{$server}", "links" => array( array( "rel" => "self", "type" => "application/activity+json", "href" => "https://{$server}/{$username}" ) ) ); header( "Content-Type: application/json" ); echo json_encode( $webfinger ); die(); }

Username


Requesting example.com/username returns a JSON document with the user's information.
PHP function username() { global $username, $realName, $summary, $server, $key_public; $user = array( "@context" => [ "https://www.w3.org/ns/activitystreams", "https://w3id.org/security/v1" ], "id" => "https://{$server}/{$username}", "type" => "Person", "following" => "https://{$server}/following", "followers" => "https://{$server}/followers", "inbox" => "https://{$server}/inbox", "preferredUsername" => rawurldecode($username), "name" => "{$realName}", "summary" => "{$summary}", "url" => "https://{$server}", "manuallyApprovesFollowers" => true, "discoverable" => true, "published" => "2024-02-12T11:51:00Z", "icon" => [ "type" => "Image", "mediaType" => "image/png", "url" => "https://{$server}/icon.png" ], "publicKey" => [ "id" => "https://{$server}/{$username}#main-key", "owner" => "https://{$server}/{$username}", "publicKeyPem" => $key_public ] ); header( "Content-Type: application/activity+json" ); echo json_encode( $user ); die(); }

Following & Followers


These JSON documents show how many users are following / followers-of this account.The information here is self-attested. So you can lie and use any number you want.
PHPfunction following() { global $server; $following = array( "@context" => "https://www.w3.org/ns/activitystreams", "id" => "https://{$server}/following", "type" => "Collection", "totalItems" => 0, "items" => [] ); header( "Content-Type: application/activity+json" ); echo json_encode( $following ); die(); } function followers() { global $server; $followers = array( "@context" => "https://www.w3.org/ns/activitystreams", "id" => "https://{$server}/followers", "type" => "Collection", "totalItems" => 0, "items" => [] ); header( "Content-Type: application/activity+json" ); echo json_encode( $followers ); die(); }

Inbox


The /inbox is the main server. It receives all requests. This server only responds to "Follow" requests.A remote server sends a follow request which is a JSON file saying who they are.This code does not cryptographically validate the headers of the received message.The name of the remote user's server is saved to a file so that future messages can be delivered to it.An accept request is cryptographically signed and POST'd back to the remote server.
PHP function inbox() { global $body, $server, $username, $key_private; // Get the message and type $inbox_message = $body; $inbox_type = $inbox_message["type"]; // This inbox only responds to follow requests if ( "Follow" != $inbox_type ) { die(); } // Get the parameters $inbox_id = $inbox_message["id"]; $inbox_actor = $inbox_message["actor"]; $inbox_host = parse_url( $inbox_actor, PHP_URL_HOST ); // Does this account have any followers? if( file_exists( "followers.json" ) ) { $followers_file = file_get_contents( "followers.json" ); $followers_json = json_decode( $followers_file, true ); } else { $followers_json = array(); } // Add user to list. Don't care about duplicate users, server is what's important $followers_json[$inbox_host]["users"][] = $inbox_actor; // Save the new followers file file_put_contents( "followers.json", print_r( json_encode( $followers_json ), true ) ); // Response Message ID // This isn't used for anything important so could just be a random number $guid = uuid(); // Create the Accept message $message = [ "@context" => "https://www.w3.org/ns/activitystreams", "id" => "https://{$server}/{$guid}", "type" => "Accept", "actor" => "https://{$server}/{$username}", "object" => [ "@context" => "https://www.w3.org/ns/activitystreams", "id" => $inbox_id, "type" => $inbox_type, "actor" => $inbox_actor, "object" => "https://{$server}/{$username}", ] ]; // The Accept is sent to the server of the user who requested the follow // TODO: The path doesn't *always* end with/inbox $host = $inbox_host; $path = parse_url( $inbox_actor, PHP_URL_PATH ) . "/inbox"; // Get the signed headers $headers = generate_signed_headers( $message, $host, $path ); // Specify the URL of the remote server's inbox // TODO: The path doesn't *always* end with /inbox $remoteServerUrl = $inbox_actor . "/inbox"; // POST the message and header to the requester's inbox $ch = curl_init( $remoteServerUrl ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, "POST" ); curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode($message) ); curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers ); $response = curl_exec( $ch ); // Check for errors if( curl_errno( $ch ) ) { file_put_contents( "error.txt", curl_error( $ch ) ); } curl_close($ch); die(); }

UUID


Every message sent should have a unique ID. This can be anything you like. Some servers use a random number.I prefer a date-sortable string.
PHP function uuid() { return sprintf( "%08x-%04x-%04x-%04x-%012x", time(), mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0x3fff) | 0x8000, mt_rand(0, 0xffffffffffff) ); }

Signing Headers


Every message that your server sends needs to be cryptographically signed with your Private Key.This is a complicated process. Please read "How to make friends and verify requests" for more information.
PHP function generate_signed_headers( $message, $host, $path ) { global $server, $username, $key_private; // Encode the message to JSON $message_json = json_encode( $message ); // Location of the Public Key $keyId = "https://{$server}/{$username}#main-key"; // Generate signing variables $hash = hash( "sha256", $message_json, true ); $digest = base64_encode( $hash ); $date = date( "D, d M Y H:i:s \G\M\T" ); // Get the Private Key $signer = openssl_get_privatekey( $key_private ); // Sign the path, host, date, and digest $stringToSign = "(request-target): post $path\nhost: $host\ndate: $date\ndigest: SHA-256=$digest"; // The signing function returns the variable $signature // php.net/manual/en/function.ope… openssl_sign( $stringToSign, $signature, $signer, OPENSSL_ALGO_SHA256 ); // Encode the signature $signature_b64 = base64_encode( $signature ); // Full signature header $signature_header = 'keyId="' . $keyId . '",algorithm="rsa-sha256",headers="(request-target) host date digest",signature="' . $signature_b64 . '"'; // Header for POST reply $headers = array( "Host: {$host}", "Date: {$date}", "Digest: SHA-256={$digest}", "Signature: {$signature_header}", "Content-Type: application/activity+json", "Accept: application/activity+json", ); return $headers; }

User Interface for Writing


This creates a basic HTML form. Type in your message and your password. It then POSTs the data to the /send endpoint.
PHP function write() { // Display an HTML form for the user to enter a message.echo <<< HTML<![url=https://mastodon.social/users/doctype]Aleks Dorohovich[/url] html><html lang="en-GB"> <head> <meta charset="UTF-8"> <title>Send Message</title> <style> *{font-family:sans-serif;font-size:1.1em;} </style> </head> <body> <form action="/send" method="post" enctype="multipart/form-data"> <label for="content">Your message:</label><br> <textarea id="content" name="content" rows="5" cols="32"></textarea><br> <label for="password">Password</label><br> <input type="password" name="password" id="password" size="32"><br> <input type="submit" value="Post Message"> </form> </body></html>HTML; die(); }

Send Endpoint


This takes the submitted message and checks the password is correct.It reads the followers.json file and sends the message to every server that is following this account.
PHP function send() { global $password, $server, $username, $key_private; // Does the posted password match the stored password? if( $password != $_POST["password"] ) { die(); } // Get the posted content $content = $_POST["content"]; // Current time - ISO8601 $timestamp = date( "c" ); // Outgoing Message ID $guid = uuid(); // Construct the Note // contentMap is used to prevent unnecessary "translate this post" pop ups // hardcoded to English $note = [ "@context" => array( "https://www.w3.org/ns/activitystreams" ), "id" => "https://{$server}/posts/{$guid}.json", "type" => "Note", "published" => $timestamp, "attributedTo" => "https://{$server}/{$username}", "content" => $content, "contentMap" => ["en" => $content], "to" => ["https://www.w3.org/ns/activitystreams#Public"] ]; // Construct the Message $message = [ "@context" => "https://www.w3.org/ns/activitystreams", "id" => "https://{$server}/posts/{$guid}.json", "type" => "Create", "actor" => "https://{$server}/{$username}", "to" => [ "https://www.w3.org/ns/activitystreams#Public" ], "cc" => [ "https://{$server}/followers" ], "object" => $note ]; // Create the context for the permalink $note = [ "@context" => "https://www.w3.org/ns/activitystreams", ...$note ]; // Save the permalink $note_json = json_encode( $note ); // Check for posts/ directory and create it if( ! is_dir( "posts" ) ) { mkdir( "posts"); } file_put_contents( "posts/{$guid}.json", print_r( $note_json, true ) ); // Read existing users and get their hosts $followers_file = file_get_contents( "followers.json" ); $followers_json = json_decode( $followers_file, true ); $hosts = array_keys( $followers_json ); // Prepare to use the multiple cURL handle $mh = curl_multi_init(); // Loop through all the severs of the followers // Each server needs its own cURL handle // Each POST to an inbox needs to be signed separately foreach ( $hosts as $host ) { $path = "/inbox"; // Get the signed headers $headers = generate_signed_headers( $message, $host, $path ); // Specify the URL of the remote server $remoteServerUrl = "https://{$host}{$path}"; // POST the message and header to the requester's inbox $ch = curl_init( $remoteServerUrl ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, "POST" ); curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode($message) ); curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers ); // Add the handle to the multi-handle curl_multi_add_handle( $mh, $ch ); } // Execute the multi-handle do { $status = curl_multi_exec( $mh, $active ); if ( $active ) { curl_multi_select( $mh ); } } while ( $active && $status == CURLM_OK ); // Close the multi-handle curl_multi_close( $mh ); // Render the JSON so the user can see the POST has worked header( "Location: https://{$server}/posts/{$guid}.json" ); die(); }

Next Steps


This is not intended to be used in production. Ever. But if you would like to contribute more simple examples of how the protocol works, please come and play on GitLab.

You can follow the test user @[url=https://example.viii.fi/example]example@example.viii.fi[/url]

#activitypub #mastodon #php


reshared this


Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


Big tech thrives on division. Mastodon thrives with you.

Here, you’ll find local journalists 📰, libraries 📚, and grassroots movements, all sharing space on their own terms. Stand with us for a social web that amplifies voices, not outrage.

Support us to keep Mastodon community-powered. ​Donate #SupportMastodon

joinmastodon.org/sponsors#dona…

in reply to Mastodon

To be honest I have never figured out entirely that if I join one server and my friend joins another can we then find each others profiles as easy as just doing a sesrch for our names?
in reply to Mastodon

Is there a way to support you but NOT through US or US-based corporations (Patreon, GitHub, Stripe...)?

Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


Bonfire isn’t easy to pin down, and that’s the point! We seek to enable a tapestry of social spaces, all built from shared building blocks but diverging in flavour, practice, and purpose.

We gathered a whole collection of answers from across the fediverse:
👉 bonfirenetworks.org/posts/what…

Want to help shape what comes next? Support and share the crowdfunding to join install parties, co-design sessions, and more:
👉 indiegogo.com/projects/bonfire…

#Fediverse #Plurality #OpenSocialWeb #Community

Questa voce è stata modificata (2 mesi fa)
in reply to Moved to @bonfire@bonfire.cafe

@petersuber One of the "app flavours" also has its own website, since flavours aren't just apps but also intended to be projects that have autonomous governance: openscience.network/
in reply to Moved to @bonfire@bonfire.cafe

@petersuber but is there any content on that? It's still hard to understand what it's for, and I'm someone who is very favourable to all these keywords!

Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


We're happy to be in good company with other non-profits we admire, to work with WE AID to accept donations. blog.joinmastodon.org/2025/11/…
in reply to Mastodon

Which I’m sure will be used only for the most selfless purposes.

heise.de/news/Mastodon-Gruende…


Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


#UnplugTrump : 30 conseils pour se libérer numériquement de Trump et des GAFAM: kuketz-blog.de/unplugtrump-fre…

2 artistes allemandes se sont inspirés de la série #UnplugTrump pour composer une chanson punk rock impertinente: pekrieger.de/unplugtrump/
Écoutez-la, partagez-la et chantez-la 😀

#LogicielsLibres #NoGafam #Fediverse #PunkRock #Mastodon

@goofy
@casilli
@Framasoft
@eyssette
@cyrille
@alainmi11
@framaka
@Khrys
@kuketzblog
@Pe



Un anno nel Fediverso: la calma che ti cambia la testa. Il post di @Michela

E no, il Fediverso non è povero di contenuti.

È che, quando smetti di essere schiava degli algoritmi, ti accorgi che l’80% della roba mainstream è solo rumore dopaminico.
Rapido, inutile, martellante.

Su PixelFed, invece, quasi tutto merita almeno un rallentamento, uno sguardo vero.
È una sensazione precisa:
uscire da una distopia sociale senza neppure accorgersi di esserci vissuti dentro per anni.

michiyospace.altervista.org/un…

Per avere altri aggiornamenti sul Fediverso, segui il gruppo @Che succede nel Fediverso?

reshared this


Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


Continuano ad arrivare nuovi particolari rispetto all'origine del pianete che - tramite una terribile collisione con la Terra, quando era molto giovane - diede luogo alla nostra Luna. Pare accertato ora che Teiha, il pianeta che ci è spudoratamente venuto addosso, provenisse dalle regioni interne del Sistema Solare.

Meno male che il quadro che ho delineato nel libro E tu Luna pubblicato a maggio viene ulteriormente confermato!

Ho scritto di come si è formata la Luna, ma anche di come ci siamo arrivati. E della musica, dei film, che gli abbiamo dedicato. Perché la Luna non smette di attrarci, di incantarci. Lo farà sempre, fino alla fine.

media.inaf.it/2025/11/24/regio…

#etuluna #luna #libri #astrocaffe

in reply to Marco Castellani

> Meno male che il quadro che ho delineato nel libro E tu Luna pubblicato a maggio viene ulteriormente confermato!

@mcastel sarebbe stato spiacevole essere sbugiardati dopo qualche mese 🤣
Però, non ci si può far nulla, anche perché è quello che succede a quasi tutti gli scienziati prima o poi 😅

in reply to informapirata ⁂

@informapirata assolutamente! Ma in caso avrei mantenuto un nobile silenzio....
A parte gli scherzi, è così che va la scienza ed è giusto.

informapirata ⁂ reshared this.


Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


Announcing our Winter 2025 merch drop! Select from our new, smaller #plushtodon in two fresh colours; new mug designs to complete your set; or some sticker sheets (more of these, coming soon). All proceeds go towards supporting the project.

Accepting orders from the EU, Switzerland, Norway, UK, and the US.

shop.joinmastodon.org/collecti…


Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


Le piattaforme centralizzate piegano le conversazioni ai loro interessi.
Qui no.

#Mastodon rimette il controllo nelle tue mani.
Connessioni autentiche, comunità che decidono le proprie regole e una voce che non è in vendita.

Se vuoi un internet più libero, sicuro e indipendente, dai forza ai server, agli strumenti e alle comunità che rendono tutto questo possibile.

💛 Per Sostenere Mastodon.uno:
👉 liberapay.com/mastodonitalia

🌟 E seguici anche nel gruppo del fediverso italiano: @fediverso

Questa voce è stata modificata (2 mesi fa)
Unknown parent

chuckya - Collegamento all'originale
Altbot

Immagine di un disegno animato di un personaggio che sembra un cane con un binocolo e una palla galleggiante nello spazio.
Il personaggio è di colore marrone e sembra puntare un binocolo verso una palla verde brillante circondata da un anello e circondata da raggi di luce bianchi. Lo sfondo è blu scuro e contiene diversi pianeti rossi e blu. Il personaggio sembra essere posizionato in uno spazio vorticoso con forme nere curve che circondano il corpo. Non c'è testo nell'immagine.

Alt-text: Un personaggio di cane marrone con un binocolo guarda una palla verde circondata da un anello e raggi di luce in uno spazio blu scuro con pianeti rossi e blu. Il personaggio si trova in un ambiente vorticoso con forme nere curve. L'immagine è un cartone animato. Non c'è testo visibile nell'immagine.

Fornito da @altbot, generato localmente e privatamente utilizzando Gemma3:27b

🌱 Energia utilizzata: 0.149 Wh


Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


Centralised platforms shape the conversation to serve their interests.

Mastodon returns power to you. Here connections are authentic, communities set their own rules, and your voice isn’t for sale.

Help to power the servers, tools, and communities making Mastodon a safe, independent home for free expression. ​

Donate #SupportMastodon

joinmastodon.org/sponsors#dona…

Questa voce è stata modificata (2 mesi fa)
in reply to el Celio 🇪🇺 🇺🇦

@elCelio
I know. That's the actual point of my message 😀
Their behaviour is not okay, and there's no good reason for it.

Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


Come ogni anno Framasoft lancia la sua campagna di autofinanziamento:

framablog.org/2025/11/18/renfo…
chiedendo il nostro aiuto ed elencando i nuovi servizi liberi (date un'occhiata a Framatoolbox!) e i miglioramenti a quelli già esistenti realizzati durante l'anno.

Nell'ALT dell'immagine la traduzione italiana dell'incipit dell'articolo

#Framasoft #SoftwareLibero #BeniComuni #AlternativeDigitali #condivisione

@maupao
@scuola
@informapirata
@lealternative
@opensource @devol
@Framasoft

in reply to nilocram

È stato facile, serviva la traduzione solo della pagina di presentazione del servizio. Il resto era già tradotto
@scuola @informapirata @lealternative @opensource @devol @Framasoft

reshared this

in reply to maupao

Ho visto che la pagina di Omnitools (omnitools.framatoolbox.org/) è in diverse lingue ma non in italiano, possiamo dare un'occhiata?

Per la traduzione usano un programma che non ho mai sentito nominare:locize.app/register
#traduzioni #Framasoft

reshared this


Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


This is “The Mork & Mindy House” that was used in the 70’s comedy that launched Robin Williams’ career.

No visit to Boulder is complete without a walk past this icon. But the sign out front says that actual, living humans live there, so don’t be a jerk and let them live out their best na-noo na-noo’s in peace.


Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


We're building something for the Fediverse. #Holos

ActivityPub running on your phone. Your own server, your data stored locally. A relay handles your stable identity when you're offline.

One account, all formats. Short text, long articles, photos, videos. The UI adapts to your mood. Switch between text mode, photo grid, video feed, article editor based on what you feel like sharing.

Same network, same followers.

Early stages, but the foundation is solid. We wanted to share the progress.

in reply to Fedilab Apps

I think I get the reasoning behind the "Your own server" keywording for the client, but I'm curious about why you use "relay" here? Relay has a pretty well understood meaning in the fediverse that is definitely not understood as an identity provider.
I am very interested to see this project though.
in reply to ygg

@emergencygg
Fair point! "Relay" in the Fediverse usually means redistributing public posts.

Ours is more like: identity provider, proxy and message queue. It relays traffic between the Fediverse and your phone, but you're right... might be confusing terminology.

@ygg
in reply to Fedilab Apps

Very exciting, will look forward to follow development updates at @HolosSocial.

This could dramatically lower the bar for owning your data, and for "self hosting" right in your pocket. It also raises the question of how end user friendly the relay server will be.

Are we talking a one-click install on commodity servers à la Wordpress, or something more involved like using Docker on a VPS? That will make a big difference in audience and adoption.


Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


My #ActivityPub developer guide moved to another repository: codeberg.org/silverpill/ap-nex…

It started as a FEP, but has evolved into something bigger.

About the repository:

As stated in the readme, ActivityPub Next is a project dedicated to evolving the ActivityPub protocol.

Currently it only contains the developer guide, but I think that more content will be added over time.


Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


Today marks a significant moment in the life of the Fediverse. Leadership of Mastodon is transitioning from Eugen Rochko @Gargron to Felix Hlatky @mellifluousbox who steps into the role of Executive Director.

Eugen’s contribution to the web cannot be overstated. His vision, persistence, and commitment built the foundation so many of us now stand on — including thousands of independent communities committed to better social spaces.

in reply to IFTAS

Passing that responsibility on is never easy, and it speaks to Eugen's trust in the future of this movement.

I’ve known Felix for some time. We’ve sat together, talked at length, and I’ve always been struck by his thoughtful, principled approach. His belief in non-profit models, in strong trust and safety foundations, and in community-led governance is exactly what this moment calls for.

IFTAS looks forward to working alongside him and the Mastodon team as this next chapter begins.

in reply to IFTAS

IFTAS remains focussed on supporting the volunteers, moderators, community managers and admins who make the Fediverse possible.

This transition is not a change of direction, but is a moment of renewed alignment, one where the infrastructure, culture, and values of decentralised social can continue to grow with care, transparency, and accountability.

To the Fediverse: messy, resilient, decentralised, and ours. May it always remain a place shaped by the people who care enough to show up.


Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


Hey everyone, we have some pretty big news to share. You might remember that we announced a big restructuring for the Mastodon team earlier this year. Today marks an important milestone in this transition.

#Mastodon #Fediverse #SocialWeb

in reply to Mastodon

Our Founder, @Gargron is stepping down from his position as CEO. He shared a reflection on his time building and growing Mastodon on our blog.

We want to take a moment to express the Mastodon team’s deep gratitude and admiration for Eugen, and for the technology and community he has built here. We’re thrilled he’s staying on in an advisory capacity.

blog.joinmastodon.org/2025/11/…

in reply to Mastodon

We’re also looking ahead to what comes next. In another blog post published today, we introduced Mastodon’s new leadership team. Our Executive Director is @mellifluousbox (formerly, CFO of Mastodon gGmbH), who has already represented Mastodon on international stages.

We also shared an organisational update, and a fundraising update, in that blog post.

blog.joinmastodon.org/2025/11/…

Questa voce è stata modificata (3 mesi fa)

reshared this

in reply to Mastodon

This important milestone also marks the beginning of a new era of community governance and collaborative decision-making for Mastodon. Now more than ever, we need to work together to build safe and resilient social spaces. We must build information networks that are resistant to billionaire control and surveillance. It will take all of us working together to do that.

So please consider joining our mission; we have a lot of work to do.

joinmastodon.org/sponsors#dona…

reshared this

in reply to Mastodon

What does this community governance look like? Is it purely "input" and is your "executive" pulling the strings or is the community the one that makes ultimate decisions on the direction the app is moderated and created? Is there a reformation of the values you want to create within the management of development you want to announce or is the direct control of the main contributors without listening to external feedback going to continue? There is whole articles written about criticism of your internal structures, and this addresses exactly 0 of them, now I hope that is because this announcement is sudden and unprepared but I won't hold my breath on that matter.
in reply to Mastodon

Donate so the CEO can grab 1 000 000 €?.... Yeah right...
in reply to Mastodon

I will donate to Mastodon development but I won't donate funds that are mingled in to run Mastodon.social.

Is there an option where donors can donate exclusively to the development side and those funds be used only for development. I've heard others offer the same sentiment.

@mellifluousbox

Questa voce è stata modificata (3 mesi fa)
in reply to Mastodon

Good morning, mastodontes!
@Mastodon @mellifluousbox

Can you tell me how I can suggest a #Mastodon app to the joinmastodon website?
Specifically, the #Raccoon app also works with Mastodon 🙏

play.google.com/store/apps/det…

in reply to informapirata ⁂

@informapirata @mellifluousbox If you don't find something else, you can try it with hello@joinmastodon.org (joinmastodon.org/de/about#cont…).
in reply to Mastodon

@Gargron The person who thinks they do not have the right personality to run a social media project, was probably the one with the most suitable personality. Thank you so much for building this community!
in reply to Mastodon

@Gargron Thank you for your year long effort in creating my daily news source and my safe haven from algorithms that fuel anger for profit 😁 Mastodon has grown to be such a wonderful place, it's now my only social media platform, and the only platform I would call social 😀 All that thanks to your giant effort among lots of other peoples effort. I'm looking forward to the next steps and hope you will find joy in your new live without this position 😀
in reply to Mastodon

@Gargron "I’ve always thought that one of the most important responsibilities I had was to say “no”."

And when it needed to be said, you said it with love and care and intention. Not a single one of us is perfect, but your personal ethics and integrity always shone through, and that's what builds trust.

Thank you 🙏

in reply to Mastodon

@Gargron

Oh it's sort of like Jimmy Wales leaving the Wikimedia Foundation. I hope @Gargron will still be around in the future.

in reply to Mastodon

Dear @Mastodon & @Gargron thank you for everything you've done for this world and me personally. ❤️

reshared this

in reply to Mastodon

@Gargron

Over an entire decade, these tiny things chip away at you slowly. Some things chip faster. I steer clear of showing vulnerability online, but there was a particularly bad interaction with a user last summer that made me realise that I need to take a step back and find a healthier relationship with the project, ultimately serving as the impetus to begin this restructuring process.


I gave up the CEO-ship of the company I founded 25 years ago.

Looking back, it was one of my better decisions for me and for the organization.

It is very difficult to explain the strain of such an exposed position to anyone who hasn't experienced it him/herself.

Gargron does a better job of explaining that strain than I could at the time.

in reply to Mastodon

@Gargron

It certainly was not the first effort to realize a decentralized social network, but it seems to have become the most successful effort so far and it's still evolving.

in reply to Mastodon

@Gargron
Thank you so much for everything! The world will always be in your debt.
in reply to Mastodon

@Gargron Thanks for everything you have done! Also, thanks for creating a vibrant decentralized social network whose existence has impacted the world for the better!

National leaders & CEO’s of conglomerates have taken notice of Mastodon, & have begun to embrace the Fediverse as a realistic alternative to social media.

Blessings & best of luck on your next journey Eugen!

in reply to Mastodon

@Gargron Thank you for this wonderful place and your hard work, Eugen!
in reply to Mastodon

Well done @Gargron for everything you've achieved in the last decade! Your principles set you far above certain others in the social media space and I really appreciate your integrity and drive. It's a good decision to change roles and I'm optimistic about the future of Mastodon with you still around for guidance. I hope you take this opportunity for some well-deserved rest and recreation.
in reply to Mastodon

Thank you very much @Gargron

You will remain a role model in terms of community project management. Take care of yourself.

🤗

in reply to Mastodon

@Gargron Thank you for your invention. I simply enjoy it and it broadens my horizons.
in reply to Mastodon

@Gargron thank you for all you’ve done and I applaud you on calling out founder egos ruining projects. We all know some recent examples we can point to *side eyes a few open source projects*
in reply to Mastodon

@Gargron thanks for starting this project years ago so future us had a place to go when Twitter imploded.
in reply to Mastodon

@Gargron As I've said many. many posts back, you, Eugene, were and still are a star on here. You have been more than a CEO, you're still a legend. A true legend in it's maximum riddim! Hope Mastodon and the entire fediverse (as I know it previously (ActivityPub, Diaspora, etc.)) wil thrive as always! Long live the fediverse, long live Mastodon, long live Eugen, and long live John! For ever and ever, amen.
in reply to Mastodon

Thank you @Gargron for all the amazing work that helped us get to where we are now 🥰

@Mastodon

in reply to Mastodon

@Gargron best of luck with your next chapter, Eugen. You've pulled off building one of the biggest things, without even doing it for the money, and at such a young age. Most of us - critics included - won't come any where near such an achievement however long we live for.

That's pretty big! 👍

in reply to Mastodon

@Gargron And by "express deep gratitude" you mean one million euros.

heise.de/news/Mastodon-Gruende…


Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


RE: mastodon.uno/@slowsurf/1155608…

Questa è l’ennesima conferma che istanze italofone ben curate sono l’ambiente ideale per farsi conoscere e crescere rapidamente: una cosa quasi impossibile sui mega-social da milioni di utenti come mastodon.social, dove si finisce dispersi nel rumore di fondo.

E soprattutto dimostra che la dimensione di #MastodonUno è ideale: né troppo grande da diventare dispersiva, né troppo piccola da risultare isolata ma una comunità viva dove ci si supporta e si cresce insieme nel @fediverso


in 20 giorni, solo cinque in più dall'ultimo traguardo segnato, ecco che siamo raddoppiati.

Sono davvero contento che la famiglia di @slowsurf 🐢 stia crescendo così rapidamente, contro ogni mia più rosea aspettative, è un segnale importante.

Sapevo che molti come me condivido preoccupazione su come viviamo il nostro rapporto quotidiano con la rete, e questi numeri lo dimostrano.

Domani condividerò una novità per festeggiare.

Nel frattempo grazie a tutti del supporto

@internet @filippodb


Questa voce è stata modificata (3 mesi fa)

Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


Meet @adrigen and Lee: Buy Nothing group admins co-designing our Mutual Aid Networks stretch goal. Their video and article reveal why gifting communities need more than "Facebook groups but federated", they need infrastructure built for proximity, self-governance, and generosity.

Blog post: bonfirenetworks.org/posts/gift…

Back the campaign to unlock it: indiegogo.com/projects/bonfire…

#crowdfunding #mutualaid #buynothing

Questa voce è stata modificata (3 mesi fa)
in reply to Moved to @bonfire@bonfire.cafe

Just stumbled over this while checking in on @kissane ..

Anything new on this whole front over there on your sides of the aisle?

Not a lot of time right now to check or update on your material but I'm still, after nearly 15 years in the fedi, considering that we need to onboard NGO's and news outlets to set up their own instances and onboard their people, contacts and clients. Like that's the only sound path forward I guess.
🤷‍♀️

@bonfire @adrigen


Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


We’re crowdfunding for maintenance first: the unsexy work funders usually don’t want to support. Our new post explains why care and maintenance are the foundation before we can unlock all the other stretch goals: bonfirenetworks.org/posts/matt…

We’re at 74%. Help us cross the finish line: indiegogo.com/projects/bonfire…

#crowdfunding #care

Questa voce è stata modificata (3 mesi fa)
in reply to Moved to @bonfire@bonfire.cafe

I haven’t gotten around to support you yet, but will. This line of reasoning is in my opinion excellent!

Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


RE: mastodon.social/@anewsocial/11…

We're very excited to work with @anewsocial on bridging Bonfire with ATproto/Bluesky, to enable connecting and migrating across networks!


Last week @Bonfire launched their first release and a fundraiser for their exciting roadmap 🔥

A part of that roadmap includes teaming up with us to bring Bridgy Fed and Bounce to Bonfire users!

Learn more about our partnership in our latest blog post: blog.anew.social/bonfire-a-new…



Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


🎉 100 backers! We're ~€8,000 away from our first goal of €30,000 for maintenance.

Campaign perks include a limited-run, hand screen-printed piece by Rocco Lombardi, the artist behind Bonfire's visual world. There's also a regular print for a lower price, available in more locations.

Rocco's work embodies what we care about: living worlds, connection, plurality. Our aesthetic embraces "contamination" and renewal: away from sterile platform design.

Claim yours: indiegogo.com/projects/bonfire…

Questa voce è stata modificata (3 mesi fa)

Poliverso - notizie dal Fediverso ⁂ ha ricondiviso questo.


RE: mastodon.social/@MastodonEngin…

The latest engineering (and whole team) update is here 👀


We've posted #TrunkAndTidbits for October.

It was a busy month, with a lot of coding behind the scenes to prepare for Mastodon 4.5, events and talks, Fediforum and our thoughts on packs, and some merch news. Have a read!

blog.joinmastodon.org/2025/11/…


in reply to Mastodon

i wish i had programming skills or a knack to learn fast. This it's a great project and I'm grateful for all those who particpate in the DoOarcy!