Remote
Stefano on littleFedi
@stefano@rpi0w.stefanomarinelli.it
It's me, Stefano, the BSD and illumos Cafe Barista - aka @stefano@mastodon.bsd.cafe and @stefano@mastodon.illumos.cafe
I'm testing something cool - #littleFedi !
This instance is efficiently running on a Raspberry PI Zero W, powered by #NetBSD.
I'll post general stuff - for more littleFedi news and updates, follow my other profile: @stefano@littleone.littlefedi.social
Let's go!
0 Followers
0 Following
484 Posts
Joined July 01, 2026
As it often happens when the day has been long and full, I’m tired but cannot sleep.
To be honest, I don’t want to sleep. Now that I can slow down…sleep?
Oh well, I’d better to.
Goodnight, world!
Open post
littleFedi introducing littleMesh
We've been buried in littleFedi work lately, and there's one piece I want to talk about because it's the one I'm genuinely excited about: littleMesh.
The problem is an old one. Federation assumes you have a domain, a public IP, an open port, a TLS certificate. Fine if you're renting a VPS somewhere. Not fine if your instance lives on a Raspberry Pi in your house, behind CGNAT, with an ISP that will never hand you a real IP address no matter how nicely you ask. Until now, that simply meant no federation for you. Full stop.
littleMesh gets rid of that requirement entirely, without asking you to build any of the infrastructure above.
On first run, your instance generates its own Ed25519 keypair. That key becomes your identity, no domain required, because your instance's address is derived straight from your public key, in the form .mesh.. Then your node opens an outbound connection to a "lighthouse", a small, publicly reachable relay, and registers itself there. Since the connection is outbound, it works from behind any NAT, any CGNAT, with zero port forwarding. The ISP never even notices.
When someone wants to reach you, they ask the lighthouse to open a circuit. The lighthouse introduces both sides, you call back, and it splices the connection together, but it only ever sees encrypted bytes, never your actual traffic.
Once the introduction is made, if you happen to have a reachable address after all, both sides skip the relay and talk directly. If not, the relay just keeps carrying you, quietly, in the background.
And if you already run an instance with a real domain, you can still turn on littleMesh, purely to reach mesh-only instances. Your own identity doesn't change at all.
There will be a default pair of community lighthouses, so you don't even need to find or run your own relay to get started, just say yes during littleFedi init and you're on the mesh.
The fediverse shouldn't require you to be reachable. It should reach you.
#littleFedi #littleMesh #Fediverse #OwnYourData
1
7
0
0
Open post
Replying to
@samuel@social.spejset.org oh, the handle will be "terrible" - something like @@ghngxhtemvno7qyv4a7nejwjj36vh3xgqk5torc7jvpfezss2jyq.mesh.faro.example - but it's the only price to pay to federate from everywhere.
1
1
0
0
Open post
Replying to
@samuel@social.spejset.org unfortunately, the handle will be created and will be the same for the entire lifecycle of the instance. You can change the secondary relays, but not the first one.
But you can multiple relays serving the same handle, so you can have a failover setup.
1
2
0
0
Open post
Open post
Boosted by @fedicat@pc.cafe
I promised it, so here it is. This is a recording of littleFedi running on a Raspberry Pi Zero W on NetBSD.
#littleFedi #NetBSD #OwnYourData
Open quoted post
Open quoted post
Quoting
I promised it, so here it is. This is a recording of littleFedi running on a Raspberry Pi Zero W on NetBSD.
Everything is on the SD card, the database is SQLite, and caching is enabled.
Personally, I won't comment on responsiveness or anything else; I'll just say that when I use it (both via the web interface and with apps like MastoBlaster or IceCubes), I find it hard to believe what kind of hardware it's running on.
Users' sessions (by default, a maximum of 8 users but configurable) are kept "warm" with every interaction or federated activity for 15 minutes since the last login; after that, the server enters "low power mode" and simply processes incoming data without activating the (users' timelines, etc.) cache.
We don't need to get ripped off for more powerful hardware, which comes with outrageous costs these days.
We just need to optimize and build efficient software.
Abundance led to waste.
#littleFedi #NetBSD #RunBSD #OwnYourData #Optimize #ScreenCapture

