User avatar
polyproto federation protocol polyprototrans @polyproto@amazonawaws.com
polyproto A refreshingly simple, decentralised, federated protocol. No more losing friends, followers or messages if your old homeserver sunsets. Feel free to migrate to another homeserver at any time, even if your old homeserver has shut down ages ago.

🏳️‍⚧️ Trans rights are human rights. Be gay, do crime!

Posting here:
-ava: @star
Core Specification https://polyproto.org/docs/protocols/core?source=Fedi
Webbed Site https://polyproto.org?source=Fedi
Community Forum https://polyphony.zulipchat.com
Pinned notes
User avatar
polyproto federation protocol polyprototrans @polyproto@amazonawaws.com
1mo
In the footer of our website, one can now find a bonus fops for when times are tough! neofox_floof_happy
Latest notes
User avatar
polyproto federation protocol polyprototrans @polyproto@amazonawaws.com
2d
ready.chair6.net/?url=https://polyproto.org thingimajig says so neobot_fingerguns
User avatar
polyproto federation protocol polyprototrans @polyproto@amazonawaws.com
2d
ipv6 should now work on https://polyproto.org! neobot_salute strange that I forgot to add the AAAA record...
User avatar
polyproto federation protocol polyprototrans @polyproto@amazonawaws.com
2d
@jakehamilton awww, thank you neodog_floof_cute we try our best!

-
@star
User avatar
polyproto federation protocol polyprototrans @polyproto@amazonawaws.com
2d
@miawgogo oh no! neocat_drowsy I added AAAA records now, meaning the site should be accessible via IPv6 now! neofox_snug_owo
User avatar
polyproto federation protocol polyprototrans @polyproto@amazonawaws.com
2d
These same changes are now being integrated into sonata, our in-development polyproto-core home server. The new_left new and improved nix flake new_right and CI-workflow have already been merged and tested successfully, but some code still has to be updated and fixed after major refactorings being merged lately. Causing tests to fail compilation. neobot_orgasm_bsod
User avatar
polyproto federation protocol polyprototrans @polyproto@amazonawaws.com
2d
The default branch for sonata has been set from main to indev. This change has been made to highlight the activity on this branch, which has not been merged into main for a while, perhaps giving the impression that the repository is not seeing active commits. indev will be replaced by main as the standard branch again, once the in-development changes are stable enough to be merged into that branch. neobot_floof_happy
User avatar
polyproto federation protocol polyprototrans @polyproto@amazonawaws.com
4d
All has worked out. Personally, I didn't even notice downtime. :)
User avatar
polyproto federation protocol polyprototrans @polyproto@amazonawaws.com
4d
FYI: polyproto.org hasn't used Cloudflares' traffic proxying for months now. We only kept using them for DNS, because... spoons!
User avatar
polyproto federation protocol polyprototrans @polyproto@amazonawaws.com
4d
It... worked? yay! neobot_bongo_down
; <<>> DiG 9.18.44 <<>> @ns1.desec.io polyproto.org
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54304
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1400
; COOKIE: 6fa3d0cbee4333ea01000000699f28460472d94289799faf (good)
;; QUESTION SECTION:
;polyproto.org.                 IN      A

;; ANSWER SECTION:
polyproto.org.          3600    IN      A       185.187.152.7

;; Query time: 13 msec
;; SERVER: 2607:f740:e633:deec::2#53(ns1.desec.io) (UDP)
;; WHEN: Wed Feb 25 17:50:14 CET 2026
;; MSG SIZE  rcvd: 86
User avatar
polyproto federation protocol polyprototrans @polyproto@amazonawaws.com
4d
misskey_loading polyproto.org will have some downtime soon-ish, while I transfer the domain from Cloudflare to Porkbun, and transition nameservers from Cloudflare to desec.io.
User avatar
polyproto federation protocol polyprototrans @polyproto@amazonawaws.com
4d
Right after releasing v0.17.1 of the polyproto Rust SDK yesterday, I went ahead and integrated it into our in-progress polyproto home server. Lots still needs to be done there to make it actually usable, even in an early alpha phase, but this is good progress! blobcatfingerguns polyprototrans
User avatar
polyproto federation protocol polyprototrans @polyproto@amazonawaws.com
6d
Release done! codeberg.org/polyphony/polyproto-rs/releases/tag/v0.17.1 ablobcatmusic
User avatar
polyproto federation protocol polyprototrans @polyproto@amazonawaws.com
6d
@creaturr Yayyy!!
User avatar
polyproto federation protocol polyprototrans @polyproto@amazonawaws.com
6d
aw man that neobot head is now wireless

