Running my own ActivityPub is more complicated than I expected. #snac (shoutout to
@grunfink) is easy to setup and run, but I'm not sure if anyone out there can see/read my toots.
@stefano, BSD Cafe barista, developer extraordinaire and even better human being, has started working on an iOS Mastodon API / Fediverse app named #Mastoblaster.
The difference from other Mastodon API clients is that this one has #snac as a first class citizen.
MastoBlaster looks really Great! A snac-first iOS Fediverse Client! :)
Already found a Little bug: on an iPhone SE2 screen, the First character gets cut and is Not shown :)
@mastoblaster couldnt find a repo or issue Tracker to Open a bug Report for this :)
Hello from an old year 1997 Machine!
This snac server is now running on a Micronics Spitfire with 2x Pentium II @ 233MHz and 512MB SD-RAM. Operating System is NetBSD 10.1, installed on a 120GB SSD (SATA->IDE converter)
OpenBSD wasn't able to run snac stable on this machine, it crashed after a few requests with "illegal instruction".
#MastoBlaster un client iOS per il Fediverso leggero e attento alla privacy è ora disponibile per i test pubblici su TestFlight.@Che succede nel Fediverso?Si tratta di un client basato su un'idea semplice: comportamento veloce, piccolo e prevedibile e supporto di prima classe per #snac.Cosa lo rende diverso:1. snac-first per progettazione, non "compatibile per caso"2. Funziona
Ingombro molto ridotto, utilizzo di RAM molto basso
La generazione del testo alternativo avviene interamente sul dispositivo tramite API Apple su hardware supportato. Nulla viene inviato a servizi esterni.
After quite some time, I’m finally ready to share this.
MastoBlaster is now available in public testing on TestFlight.
It is a lightweight, privacy-first Fediverse client for iOS, built around a simple idea: fast, small, predictable behavior, and first-class support for snac.
What makes it different:
• snac-first by design, not "compatible by accident"
• Works with all Mastodon API compatible software, including Mastodon, snac, GoToSocial, Akkoma, and others
• EXIF stripping on upload (HDR and orientation preserved)
• Optional on-device alt text generation via Apple Intelligence for your uploads and for images in your timeline
• Markdown posting for snac
• Granular notifications, grouping, multi-account
• Blocking and moderation tools
• Very small footprint, very low RAM usage
Alt text generation happens entirely on device via Apple APIs on supported hardware. Nothing is sent to external services.
It is built around my own workflow and priorities. It may not be for everyone, and that is perfectly fine.
Important note:
MastoBlaster will always be free for BSD Cafe users, illumos Cafe users, and for anyone connecting to a snac instance, including self-hosted ones.
The app is already usable, but this is still a test phase. I am looking for feedback, bug reports, and real-world usage insights.
Really enjoying running #snac on a low end server so far. Thanks a lot
@grunfink for this great piece of software!
I would even host it at home, but it seems like huge parts of the Fediverse are IPv4-only, and #ActivityPub behind Dual-Stack Lite doesn't sound like fun.
I like that snac2 has a setting for how long to keep your posts. That was missing from #GoToSocial, where I didn't necessarily want to keep everything forever.
Hey, this is indeed a very important #SNAC feature. My instance directory is less than 2GB now. I keep my own posts ad aeternum for now, others purged in 60 days.
Back in 2022, when I was still using iOS, I wasn’t completely happy with the Fediverse apps that were available. I was mostly using Akkoma, and the interface I liked the most was actually its web UI, even on mobile. So I started playing with Xcode and put together the foundations of an app tailored to my needs.
A lot has changed since then and today we have great alternatives like IceCubes, Mona, Ivory, etc. Each one has strengths and weaknesses though, so I picked up my old project again and kept pushing it forward.
So I’m happy to announce that my app will finally see the light: I’ve been using it for the past few days and, in my spare time, I’m fixing bugs and adding missing features. I’m building it around my own needs, so it doesn’t have to “appeal to everyone”. I wouldn’t call it opinionated, but it’s definitely targeted.
The app will have one key trait: #snac2 support will be a first-class feature, not an incidental one. Many apps, especially on iOS, support snac as a side effect, but the experience is often not optimal. In this case, the choice is deliberate and it strictly follows the Mastodon API support implemented by snac. So snac will work properly (within the limits of the platform, of course).
Among the features already implemented: the app is minimal and lightweight (under 10 MB, including debug code), easy on RAM, and privacy-first (for example it strips EXIF data from media before posting, so the server will never see it). On snac it also cleans up the "Boosted by Aoderelay" messages that appear when using a relay, removes the character limit, and supports posting in Markdown.
I also added support for Apple Intelligence to generate alt text, both for the media I post and for media posted by others that is missing alt text.
Everything is processed locally through Apple APIs and only on supported devices. The results aren't amazing, Apple Intelligence is extremely limited, but in my opinion it's the only privacy-friendly and ethical way to approach it. And of course, you can disable it.
On Mastodon it supports all the main features: lists, quote posts, granular notifications (you can choose what you want for each category), notification grouping, multi-account support, and it works.
It's still missing a few things (block, etc.) and has some bugs, which I’m spotting as I keep using it.
As soon as it's stable enough, I'll invite a few people to test it. I still haven't fully decided how I'll distribute it: an Apple Developer account has a yearly cost, and I hope to reuse it for other projects too. So this app might be paid, with a trial period, but if possible (I still need to check what’s feasible) I'd like it to be free if you connect to one of the BSD Cafe instances, illumos Cafe, or any snac instance, including your own.
I don't know how long it will take before it's ready... but I can already tell you what it will be called.
It already has a name, and it's... MastoBlaster.
This name was chosen for personal reasons, and also because of its similarity to Master Blaster by Stevie Wonder, which even today feels relevant and fitting for the Fediverse.
https://snac.la10cy.net/ up and running! It was pretty handy to import all my follows into
@amilatled (sorry if that bothered some of you, i saw the mirror account got a few blocks 🫣 )
Now my #snac account follows also 1.1k accounts.
I am really curious how much space the cache and all the stuff will need. At the moment, after the import, its only 83 megabyte 😮
It looks like the migration off of my #snac#snac2 instance
@fd0 to mastodon.nl is almost complete.
Some weird thing is happening, that not all my followers there have migrated with me...
It may be an #ActivityPub thingy... not sure. I have seen the notification being sent out to all the followers
My main (and truly only issue) with #snac is it's overreliance on filesystem operations. it's very cool from a purely unix kind of standpoint where you can see the elegance of such a design, but in practice, it's just way too much overhead
Having it operate with sqlite instead, as a baseline, would already make it much more efficient than it is
I do like that people are engineering stuff like this though, having the entire program be a self contained repository of readable C, that implements the basic features of mastodon, is kind of dope!
This removes all HTML elements that are hidden inside closed details elements. When the details element is opened, its children are rendered normally. This does not change anything visibly on the page, but it makes the snac page much faster on my older devices. Plus, I use vim-like navigation plugins that allow clicking links by pressing shortcuts, and the 5 such browser extensions I tested all struggle for a few seconds, completely blocking the browser, while their JS code frantically searches for all clickable elements, not to mention that they show hints for elements that are hidden, making the experience very confusing. Additionally, when I search the page for something I just saw, all detail elements expand, and make the page a mess. With this change, the hidden texts inside details elements are not searchable, and thus, the browser does not expand all of them needlessly. In general, this change has been very good in my experience.
Additionally, I added name=snac-note attributes to the details element of all "Reply..." sections, and name=snac-top-controls to the top control elements. Only one of the details elements that share the same name is allowed to be open at any time, and thus, if I open the "Reply..." drawer on one post, and then open it on a second post, the first one would automatically close itself. This helped me with the "All details unfolding due to search" issue before, but setting display: none using CSS seems to be a better solution for this problem. Still, I think I'm liking the "only one open at a time" rule, but not sure if it's worth the patch.
The CSS change I proposed at the top may be somehow annoying in one case I can think of: someone has their settings set to start with all posts folded closed, and wants to search all folded entries for a specific term (like their own name, or something). In this case, their search would come empty, because all content is not actually added to the DOM.
Anyway, if you think either of those changes is worth adding to snac, feel free to. I think I can strongly recommend the first CSS change, as it fits with snac's aim to be fast and light-weight.