0
0
1
0
Open post
Just a friendly reminder that this instance is running on a Raspberry Pi Zero W powered by NetBSD and littleFedi (not yet released)
#NetBSD #littleFedi #Fediverse
0
1
0
0
Open post
"What do we have that AI doesn't, and why will it never have it? Artificial intelligence does not die. Therefore, it lacks that awareness of human finiteness, because we all confront our own end. It has no awareness of the end, it knows neither love nor pain.
If it did, it would become a human being.
Dacia Maraini
0
0
0
0
Open post
The Blog Option in littleFedi
littleFedi, like many social platforms, had both a strength and a limit. Posts, by their nature, are ephemeral. They get published, federated (unless local-only, which littleFedi handles) and then, over time, lost. Partly through self-deletion, partly through their normal blending in with the thousands of other posts that pile up over time. Sometimes, though, we want something to stay. And not just stay as a social post, but as an actual blog. A bit like with BSSG, I had thought it would be convenient to have a minimal system. Not to compete with WordPress or other solutions, but to have a small blog, integrated into littleFedi, that would produce and serve a blog updated every now and then, whenever the person writing felt like doing it.
And that's why the blog option was born.
The idea is simple: when you write a post, from the web UI or from the CLI, there's a checkbox, "blog post". If you check it, that post stops being just a status that will scroll past and disappear. littleFedi renders it into a real static site. No JavaScript, just HTML and CSS, an Atom feed, tag pages, a chronological archive. Nothing exotic, nothing that needs maintenance five years from now.
The blog isn't a parallel system you have to feed separately. It's not an export, not an import, not a bridge to some other CMS. The post you wrote is the blog post. Same database, same act of writing, still boostable, still repliable, still part of the conversation on the fediverse side. The blog is just a second representation of the same content, generated automatically. Every time you create, edit, or delete a blog post, the whole static site for your account gets rebuilt from scratch, and the new version replaces the old one atomically, so nobody ever lands on a half-built page. If the build fails, the previous version stays in place. Simple, but it has to work reliably, or the whole idea is pointless.
That's the core of it: two representations of the same post. As a status, it lives in the fediverse, interactive, part of the conversation, subject to replies and boosts like anything else. As a static page, it lives on the web, durable, indexable, with a permalink, something an RSS reader can hold onto. You don't have to decide in advance which posts deserve to last. You write normally, and if something turns out to be worth keeping, you flag it, and it gets its own page.
One detail I cared about while thinking this through: the generated site has to be self-contained. When littleFedi builds it, media gets copied or hard-linked into the generated directory - images, audio, video. If it's stored on S3, it keeps its public URL directly. Either way, the point is that the site on disk doesn't depend on the instance staying up. If the server goes down tomorrow, the blog files are still a complete, working website. That wasn't an afterthought, it was one of the requirements from the start.
Not every account gets a blog, and that's intentional. The instance admin has to enable the feature globally ([blog] enabled = true), and then grant it per account. It's not meant to be a CMS, and I didn't want it to become one. Blog posts can't be replies, can't be boosts, have to be public and top-level. These are constraints, not missing features: the blog is for your own writing, not for threads or reshared content.
There's no JavaScript anywhere in the generated site. That was deliberate too. It loads fast, it works offline if you cache it, and it will still render correctly in ten years without anyone having to update a dependency.
In the end, the blog option doesn't ask you to choose between writing socially and writing something permanent. You keep writing the way you always do, on littleFedi, and if a post is worth keeping, you check a box. No separate platform, no migration, no vendor lock-in. Just your own posts, some of them rendered into a small static site you can host anywhere, built out of something that already existed on the open web.
Remember: all this is being currently served by a Raspberry PI Zero W powered by NetBSD
Here's the result: https://rpi0w.stefanomarinelli.it/@stefano/blog/691cb62e-e7a1-434b-ba65-d059ee58ac41/
#littleFedi #SSG #BSSG #OwnYourData #Blogging #Fediverse #NetBSD
0
0
0
0
Open post
Ok, I'm testing something cool.
A blend of #snac, #Mastodon, #honk, #GoToSocial...and more.
This is running on a Raspberry PI Zero W, powered by NetBSD. The same that is powering my own smart thermostat. And it's quick.
I'll use this account and try to "stress" it.
Own your data. Always own your data!
#littleFedi #OwnYourData #Fediverse #NetBSD #RunBSD
0
0
0
0
Open post
Calling all testers: littleFedi test instance coming soon
I will be launching a test instance of littleFedi soon.
If you would like a test account, reply to this post and I will reach out as soon as it is ready.
The goal is to test the platform with a larger group of users and gather initial feedback.
#littleFedi #Fediverse #BetaTesting
0
1
0
0
Open post
Boosted by @GroupNebula563@mastodon.social
This is the first genuinely operational littleFedi instance.
It has been online since 1st July, is single-user (just me), and runs on a Raspberry Pi Zero W powered by NetBSD, directly on its SD card.
It consumes just under 1W.
Its database is this size:
-rw------- 1 little wheel 109289472 Aug 26 15:14 littlefedi.db
That is, just a little over 100 MB. Yes, MB.
Its average CPU load is extremely low.
It is perfectly usable both from the web interface and from Mastodon API apps.
I have 179 followers and 169 followings, and it doesn't bat an eye.
I promise myself to use it more, and I will.
You don't need Big Tech to communicate with others.
You don't need an expensive data center to exist online.
Because we are people, and the bits are just extensions of our voice.
EDIT: littleFedi allows to transform posts into blog posts, having its own SSG (Static Site Generator). The one generated by this post is reachable by clicking here.
#littleFedi #Fediverse #OwnYourData
0
0
3
0
Open post
Now on a Raspberry Pi Zero 2 W - powered by NetBSD (armv7) - with an USB ethernet card, as the internal wifi seems to lock when the traffic goes up.
It's blazing fast
#littleFedi #Fediverse
0
3
0
0
Open post
This is one of the reasons why #littleFedi exists...
#littleFedi
Open quoted post
Quoting
I like Mastodon, I really do. But it has so, so many dependencies, and updating it on illumos or OpenBSD is getting really difficult, release after release.
Some dependencies are primarily distributed as binaries, or only build on Linux and macOS. It's not Mastodon's fault, but it depends on them.
That’s why, in my opinion, solutions like snac, GoToSocial, or littleFedi have a reason to exist: all of this is much, much easier...
#Fediverse #snac #GoToSocial #littleFedi #OwnYourData #Mastodon
Open quoted post 0
1
0
0
