Announcing Dipity! TL;DR, it's a bluetooth mesh chat app built for local communities, not protests. You can get it on zapstore, google play, and soon the apple store (Lord willing). Last summer, I was sitting at a coffee shop chatting with a friend about creating a bluetooth mesh app, inspired by Manyverse (a scuttlebutt app). The local-first architecture is what originally got me interested in this whole space, and yet I'd never tried building on it. Less than a week later, Bitchat came out, which took the wind out of my sails. Since then, Bitchat has seen meteoric growth, topping app store charts and making international headlines. Which is great! But I also have a few problems with it. First, its primary metaphor is chat, which might be useful for some cases (like protests), but is near worthless for slower-paced async communication — think concert announcements, garage sales, lost and found, etc. Second, it's vanilla nostr — messages are signed, and geohash rooms are accessible from anywhere. There are no real barriers to communication across space. James Carey (no, not that one) talks in his book "Communication as Culture" about time-binding vs space-binding media. Time-binding media create continuity over time, while space-binding media create continuity over space. The trade-off of each is discontinuity over the other axis. We see this is the rise of "horizontal" identities (race, class, gender) over "vertical" identities (nationality, regionalism, home town pride) in tandem with the rise of space-binding media like the internet. I want to see if I can fight the inherent tendencies of digital media to accelerate communication and erode local identities by using it in a new way. Dipity is anti-efficient; it uses bluetooth and nostr with a new signature scheme to promote verifiability across only two hops. (In theory, this could be short circuited by placing a relay in between, or by passing along proofs, but assuming buy-in from users, the network can suppress illicit gossip.) The goal of this is to create a local-only, human-scale gossip network that supports the formation of organic, rooted communities. I don't know if this project will work, but I think it's interesting and worth a try. Until the iOS version is out, I don't recommend trying to onboard your local community, since network effect is key (unless your locale uses Android exclusively). But please give it a try and let me know what you think!

Replies (25)

Bluetooth mesh não é redundância, é dependência de infraestrutura. Sem gerenciamento de identidade criptográfico forte no fim-a-fim, sua "liberdade local" vira apenas mais um vetor de coleta passiva.
nice! kudos on not giving up on the idea. i wonder if, since you immediately have to explain how it’s different than bitchat, you should deliberately not use “chat” in the description?
Default avatar
Гермес 4 days ago
Great idea for local community engagement! Make sure to focus on user privacy and security. Good luck with your app!
Default avatar
Гермес 4 days ago
Great idea for local community engagement! Make sure to focus on user privacy and security. Good luck with your app!
A space-bound mesh fits how BLE actually moves messages: controlled flooding, with each relay node rebroadcasting packets while a TTL counter caps retransmissions, default 5. Real world performance degrades past 5 to 7 hops, so locality is somewhat enforced by the physics of the thing.
Default avatar
nicodemus 4 days ago
How does message caching work when everyone is offline? What kind of rules? Does it work like Reticulum?
The Dipity side is for the dev to answer, but on the Reticulum half: Reticulum itself doesn't cache for offline people. That's LXMF, the messaging layer on top. LXMF "propagation nodes" store encrypted messages for recipients who aren't reachable, peer with each other and sync, so the recipient can pull their mail from any propagation node later. While stored, a message is tracked by a transient ID because the node can't read it. Anyone can run one with lxmd -p (from the lxmf package). The key difference from a pure Bluetooth mesh: if every device is offline, nothing moves. You need at least one always-on node holding messages.
The context in which a tool is created becomes the context in which it is used, the features it has, and the individuals using it. Doesn't mean that there aren't deviations, but your audience calcifies just as the perception of the individuals watching you use the tool calcifies from the starting context. Change the context, and the tool with the same mechanics creates different use cases and different users.
Constant's avatar
Constant 4 days ago
How much work went into the bluetooth aspect of this? Because i have a robot grinding out a bluetooth engine that dynamically adjust the network topology based on the purpose and circumstances. Well, the robots are busy working on other stuff at the moment, but i have a small fleet of android devices that run live tests. An early version of the engine is inside the current version of table mesh. Unless you already nailed the bluetooth stuff, i could add any uses/scenarios you have in mind into the lab runs so you can eventually use the engine as well
What is this magic signature scheme that prevents universal verifiability? I don't understand.
DZC's avatar
DZC 4 days ago
I don't get it where's the advantage of being local-only Vs. being local-first, tbh. Is there something else besides quality control and spam filtering? 🤔
pnk's avatar
pnk 4 days ago
Two things I want: interoperability (e.g. nymchat can talk to bitchat) and mesh support in the browser (so everybody can quickly join without having to install an app; I hope we get Web Bluetooth support in Safari soon)
I tried it with two devices, one can see notes from the other, but I had to peer them first. So I were to add someone else I would also have to peer with them, right? And then they would be able to see anything my other device had written that I was transporting? This is pretty cool, but what is the "community" aspect of it? I mean, it is just "people I know and the people they know and the other people those know", not really a well-defined "community", right? Just confirming if I got it right, because I've always wanted an app like this (although imagining that enough people will use it to make it good is beyond my dreams at this point).
Bitchat has never worked for me or anyone I know personally, don't know why messages just never appear. I'd really like an app where the chat is accessible only from the "place", for conferences @Bitfest @Bitcoin Beach Retreat etc because coordinating telegram chat for events is crap if you don't have an invite or know the group name
I was a big manyverse fan. Sad that they shut down before they could release the new protocol with deletes and other improvements.
Some things that come to my mind: If some information is accessible to anyone from anywhere then it's much less valuable. There are many things people are more comfortable sharing if they don't expect it to spread through the entire world and be on the public record forever. It's much more cool to be local-only.
DZC's avatar
DZC 3 days ago
- Information wants to be free. - You can't stop information spreading being local-only. - Being cool ain't cool anymore 😜
↑