I announce the release of version 2.77 of <a href="/tags/snac/" rel="tag">#snac</a>, the simple, minimalistic <a href="/tags/activitypub/" rel="tag">#ActivityPub</a> instance server written in C. It just reverts a feature included in previous version; links in posts were also included as attachments, but, while harmless and on spec, it made posts look ugly in some platforms, and what the world doesn't need is more ugly things.<br><br><a href="https://comam.es/what-is-snac" rel="nofollow"><span class="invisible">https://</span>comam.es/what-is-snac</a><br><br>If you find <a href="/tags/snac/" rel="tag">#snac</a> useful, please consider <a href="https://ko-fi.com/grunfink" rel="nofollow">buying grunfink a coffee</a> or contributing via <a href="https://liberapay.com/grunfink/" rel="nofollow">LiberaPay</a>.<br><br><a href="/tags/snacannounces/" rel="tag">#snacAnnounces</a> <a href="/tags/frugalfediverse/" rel="tag">#FrugalFediverse</a><br><br>
frugalfediverse
I'm glad to announce the release of version 2.78 of <a href="/tags/snac/" rel="tag">#snac</a>, the simple, minimalistic <a href="/tags/activitypub/" rel="tag">#ActivityPub</a> instance server written in C. It includes the following changes:<br><br>Hashtag following also allow URLs to RSS feeds of ActivityPub objects (like e.g. <a href="https://mastodon.social/tags/ThankYouTuesday" rel="nofollow" class="ellipsis" title="mastodon.social/tags/ThankYouTuesday"><span class="invisible">https://</span><span class="ellipsis">mastodon.social/tags/ThankYouT</span><span class="invisible">uesday</span></a>).<br><br>Users can now configure a webhook to receive an HTTP POST for every notification. This can be useful for implementing bots that react to activities, like autorepliers, chatbots or interactive textual games (see snac(1) for more information).<br><br>The number of pending follow confirmations is shown next to the "people" link.<br><br>Faster performance metrics (contributed by dandelions).<br><br>Improved lowercasing in hashtags (contributed by postscriptum).<br><br>A search-by-url tweak for implementations that return 200 for invalid webfinger queries (e.g. piefed).<br><br>Mastodon API: added follow confirmation endpoints, fixed collisions in attachment file names.<br><br>Fixed potential crashes in attachment uploads.<br><br><a href="https://comam.es/what-is-snac" rel="nofollow"><span class="invisible">https://</span>comam.es/what-is-snac</a><br><br>If you find <a href="/tags/snac/" rel="tag">#snac</a> useful, please consider <a href="https://ko-fi.com/grunfink" rel="nofollow">buying grunfink a coffee</a> or contributing via <a href="https://liberapay.com/grunfink/" rel="nofollow">LiberaPay</a>.<br><br><a href="/tags/snacannounces/" rel="tag">#snacAnnounces</a> <a href="/tags/frugalfediverse/" rel="tag">#FrugalFediverse</a><br><br>
I've just published version 2.79 of <a href="/tags/snac/" rel="tag">#snac</a>, the simple, minimalistic <a href="/tags/activitypub/" rel="tag">#ActivityPub</a> instance server written in C. It includes the following changes:<br><br>Added a server-wide Webmention hook; this way, if somebody out there (that supports Webmention) links to a user or post in this instance, a notification is sent (this is the complementary of what was implemented in version 2.76).<br><br>Fixed regression while sending email via pipe on OpenBSD.<br><br>Fixed Markdown parsing when the URL has parenthesis.<br><br>Always show the 'pending follow confirmations' section if there are any (even if the toggle is off).<br><br>If a metadata value is an account handler, it's also tried to be validated (rel="me" links).<br><br>Another search by URL tweak (this time for Pixelfed links).<br><br>Mastodon API: fixed a bug that made some boosts disappear after being shown in apps like Tusky, added followed hashtags maintenance, other minor changes.<br><br>Renamed command-line actions create_list to list_create and delete_list to list_remove.<br><br>The default favicon URL can be changed from the server configuration.<br><br>New command-line option export_posts, to export all posts by a user in a JSON format compatible with the one generated by Mastodon.<br><br>The command-line options to send notes also allow an optional -r argument, to set the URL of a Fediverse post this note is a reply to.<br><br><a href="https://comam.es/what-is-snac" rel="nofollow"><span class="invisible">https://</span>comam.es/what-is-snac</a><br><br>If you find <a href="/tags/snac/" rel="tag">#snac</a> useful, please consider <a href="https://ko-fi.com/grunfink" rel="nofollow">buying grunfink a coffee</a> or contributing via <a href="https://liberapay.com/grunfink/" rel="nofollow">LiberaPay</a>.<br><br><a href="/tags/snacannounces/" rel="tag">#snacAnnounces</a> <a href="/tags/frugalfediverse/" rel="tag">#FrugalFediverse</a><br><br>
I've just published version version 2.80 of <a href="/tags/snac/" rel="tag">#snac</a>, the simple, minimalistic <a href="/tags/activitypub/" rel="tag">#ActivityPub</a> instance server written in C. It only includes one bugfix; if you use the Mastodon API, you may be interested in upgrading:<br><br>Mastodon API: fixed a regression (introduced in previous version in the "boosts disappear in Tusky" fix) that interrupted timelines.<br><br><a href="https://comam.es/what-is-snac" rel="nofollow"><span class="invisible">https://</span>comam.es/what-is-snac</a><br><br>If you find <a href="/tags/snac/" rel="tag">#snac</a> useful, please consider <a href="https://ko-fi.com/grunfink" rel="nofollow">buying grunfink a coffee</a> or contributing via <a href="https://liberapay.com/grunfink/" rel="nofollow">LiberaPay</a>.<br><br><a href="/tags/snacannounces/" rel="tag">#snacAnnounces</a> <a href="/tags/frugalfediverse/" rel="tag">#FrugalFediverse</a><br><br>
I've just published version 2.85 of <a href="/tags/snac/" rel="tag">#snac</a>, the simple, minimalistic <a href="/tags/activitypub/" rel="tag">#ActivityPub</a> instance server written in C. It includes the following changes:<br><br>Quoted posts are now shown.<br><br>Added metadata to remote users in the people page (contributed by dandelions).<br><br>Fixed memory leak (contributed by dandelions).<br><br>Fixed user matching (contributed by rakoo).<br><br>Rendering visibility conditionally, with lesser reach if needed (contributed by byte).<br><br>Added a button next to a follow notification to follow back.<br><br>Fixed typo in man page (contributed by spky).<br><br>Updated Czech and German translations (contributed by pmjv and zen).<br><br><a href="https://comam.es/what-is-snac" rel="nofollow"><span class="invisible">https://</span>comam.es/what-is-snac</a><br><br>If you find <a href="/tags/snac/" rel="tag">#snac</a> useful, please consider <a href="https://ko-fi.com/grunfink" rel="nofollow">buying grunfink a coffee</a> or contributing via <a href="https://liberapay.com/grunfink/" rel="nofollow">LiberaPay</a>.<br><br><a href="/tags/snacannounces/" rel="tag">#snacAnnounces</a> <a href="/tags/frugalfediverse/" rel="tag">#FrugalFediverse</a><br><br>
I'm glad to announce the release of version 2.81 of <a href="/tags/snac/" rel="tag">#snac</a>, the simple, minimalistic <a href="/tags/activitypub/" rel="tag">#ActivityPub</a> instance server written in C. It includes the following changes:<br><br>If the propagate_local_purge configuration variable is set to true in server.json, purged local posts generate a Delete activity that is sent everywhere, instead of only deleted from the filesystem.<br><br>Included a small tweak to avoid being confused by implementations that return valid webfinger queries for non-account URLs (like i.e. the Wordpress ActivityPub plugin in some configurations). This helps in searching by URL.<br><br>Added Ukrainian translation (contributed by wincentbalin).<br><br>New command-line option muted, to list all MUTEd actors.<br><br>Mastodon API: Fixed metadata and follower approval flag when editing the account.<br><br><a href="https://comam.es/what-is-snac" rel="nofollow"><span class="invisible">https://</span>comam.es/what-is-snac</a><br><br>If you find <a href="/tags/snac/" rel="tag">#snac</a> useful, please consider <a href="https://ko-fi.com/grunfink" rel="nofollow">buying grunfink a coffee</a> or contributing via <a href="https://liberapay.com/grunfink/" rel="nofollow">LiberaPay</a>.<br><br><a href="/tags/snacannounces/" rel="tag">#snacAnnounces</a> <a href="/tags/frugalfediverse/" rel="tag">#FrugalFediverse</a><br><br>
I've just updated my <a href="/tags/snac/" rel="tag">#Snac</a> instance to version 2.81 👍 🎉<br>You don't know Snac? But you should: <a href="https://codeberg.org/grunfink/snac2" rel="nofollow"><span class="invisible">https://</span>codeberg.org/grunfink/snac2</a><br>A simple, minimalistic and well documented <a href="/tags/activitypub/" rel="tag">#ActivityPub</a> instance server written in C, no database needed, totally JavaScript-free, no cookies either, not much bullshit.<br><br><a href="/tags/snac2/" rel="tag">#snac2</a> <a href="/tags/fediverse/" rel="tag">#fediverse</a> <a href="/tags/frugalfediverse/" rel="tag">#frugalfediverse</a><br>
I've just published version 2.82 of <a href="/tags/snac/" rel="tag">#snac</a>, the simple, minimalistic <a href="/tags/activitypub/" rel="tag">#ActivityPub</a> instance server written in C. It includes the following changes:<br><br>The language in which a post is written can now be set from the UI; you must configure the list of languages you usually post in in the User Settings.<br><br>Added support for bullet points in posts (lines starting with an asterisk or a hyphen, plus a space).<br><br>Added Dutch (nl_NL) translation (contributed by martijndeb).<br><br>Added Western Frisian (fy_NL) translation (contributed by martijndeb).<br><br>Mastodon API: Fixed repeated entries in timelines.<br><br>Added nodeinfo 2.1 support.<br><br>Fixed boosts from the command line not showing in the public timeline (contributed by xvello).<br><br>Updated several language files (contributed by zen and daltux).<br><br>Retrieving a post's replies is now possible via ActivityPub.<br><br><a href="https://comam.es/what-is-snac" rel="nofollow"><span class="invisible">https://</span>comam.es/what-is-snac</a><br><br>If you find <a href="/tags/snac/" rel="tag">#snac</a> useful, please consider <a href="https://ko-fi.com/grunfink" rel="nofollow">buying grunfink a coffee</a> or contributing via <a href="https://liberapay.com/grunfink/" rel="nofollow">LiberaPay</a>.<br><br><a href="/tags/snacannounces/" rel="tag">#snacAnnounces</a> <a href="/tags/frugalfediverse/" rel="tag">#FrugalFediverse</a><br><br>
I've just updated my <a href="/tags/snac/" rel="tag">#Snac</a> instance to version 2.83 👍 🎉<br>You don't know Snac? But you should: <a href="https://codeberg.org/grunfink/snac2" rel="nofollow"><span class="invisible">https://</span>codeberg.org/grunfink/snac2</a><br>A simple, minimalistic and well documented <a href="/tags/activitypub/" rel="tag">#ActivityPub</a> instance server written in C, no database needed, totally JavaScript-free, no cookies either, not much bullshit.<br><br><a href="/tags/snac2/" rel="tag">#snac2</a> <a href="/tags/fediverse/" rel="tag">#fediverse</a> <a href="/tags/frugalfediverse/" rel="tag">#frugalfediverse</a><br>
I've just published version 2.83 of <a href="/tags/snac/" rel="tag">#snac</a>, the simple, minimalistic <a href="/tags/activitypub/" rel="tag">#ActivityPub</a> instance server written in C. It includes the following changes:<br><br>After receiving a follow confirmation, a bunch of posts from that account are requested and inserted into the timeline as context.<br><br>Continuously failing instances are marked as broken after a given number of days (see snac(8) on how to tune this counter). Incoming activity from any of these instances resets the counter.<br><br>Fixed a nasty bug that incorrectly deleted private local posts in certain cases.<br><br>Scheduled posts can now be sent from the command line (see snac(1) for more information on how to do it).<br><br>Docker: add timezone, new examples for building and complete Swarm mode stack with Traefik (contributed by daltux).<br><br>Fixed timezone names (contributed by dharmik).<br><br>Documented the update command (contributed by xvello).<br><br><a href="https://comam.es/what-is-snac" rel="nofollow"><span class="invisible">https://</span>comam.es/what-is-snac</a><br><br>If you find <a href="/tags/snac/" rel="tag">#snac</a> useful, please consider <a href="https://ko-fi.com/grunfink" rel="nofollow">buying grunfink a coffee</a> or contributing via <a href="https://liberapay.com/grunfink/" rel="nofollow">LiberaPay</a>.<br><br><a href="/tags/snacannounces/" rel="tag">#snacAnnounces</a> <a href="/tags/frugalfediverse/" rel="tag">#FrugalFediverse</a><br><br>
I've just published version 2.86 of <a href="/tags/snac/" rel="tag">#snac</a>, the simple, minimalistic <a href="/tags/activitypub/" rel="tag">#ActivityPub</a> instance server written in C. Once again, most of the work has been done by fellow developers because they are the best. It includes the following changes:<br><br>Truncate RSS titles at UTF-8 character boundaries (contributed by lxo).<br><br>Link contacts to single-user people pages. Also, user's posts are shown (contributed by lxo).<br><br>Added emoji reactions (contributed by violette).<br><br>Mastodon API: Fix for some client notifications (contributed by violette), fix for a status visibility error (contributed by fruye).<br><br>If the query variable terse of a public post page is set to anything, no header is shown.<br><br>Fixed search failures when the query string has any leading blank.<br><br><a href="https://comam.es/what-is-snac" rel="nofollow"><span class="invisible">https://</span>comam.es/what-is-snac</a><br><br>If you find <a href="/tags/snac/" rel="tag">#snac</a> useful, please consider <a href="https://ko-fi.com/grunfink" rel="nofollow">buying grunfink a coffee</a> or contributing via <a href="https://liberapay.com/grunfink/" rel="nofollow">LiberaPay</a>.<br><br><a href="/tags/snacannounces/" rel="tag">#snacAnnounces</a> <a href="/tags/frugalfediverse/" rel="tag">#FrugalFediverse</a><br><br>
Hi, everyone. I've just published version 2.87 of <a href="/tags/snac/" rel="tag">#snac</a>, the simple, minimalistic <a href="/tags/activitypub/" rel="tag">#ActivityPub</a> instance server written in C. It only includes a single change, to avoid using EmojiReacts to harass users:<br><br>Hide EmojiReacts from muted actors and blocked instances.<br><br>Sorry for the inconvenience. Bad people creativity always gets me off-guard. Upgrade your snac to this version ASAP, or revert to 2.85.<br><br>There will be another release pretty soon with a better solution to delete offending EmojiReacts.<br><br><a href="https://comam.es/what-is-snac" rel="nofollow"><span class="invisible">https://</span>comam.es/what-is-snac</a><br><br><a href="/tags/snacannounces/" rel="tag">#snacAnnounces</a> <a href="/tags/frugalfediverse/" rel="tag">#FrugalFediverse</a><br><br>
Edited 89d ago
I've just published version 2.89 of <a href="/tags/snac/" rel="tag">#snac</a>, the simple, minimalistic <a href="/tags/activitypub/" rel="tag">#ActivityPub</a> instance server written in C. It includes the following changes:<br><br>Fixed crash in pronouns processing (contributed by byte).<br><br>Added counters in the people page (contributed by byte).<br><br>New command-line option refresh, to refresh all follower and following Actor objects, marking them as broken if they are.<br><br><a href="https://comam.es/what-is-snac" rel="nofollow"><span class="invisible">https://</span>comam.es/what-is-snac</a><br><br>If you find <a href="/tags/snac/" rel="tag">#snac</a> useful, please consider <a href="https://ko-fi.com/grunfink" rel="nofollow">buying grunfink a coffee</a> or contributing via <a href="https://liberapay.com/grunfink/" rel="nofollow">LiberaPay</a>.<br><br><a href="/tags/snacannounces/" rel="tag">#snacAnnounces</a> <a href="/tags/frugalfediverse/" rel="tag">#FrugalFediverse</a><br><br>
I've just updated my <a href="/tags/snac/" rel="tag">#Snac</a> instance to stable version 2.89 👍 🎉<br>You don't know Snac? But you should: <a href="https://codeberg.org/grunfink/snac2" rel="nofollow"><span class="invisible">https://</span>codeberg.org/grunfink/snac2</a><br>A simple, minimalistic and well documented <a href="/tags/activitypub/" rel="tag">#ActivityPub</a> instance server written in C, no database needed, totally JavaScript-free, no cookies either, not much bullshit.<br>From release notes: "New command-line option 'refresh', to refresh all follower." Do you feel refreshed my friends? 😉<br><br><a href="/tags/snac2/" rel="tag">#snac2</a> <a href="/tags/fediverse/" rel="tag">#fediverse</a> <a href="/tags/frugalfediverse/" rel="tag">#frugalfediverse</a><br>
I've just published version 2.88 of <a href="/tags/snac/" rel="tag">#snac</a>, the simple, minimalistic <a href="/tags/activitypub/" rel="tag">#ActivityPub</a> instance server written in C. It includes the following changes:<br><br>If disable_emojireact is set to true in server.json, EmojiReacts (incoming and outgoing) are totally disabled.<br><br>New command-line option top_ten, that returns the top ten most popular posts by a user (ordered by the sum of likes and boosts) (contributed by aov).<br><br>Added a new set of per-user muted words; if a post contains any of them, it's hidden behind a dropdown (contributed by byte).<br><br>If an account has a metadata named pronouns, it's shown by the name (contributed by violette).<br><br>Mastodon API: children of a post are returned recursively, not just the first level (contributed by violette).<br><br>Implemented optional metadata stripping for images and videos using external tools (contributed by Stefano Marinelli).<br><br><a href="https://comam.es/what-is-snac" rel="nofollow"><span class="invisible">https://</span>comam.es/what-is-snac</a><br><br>If you find <a href="/tags/snac/" rel="tag">#snac</a> useful, please consider <a href="https://ko-fi.com/grunfink" rel="nofollow">buying grunfink a coffee</a> or contributing via <a href="https://liberapay.com/grunfink/" rel="nofollow">LiberaPay</a>.<br><br><a href="/tags/snacannounces/" rel="tag">#snacAnnounces</a> <a href="/tags/frugalfediverse/" rel="tag">#FrugalFediverse</a><br><br>
I've just updated my <a href="/tags/snac/" rel="tag">#Snac</a> instance to stable version 2.88 👍 🎉<br>You don't know Snac? But you should: <a href="https://codeberg.org/grunfink/snac2" rel="nofollow"><span class="invisible">https://</span>codeberg.org/grunfink/snac2</a><br>A simple, minimalistic and well documented <a href="/tags/activitypub/" rel="tag">#ActivityPub</a> instance server written in C, no database needed, totally JavaScript-free, no cookies either, not much bullshit.<br>A lot of new great stuff in version 2.88, changes that make our Fediverse life easier, "muted words" ... whaaaaaaaat!!? Yes! 🤩<br><br><a href="/tags/snac2/" rel="tag">#snac2</a> <a href="/tags/fediverse/" rel="tag">#fediverse</a> <a href="/tags/frugalfediverse/" rel="tag">#frugalfediverse</a><br>
I've just published version 2.84 of <a href="/tags/snac/" rel="tag">#snac</a>, the simple, minimalistic <a href="/tags/activitypub/" rel="tag">#ActivityPub</a> instance server written in C. This time, it includes mostly work by great, brilliant fellow developers while I was just sitting on the porch with the cats on my lap and a beer in my hand:<br><br>Implemented more scopes to match other ActivityPub implementations (public, unlisted, followers-only and direct message) (contributed by byte).<br><br>New icons showing instance and actor failures.<br><br>Mastodon API: Added remote accounts follow metrics and statuses when viewing profiles (contributed by Stefano Marinelli), fixed post deletion.<br><br>Fixed outbox collection (contributed by byte).<br><br>New file FEDERATION.md (contributed by andypiper).<br><br>Updated Czech, Spanish and Brazilian Portuguese translations (contributed by pmjv and daltux).<br><br>Fixed manpage typos (contributed by r-ricci).<br><br><a href="https://comam.es/what-is-snac" rel="nofollow"><span class="invisible">https://</span>comam.es/what-is-snac</a><br><br>If you find <a href="/tags/snac/" rel="tag">#snac</a> useful, please consider <a href="https://ko-fi.com/grunfink" rel="nofollow">buying grunfink a coffee</a> or contributing via <a href="https://liberapay.com/grunfink/" rel="nofollow">LiberaPay</a>.<br><br><a href="/tags/snacannounces/" rel="tag">#snacAnnounces</a> <a href="/tags/frugalfediverse/" rel="tag">#FrugalFediverse</a><br><br>
Edited 161d ago
I've just published version 2.90 of <a href="/tags/snac/" rel="tag">#snac</a>, the simple, minimalistic <a href="/tags/activitypub/" rel="tag">#ActivityPub</a> instance server written in C. It includes the following changes:<br><br>Minor tweak to improve signature key retrieving for some Wordpress configurations.<br><br>Fixed web UI incorrect links to actor public pages for some configurations.<br><br>Fixed mismatch in the accounts being followed number in the public and people pages.<br><br>Notifications can be filtered by category (contributed by byte).<br><br>Dates are shown adjusted to the account's time zone (contributed by dandelions).<br><br>Configurable limit for poll items (contributed by dandelions).<br><br>Fixed incorrect scope when editing a post (contributed by dandelions).<br><br>Change the strip_exif logic to work with the already existing OpenBSD sandbox (contributed by oxzi).<br><br>Mastodon API: Add poll creation (contributed by davidrv00), fixed a voting bug (contributed by davidrv00), added a fix to verify_credentials (contributed by ag-eitilt).<br><br>Updated Czech, German, Brazilian Portuguese, Spanish translations (contributed by pmjv, zen, daltux).<br><br><a href="https://comam.es/what-is-snac" rel="nofollow"><span class="invisible">https://</span>comam.es/what-is-snac</a><br><br>If you find <a href="/tags/snac/" rel="tag">#snac</a> useful, please consider <a href="https://ko-fi.com/grunfink" rel="nofollow">buying grunfink a coffee</a> or contributing via <a href="https://liberapay.com/grunfink/" rel="nofollow">LiberaPay</a>.<br><br><a href="/tags/snacannounces/" rel="tag">#snacAnnounces</a> <a href="/tags/frugalfediverse/" rel="tag">#FrugalFediverse</a><br><br>