i tried :3
User avatar
polyproto federation protocol polyprototrans @polyproto@amazonawaws.com
6d
A very large refactor was just merged into the polyproto Rust SDK crate! Work on this commenced on Jan. 31st and includes over 40 commits, which were squashed down to 10 commits in the end. neobot_melt_3

74 files were changed, +3189 lines added and -3646 lines removed (457 lines less, in the end).

Why is this cool?

Well, first of all, finishing off on something you've worked on for almost a month is always cool!
blobcat_amused ​:neobot_stretch_down:​
neobot_stretch_rightneobot_stretch_hneobot_stretch_hneobot_stretch_dl
But also, the reason for this refactor were developer UX issues I have noticed while working on the polyproto-core home server "sonata". I noticed, that the crate was written in such a way, that finding out whether any specific certificate was an actor ID-Cert, a home server ID-Cert, or just a plain invalid certificate required a
lot of additional work on the developers' end. What this refactor did, is essentially remove generic "ID-Certs" from the library in favor of two new, more specialized/focused types: "IdCertActor" and "IdCertHs", representing actor and home server certificates respectively. Now, if you are coding and have a IdCertActor metaphorically in front of you, you can be sure, that that ID-Cert has all the specified criteria that an ID-Cert for an actor has to meet, as per the specification.

codeberg.org/polyphony/polyproto-rs/pulls/95
User avatar
polyproto federation protocol polyprototrans @polyproto@amazonawaws.com
1w
mini-update:
Lots of things to do, and lots of things done! In the last days, I have worked a bit on data models for the chat-API, resolved some merge conflicts and cleaned up the polyproto-rs crate for an upcoming release with a much nicer API for developers, and reached out to the Fluxer community after
@alexia has already established contact and been doing lots of groundwork in trying to get developers together (thank you very much, Alexia!). I have also been looking at some PRs—some of which I haven't yet managed to review. Please be patient; an exhausted ava will get to them soon!
-
@star
User avatar
polyproto federation protocol polyprototrans @polyproto@amazonawaws.com
1w
codeberg.org/polyphony/typespec-openapi/commit/5a0a8e04ac4d9fdf88ca236d52f733435f6d3425?style=split
User avatar
polyproto federation protocol polyprototrans @polyproto@amazonawaws.com
1w
@star The draft will be just that: A draft. As with everything we do, we will most gladly accept feedback, constructive criticism and contributions, and we would love to collaborate with more developers to integrate lots of exciting projects into one, shared ecosystem that just works™️
User avatar
polyproto federation protocol polyprototrans @polyproto@amazonawaws.com
1w
will start drafting more polyproto-chat HTTP API design soon
-ava (
@star)
User avatar
polyproto federation protocol polyprototrans @polyproto@amazonawaws.com
2w
Merged: nix flake outputs, better CI, automated formatting!

Why is this cool? blobcateyes

This pull request streamlines how we do automated building, checking, and formatting of our repository. Before this PR, this functionality either didn't exist or was mildly hacky/janky inside the project. Having these automated checks is important to make sure a proposed change won't break the entire project. Without them, maintainers would have to manually verify each PR, which takes time.
blobcatflop

Also, previously, if a developer wanted to contribute, they'd have to manually install a whole suite of dependencies and run a gauntlet of commands to test their changes, like so:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
\. "$HOME/.nvm/nvm.sh"
nvm install 24
npm install -g @typespec/compiler
tsp install
npx prettier --write "**/*.{json,yaml,md}"
npx markdownlint "**/*.md"
tsp format "**/*.tsp"
tsp compile ./polyproto/core --dry-run
tsp compile ./polyproto/chat --dry-run
tsp compile .



neocat_0_0 That's a lot of friction and stuff to remember just to fix a typo or add a field! Ideally, the setup should be as simple as possible, so people don't get overwhelmed if they'd like to contribute.

Now, post-merge, the development environment is reproducible. In practice, this means, that you don't need to worry about having the wrong Node version or missing a formatter. When using the reproducible environment, you're using the same versions of everything as the maintainers are.

The entire formatting, testing and building workflow has been simplified to just three commands
neocat_science
# Format everything (TypeSpec, Markdown, JSON, YAML)
nix fmt
# Check if everything is correct without modifying files
nix flake check
# Build all the specifications
nix build



As you can tell, this is much cleaner, and it should make it easier for contributors to work on the project without fighting their local setup first.
blobcatfingerguns

I hope you enjoyed reading this overview!
blobcat_amused