jrollans.com is a Fediverse instance that uses the ActivityPub protocol. In other words, users at this host can communicate with people that use software like Mastodon, Pleroma, Friendica, etc. all around the world.
This server runs the snac software and there is no automatic sign-up process.
In the docs i can't find anyhing about it.
I ran into some weird behaviour of the combination #snac with the official Mastodon app on #iPhone. See attached pic.
The log of my #HAproxy shows
May 12 09:50:20 localhost haproxy[56626]: 46.23.94.142:65241 [12/May/2025:09:50:20.039] FE-https~ BE-social.freebsd.amsterdam/social.freebsd.amsterdam 0/0/0/366/367 200 658007 - - ---- 2/2/0/0/0 0/0 "GET https://social.freebsd.amsterdam/api/v1/timelines/home?limit=100 HTTP/2.0"
If you find #snac useful, please consider buying grunfink a coffee or contributing via LiberaPay.
The last #snac release fixes a problem with the Mastodon API. Now, apps (or webapps like Phanpy) properly work as the "inifite scrolling" has been fixed.Thanks, Stefano. To be fair, the merit for this fix goes to @cheeaun@mastodon.social (Phanpy's author), who brought to my attention where the problem was.
The last #snac release fixes a problem with the Mastodon API. Now, apps (or webapps like Phanpy) properly work as the "inifite scrolling" has been fixed.
Thanks, @grunfink - this was one thing that kept some of my friends away from self-hosting with snac, and now I can help them to have their own digital home.
Messo su oggi perchè da tanto volevo provarlo e #Snac mi sta piacendo troppo. Al momento Gts resta assolutamente su ed a prescindere da cosa farò lo terrò su il tempo necessario a tutti per spostarsi, ma mi sta balenando l'idea di trasclocare definitivamente.
Nei prossimi giorni ci ragiono!
xs
code is specially crafted to parse the JSON files in use in the ActivityPub protocol, which are a) mostly small, and b) they have very few numbers, so the string to double conversion happens almost never.Regarding the enum numbers: they are surely arbitrary, but the rationale there is that they are all ASCII control codes (so: less than 32) that should never happen in a JSON file (and, if they occasionally appear, they are converted to their Unicode representations). The correspondence is:
XS_TYPE_STRING 0x02 ASCII: STX (start of text)So, yes, they are arbitrary, but make some fucking sense, or at least a little bit.
XS_TYPE_TRUE 0x06 ASCII: ACK (acknowledge)
XS_TYPE_FALSE 0x15 ASCII: NAK (negative ack.)
XS_TYPE_LIST 0x1d ASCII: GS (group separator)
XS_TYPE_LITEM 0x1f US (unit separator)
XS_TYPE_DICT 0x1c ASCII: FS (file separator)
Hopefully Phanpy works better now for folks on #snac . Took me some time to investigate this issue https://codeberg.org/grunfink/snac2/issues/164#issuecomment-4415162 , found that `Access-Control-Expose-Headers: Link` header is needed for `Link` header to be read by the browser's `fetch`, used by Masto.js to paginate requests 🙇♂️
Related issue: https://github.com/cheeaun/phanpy/issues/1042
I submitted a Pull Request to update MacPorts' snac to 2.76 here:
https://github.com/macports/macports-ports/pull/28373
GitHub Actions Continuous Integration checks passed!
It's up to someone else with write access to merge it.
Thanks to you and dandelions and shtrophic (and anyone else I may have missed) for the continued contributions and improvements!
(these modest diffs were prepared in part while listening to "Garlic Braid" by LMNO & D-STYLES: https://d-styles.bandcamp.com/track/garlic-braid [the 1st single from the upcoming full length album: Three Mimes & an Elephant)
#snac #MacPorts #OpenSource #ActivityPub #Mastodon #NoDatabaseNeeded
#NoJavaScript #NoCookiesEither #NotMuchBullShit #snacAnnounces
https://comam.es/snac-doc/snac.1.html#Implementing_post_bots
Turns out I was using my own script ( https://n4no.org/tools ) but that was on my now dead Mastodon instance. 🤦🏻♂️
Also #snac does not support access tokens apparently which makes it much more difficult to just script posts from a remote machine (previously jsut one curl request with vanilla Mastodon). It’s easy to post from the snac server itself as it has commands to post but not via a remote request.
Added Webmention support for links (Markdown-style or direct) written in a post.
Added new command-line options for list maintenance.
Display custom emoji in more places (contributed by dandelions).
Mastodon API: fixed infinite scroll in many clients (thanks to cheeaun for giving me the clue), added /api/v1/accounts/.../lists
endpoint (contributed by dandelions).
Email notifications can now be sent via libcurl
SMTP instead of spawning the /usr/sbin/sendmail
program. To use this new feature, some additional server configuration is needed, see snac(8)
(contributed by shtrophic).
If you find #snac useful, please consider buying grunfink a coffee or contributing via LiberaPay.
So small, so perfect. Plain C.
It streams your feed. You press enter once to write post and again to send. See post above.
https://github.com/taka-tuos/nanotodon
Perfect companion for #snac by @grunfink@comam.es
edit: most of my posts are missing. I thought they were there after the move, but maybe it was just browser cache? I'll have to hook up the old drive to my laptop and see if I can resync
I don't know how many web sites out there implement Webmention (I guess very few), but given that it has been very simple to implement, here it is.
Long live the non-big-tech Internet.
Notifications are now shown in a more compact way (i.e. all reactions are shown just above your post, instead of repeating the post ad nauseam for every reaction).
New command-line option unmute
to, well, no-longer-mute an actor.
The private timeline now includes an approximate mark between new posts and "already seen" ones.
Fixed a spurious 404 error in the instance root URL for some configurations.
If you find #snac useful, please consider contributing via LiberaPay: https://liberapay.com/grunfink/
This release has been inspired by the song The Answers to the Questions by #Christabell and #DavidLynch.
https://it-notes.dragas.net/2025/01/29/improving-snac-performance-with-nginx-proxy-cache/
Added a new user option to collapse top level threads by default.
Added a new disable_block_notifications
boolean field to server.json
to disable the notifications of Block activities.
Added a new strict_public_timelines
boolean field to server.json
to only show an account's posts and boosts (no trees) in public timelines.
Fixed repeated images in posts from some implementations (those that include an image both as an attachment and as an <img>
tag inside the post content).
Added a small HTML/CSS tweak to improve post previews from some implementations (contributed by nyanide).
Notifications for EmojiReact
activities now show the emoji.
New command-line action insert
, to insert a post by its URL in a user's timeline.
Fixed bad processing/rendering of URLs with two or more @ symbols.
If you find #snac useful, please consider contributing via LiberaPay: https://liberapay.com/grunfink/donate
This release has been inspired by the song Subways Of Your Mind by #FEX.
Support for custom Emojis has been added; they are no longer hardcoded, but read from the emojis.json
file at the server base directory. Also, they are no longer limited to string substitutions, but images as external URLs are also supported (see snac(8)
for more information).
Fixed a bug that caused some notifications to be lost when coming from a user in the same instance.
Added an additional check for blocked instances (sometimes, posts from blocked sites that were ancestors of legit posts were 'leaking' into the timeline).
On OpenBSD, if the disable_email_notifications
server flag is set to true
, unveil()
is not called for the execution of the /usr/sbin/sendmail
binary and pledge()
doesn't set the exec
promise.
If you find #snac useful, please consider buying grunfink a coffee: https://ko-fi.com/grunfink
This release has been inspired by the album Eternal Embers by #Meltt.
Support for custom Emojis has been added; they are no longer hardcoded, but read from the emojis.json
file at the server base directory. Also, they are no longer limited to string substitutions, but images as external URLs are also supported (see snac(8)
for more information).
Fixed a bug that caused some notifications to be lost when coming from a user in the same instance.
Added an additional check for blocked instances (sometimes, posts from blocked sites that were ancestors of legit posts were 'leaking' into the timeline).
On OpenBSD, if the disable_email_notifications
server flag is set to true
, unveil()
is not called for the execution of the /usr/sbin/sendmail
binary and pledge()
doesn't set the exec
promise.
If you find #snac useful, please consider buying grunfink a coffee: https://ko-fi.com/grunfink
This release has been inspired by the album Eternal Embers by #Meltt.
Incoming posts can now be filtered out by content using regular expressions on a server level (these regexes are written in the filter_reject.txt
file at the server base directory; see snac(5)
and snac(8)
).
Improved page position after hitting the Hide
or MUTE
buttons (for most cases).
Use a shorter maximum conversation thread level (also, this maximum value is now configurable at compilation level with the MAX_CONVERSATION_LEVELS
define).
Fixed a bug where editing a post made the attached media or video to be lost.
The way of refreshing remote actor data has been improved.
Posting from the command-line now allows attachments.
Added defines for time to enable MacOS builds (contributed by andypiper).
If you find #snac useful, please consider buying grunfink a coffee: https://ko-fi.com/grunfink
This release has been inspired by the song The Raven by #CarolineLavelle.
Incoming posts can now be filtered out by content using regular expressions on a server level (these regexes are written in the filter_reject.txt
file at the server base directory; see snac(5)
and snac(8)
).
Improved page position after hitting the Hide
or MUTE
buttons (for most cases).
Use a shorter maximum conversation thread level (also, this maximum value is now configurable at compilation level with the MAX_CONVERSATION_LEVELS
define).
Fixed a bug where editing a post made the attached media or video to be lost.
The way of refreshing remote actor data has been improved.
Posting from the command-line now allows attachments.
Added defines for time to enable MacOS builds (contributed by andypiper).
If you find #snac useful, please consider buying grunfink a coffee: https://ko-fi.com/grunfink
This release has been inspired by the song The Raven by #CarolineLavelle.