Twenty years later, Twitter founder Jack Dorsey returns with a new product, bitchat, in a minimalist style.
In the summer of 2006, mobile internet was still a novel term, and feature phones were the mainstream devices in people’s hands, with SMS being the most convenient form of “mobile socializing.” At that time, a project codenamed “twttr” was born. It started with SMS mass messaging, using extremely simple character limits and the most basic broadcasting protocol, making it possible for the first time to “talk to the whole world anytime, anywhere.”
In that shabby office, the founding team was passionately debating functional details, while Jack Dorsey, who was still just a university student at the time, sat among them. He turned his communication ideals into reality using the most straightforward technical approach. Soon after, twttr quickly grew into Twitter—a product that fundamentally changed the global social ecosystem.
On this day in 2025, time has passed, and technology and the world have changed dramatically. Wi-Fi signals are everywhere in the city, and 5G has connected everything into one large network. However, the essence of social interaction has not changed: we still crave communication that is free, authentic, and without intermediaries. Yet, reality is not always pleasant; network blind spots, platform crashes, and data breaches can happen anytime and anywhere. The newly acquired Twitter has not only changed its logo and name but has also been reshaped into a completely new form by Musk.
Jack Dorsey, the legendary figure who once simultaneously led two publicly traded companies worth over 5 billion dollars, has long left Twitter to focus his efforts on the encryption industry and the development of Block. However, he hasn’t completely abandoned his love for the social networking space. Like a youth returning to the design of the “twttr” project in 2006, he spent an ordinary weekend coding through the night on a whim and created a new minimalist social product—bitchat.
The only difference is that bitchat has more of Jack Dorsey’s beliefs in minimalist protocols, decentralized communication, and information freedom than “twttr”.
When camping, hiking, or engaging in mountain activities outdoors without mobile signal, there’s a need to share locations and seek emergency help; at music festivals, concerts, sports venues, comic conventions, and other crowded places where networks often collapse, it’s easy to set up a temporary chat network with companions; during sudden disasters, power outages, internet disruptions, or extreme weather, rescue teams, volunteers, or residents can establish emergency communication networks; in social movements, protest sites, sensitive discussions, and other environments where privacy needs to be protected, tracking participants becomes difficult; or in closed spaces like universities, summer camps, research groups, or geek gatherings, maximizing brainstorming is essential… In these scenarios, bitchat is a good choice.
The biggest highlight of bitchat is that it completely does not rely on any infrastructure - no servers, no Wi-Fi, or mobile signals. Each phone acts as both a “transceiver” and a “relay station,” discovering each other using Bluetooth Low Energy (BLE).
The reason for attracting the encryption industry is that all messages are end-to-end encrypted. During private chats, encryption technologies such as X25519+AES-256-GCM are used, and group chats can also be password protected, allowing only those who know the password to see the content. Messages are only stored locally, and they automatically disappear when exiting or shutting down, leaving no traces in the background.
In comparison to other encryption communication products, bitchat completely abandons the action of “logging in”; there is no need for a phone number, email, or a long string of keys. Each time you go online, a random “user ID” is generated, which can also be modified at any time, so there is no need to worry about being tracked.
Copy and open the following address in the iPhone web browser:https://github.com/jackjackbits/bitchat.
Find the TestFlight invitation entry on the page, and click “View in App Store” to jump to TestFlight. If you haven’t installed TestFlight yet, you will be automatically prompted to download it. After the installation is complete, return to the invitation page, and you will see the Beta version of “bitchat mesh.”
To install bitchat in TestFlight, click the “Install” button. You will see a simple App information page. The installation process takes about 5-10 seconds, wait until the button changes from “Install” to “Open.”
After opening bitchat, the system will pop up a permission request “Allow ‘bitchat’ to find Bluetooth devices?” The prompt content: bitchat uses Bluetooth to create a secure mesh network for chatting with nearby users. Click “Allow” to let bitchat scan and connect to surrounding devices in the background, ensuring the message relay function operates normally.
Since it is still in the testing phase, you will be prompted to share feedback with the developers; simply click “Next” to skip. Finally, click “Start Test” to enter the main interface of bitchat.
Tip: Make sure that your phone’s Bluetooth is turned on and that TestFlight is allowed to run in the background, or else you won’t be able to find nearby friends’ devices.
You can find that bitchat has no login process at all; you can start using it directly after downloading. In bitchat, every communication is anonymous and untraceable—no phone number, no email, and no registration required. You can change your nickname at any time. This mechanism maximally protects user privacy, allowing you not to worry about being traced back to your identity in sensitive situations or special contexts.
At the top of the page, in the bitchat* @ current ID area, you can modify your ID at any time. Click on the name after @ to directly edit and save the new ID. The new ID will take effect immediately and will be displayed in the friend list and message header of all friends in the same room.
After using bitchat for a period of time, you will notice that the main interface continuously outputs the online (connected) and offline (disconnected) status of various devices, along with speaking logs, each record preceded by a timestamp.
To prevent “timing analysis” attacks, bitchat will add an additional random delay of 50–500 milliseconds after all operations. This not only records the time but also helps prevent “packet sniffing”; network traffic will not completely correspond to your actual operation time, which can similarly help prevent identity tracing in sensitive situations or special scenarios.
bitchat supports true end-to-end encryption, meaning that only you and the other party (or group members) can read each message, and even the transit devices cannot decrypt it. Whether private chat or group chat, the content remains secure and private, and will not be intercepted by the platform or third parties.
Look at the upper right corner of the page, there is a little person icon. Clicking it will list all currently online peers: a green dot indicates online, and a gray cross indicates just went offline. For frequently chatted or important contacts, click the ☆ star next to their name to “favorite” them. After favoriting, a star will appear in front of that contact for easy recognition next time.
In the online list, we click on “Xiao Shuai” to enter the private chat window—at this moment, the number of unread messages will be displayed above his device.
At this time, Xiaoshuai opens the notification and sees that the sender is “@BlockBeats> After that, you can view the complete chat history. Private chats are also end-to-end encryption, and the conversation content cannot be decrypted by observing nodes. All messages here will also have random time perturbations in the timestamps to ensure privacy and resistance to traffic analysis.
At this point, the question arises: the privacy of open conversations isn’t that good. Suppose we want to have a private conversation among multiple people, how should we go about it?
At any time, just type a / in the input box, and a complete list of commands will pop up at the bottom of the screen:
For example, /j corresponds to: Join or create a room. If the specified room already exists, you will join it directly; if it does not exist, a new room will be created and you will automatically become the owner.
/rooms corresponds to: List all currently discovered (joinable) room names, making it easy for you to quickly see which rooms are available.
/w corresponds to: View the current list of online users, displaying all your online contacts in the same room or on the same network.
/m corresponds to: Send a private message to a specified user. The format is usually /m @ username message content, only you and the other party can see it.
/clear corresponds to: clearing all message records in the current chat window, restoring the interface to the blank state it was when first opened.
/pass corresponds to: (Owner only) Set or modify the room access password. After execution, users joining this room will need to enter the password to enter.
/transfer corresponds to: transferring ownership of the room to another online user. The new owner will gain powers such as password management, message retention, and more.
/save corresponds to: (Owner only) Switch for local message retention: When turned on, you can still view historical chats locally while offline or after restarting the App; when turned off, messages are only stored in memory and are cleared upon exit.
So when creating a room, simply enter /j, followed by the room name you want, such as “testroom”. After sending, if the room does not exist, the system will automatically create it and set you as the owner. Once created, a prompt will appear on the screen: “joined room ####testroom(created new room – you are the owner) *“
At this time, if Xiao Shuai also wants to enter this private room, he needs to type /j testroom and enter the password on the pop-up password page to enter the room.
Inside the room, there are also a series of advanced commands. By typing /pass yourSecret, a password input box will pop up, and after verification, only partners holding this set of passwords can rejoin. Only the room owner can lock the room or change the password. You can also transfer room ownership within the room by typing /transfer @ opponent ID. Once the opponent accepts, they will automatically become the new room owner, possessing all permissions for personnel management, password settings, and message retention toggle.
By default, the room messages in bitchat temporarily exist in memory; the room owner can use /save to enable or disable the “message retention” feature locally. When message retention is enabled, room history can still be seen locally even after restarting the App. Entering /save again will close retention and restore the default “session evaporates immediately” mode.
After mastering the basics of creating rooms, joining rooms, sending and receiving private messages, and viewing online users, the next step includes some advanced commands on the main page, such as clearing chat history, viewing online users, and other operations.
If you want to temporarily “clear the battlefield”, enter /clear in the command line, and you can clear all displayed messages in the current session window with one click. After cleaning, the screen will become clean as new, just like this image shows:
In the future, bitchat mesh will incorporate various transmission methods such as Wi-Fi Direct (250 Mbps, 100 meters), ultrasound, LoRa, etc., automatically switching based on network and power; and it can optionally connect to the Nostr protocol, enabling bridging between local Mesh and internet nodes, thereby expanding the communication radius.
It can be felt that bitchat perfectly inherits the three core principles of “simplicity, constraint, and craftsmanship” set by Jack Dorsey for Twitter.
This is not the first time Jack Dorsey has built a social protocol since leaving Twitter. For example, in 2024, Bluesky, which was incubated internally from Twitter under Jack Dorsey’s leadership and later became independent (he is no longer associated with Bluesky), is also a decentralized social protocol centered around “relay channels” (Relay/Channel), supporting tens of thousands of community-hosted server nodes. Theoretically, it operates similarly in mechanism to the BLE multi-hop relay of bitchat mesh.
The “trustless” spirit advocated by the Bitcoin community is deeply embedded in the design of bitchat: there are no central servers, no cloud storage, and even user identities are refreshed with each restart. Nostr’s stateless discovery mechanism, the random delay in operations… all these details are aimed at preserving the most fundamental “privacy and freedom.”
The emergence of bitchat is yet another personal practice by Jack Dorsey in favor of decentralization and freedom of information. In an era where the internet is frequently restricted and data leaks occur often, he has returned social interaction to the users themselves—allowing each conversation to be limited only by the range of Bluetooth signals, without interference from any platform, server, or intermediary.
This may be the most anticipated meaning of bitchat: it may be small and have many flaws, but from a certain perspective, it could also be the “twttr” moment in the field of encryption communication.
Share