June Update
mostly dictated to my phone, lightly edited:
I’ve made a lot of progress, but it’s still going slower than I think we all have been hoping for. The basic core of the message passing system is there, so you can send DMs, you can add people to groups and send group messages. And all of this is secured using the same open source, audited encryption that powers Signal.
I’ve also spent a lot of time on the ways that our product differs from Signal, and in particular because it’s self-hosted and because it’s not tied to a phone number. That creates a number of divergences that I think are valuable and I think make the product stronger, but also require substantial forethought to make sure they go well long term if we get a lot of users. I think the overall progress is such that most of the core is ready and there are no bells and whistles yet at all.
self hosting
First, let’s talk about the things that make Avalanche different from Signal. It’s a self-hosted tool, which means that anybody who wants to can run an Avalanche server on their own hardware or in the cloud if they want. I’m putting a bunch of energy into making it super easy to do this. You need some basic technical skills for sure, but like Claude makes it so that you don’t have to be an expert if you can ask Claude things and type things into a terminal. You’ll be able to figure stuff out. I will have to learn, along with all of you, how well the server can scale. I think this is going to be both pretty straightforward and just something that we won’t really learn until it’s in wide use. That points at growing pains and occasional downtimes and things like that as we grow the user base. We’ll figure that out as we go, and I feel reasonably confident we’ll be able to have a pretty good system to know how much server space to provision and that kind of stuff by the time that we’ve done it a few times.
Self-hosted is hopefully a huge advantage for a lot of people. I think it will be annoying for some, but I think the fact that you are in control of your whole infrastructure is quite powerful for a lot of groups. I think that’s compelling. That’s part of what I’m excited about when building this product. It’s not out of the question that we could offer a version of this that you just pay monthly to the server that we manage for you, but I currently don’t feel very excited about operating that business. We’re not going to start that way.
identities and accounts
Second thing is the account system. I hope this is cool. I think it’s really cool.
Within the Avalanche network, you control your identity, which means that even if you jump from server to server, you will be able to have the same identity. People will be able to reach you on the same contact that they save in their phone.
The way this works is that when you first sign up for an Avalanche server, you’re going to generate a passkey, basically a long password that is not something you ever have to memorize. It’s saved in your phone in your password manager or within your iCloud or Android password system, and that key will be used to log into any Avalanche server and create an account there. The great thing is that this will enable cross-server DMs and robustness of the social graph if a server gets taken down. If you join one server and your friend is on a different server, you’ll still be able to DM them. (A lot more details in the github repo: Identity, Auth & Recovery)
Right now, the trade-off we’re making is that groups are always on one server, so everyone has to join. If you’re just trying to find someone, you’ll be able to find them wherever they’re hosted.
Another great thing about the identity system is that you don’t have to use the same identity. Each identity is associated with a display name and your profile picture. You can always create a new identity if you prefer. A lot of people will choose to do that because they don’t want to be identified across their different types of activism. The flexibility is there so that if you want to be findable under the same name, you can, and if you want to be anonymous, you can.
We’ve set it up so that all your identities and servers are in the same inbox, so it’s simple, just like Signal. I think more advanced users may want to separate their inboxes and we will be able to build that as it becomes necessary. For now, defaulting everything into one inbox means that you don’t have to worry about the Slack/Discord problem of having to manually be checking a whole bunch of different servers, especially if the activity levels aren’t that high!
Okay, how do you find people? The basic way is that you scan their QR code, which has their contact info in it, or you can send them a link (eg using another platform) that has the exact same information.
If you join the same server as someone, you’ll automatically be added to a group with them in most cases. Then you’ll be able to find them just by being in the same group. I think this is probably the most common way in the long run. I’m sure there’s going to be many other ways as well, but those are the main ones.
status of various things
Most of the above is working:
- You can create a passkey.
- You can sign into multiple servers with different or the same identity.
- The self-hosting system is ready to go. Someone could just go and create a server today, and then someone else could sign into it.
- Cross-server DMs are not yet a thing - it’s planned but not implemented
The app: is not available except for iOS right now (and even that is only on TestFlight). I will of course build other platforms - I am not building them yet because I want to get most of the iOS app features in the shape that they’ll be in finally, and it will be very quick to finish out an Android app based on the iOS app. Right now, if I build the Android app and then have to go back and change a lot of things, it’s going to double the amount of work. That’s why it’s iOS only for now, but we’ll have Android and we’ll have desktop pretty quickly, as soon as we’re really ready to launch a version.
Features that are missing right now: it’s text only; there’s no attachments, no images, no voice memos. Not much in the way of admin tools. The admin bot that I have will add joiners to whatever channels you choose, and it can kick people from channels automatically. That’s pretty much it.
There are no integrations yet, so the next important set of things is to think about how everything will integrate with everything else. I think we’ve talked a lot about the potential for projects and CRM connections and all that kind of stuff, and we definitely need to develop a better plan for that, but it’s not implemented yet and it’s not even really super planned.
projects
Okay, let’s talk about projects because I’m sure this is where most of you are most excited. I think much of what we’ve been doing is just getting to parity with Signal. I am pretty sure that’s important, but I also think we need to be pushing for things that make Avalanche more powerful: projects, integrations, et cetera.
Basically, none of this is built or even really planned yet. I’m going to need both people to help give ideas for what we need to build and to help prioritize those ideas.
The main thing I want to point out about the project platform is just how open it will be for building. If you want to spin up your own projects, with or without Claude’s help, you are definitely going to be able to do a lot. You’ll be able to have a ton of control over how it works, where it lives, how it’s built, et cetera. We’re trying to make the API as flexible as possible for all of this stuff that you all want to do with the platform. Of course, I’m going to be building at least a few projects myself, both as a demo of the platform’s flexibility and just to make all of your lives easier.
chatbots
First: a very simple bot that I’m building is called AdminBot and it’s basically the thing that we all wish existed with Signal, where when someone joins they get added to a bunch of groups and we can remove them from all the groups as well. Pretty simple but pretty core to what we all want from avalanche.
And yes, BeagleBot style question-answering bots will all will be super easy to build and integrate into the system. You’ll be able to DM the bot and get your questions answered, or ask it questions in groups if you prefer. It’s all flexible and easy to do in a few lines of code.
tracking and engaging with activists
People are asking about CRM software -- tracking activity, protests that are happening, that kind of stuff. I think this is pretty important, but it’s not going to be a core feature of the platform itself because all the different groups have different needs. This is kind of one of these things that is better to do on a per-organization basis rather than as a centralized tool. The integrations will be powerful though.
The main value add of the platform itself is that the CRM will be linked to people’s identities and groups within the platform. One example use case: Let’s say you have a Boston protest group and a New York protest group and you just want to know how active each of the groups is. You can have bots that are in those channels monitoring activity, and e.g. noticing when people are saying “protest planned at such and such date”, automatically picking that up, putting it into your CRM system. Afterwards it could DM the organizer automatically and say, “Hey did that protest happen? Do you have any photos?” The person could reply with “Yes here is the photo” and that could go into your CRM as well. That’s just an example of stuff that would be pretty easy to build and integrate.
Another example in this direction: the organizing tools that were built for a recent action, where people sign up using a form and opt in to teams and have locations and all that stuff. Basically the way that we would use Avalanche to make this easier is that the sign-up flow is mostly the same: The user would still fill out all the form fields, but at some point it prompts them to download the app and create an account. Then they’re in the system, and you could either run the team assignments automatically or semi-manually or however you want to do it. Once team assignments happen, the people would be automatically placed in action groups with their lead. There would be an administrative bot that has the power to move them from group to group automatically if they change their team.
bridges to other platforms
I think it’s pretty easy to build Signal and/or text messaging “bridges”, at least for announcements. (quite a bit harder to support full cross-platform groups)
The way this would work is that within Avalanche you will have announcement groups, which work the same as they do on Signal or WhatsApp. You could add a “bridge bot’ to those groups which would receive the announcements and forward them along to other platforms. The user would receive a text message on their chosen platform, e.g., “Protest at such and such location.”
announcements, shared inboxes, etc
People also asked for the concept of a shared inbox where maybe you have one organizer account that’s actually monitored by a whole bunch of people. If someone DMs them, anyone with that account (whoever’s on duty) can reply. This works via our multi-device feature: we already plan to have multiple devices logged into the same account at once so it’ll be, I think, pretty straightforward to share that login with other trusted parties. It will work just like Signal works between your phone and desktop, where once you’ve read a message it is marked as ‘read’ for everyone else sharing that account.
I think it will make sense to allow people to respond to announcements not in a thread (like whatsapp) but instead directly to the organizers who can use shared inboxes to answer questions. And this can also work with bridges to other platforms - where if someone replies to an announcement via text then you would get a DM.