Roadmap
NEXT, IN ORDER
- [ ]App screens in Rust too
The screens themselves rebuilt in Rust, looking exactly like now, on the phone and the computer (the server, the encryption and the computer app already are).
- [ ]YubiKey unlock and OpenPGP on YubiKey
Unlock the app with your YubiKey (FIDO2), and sign with an OpenPGP key that never leaves it.
- [ ]Fresh signed keys every week
Replace the key that protects the first message of new chats regularly, like Signal does.
- [ ]Leave a group on all your devices
Leaving a group on your phone also leaves it on your linked computers.
- [ ]Post-quantum status in the app
Show on each chat’s Verify screen that it is protected by PQXDH and the post-quantum Triple Ratchet.
- [ ]Voice notes
Hold to record, encrypted like everything else.
- [ ]Location sharing
Send where you are, once or for a while.
- [ ]Voice and video calls
The server already hands out the relay (TURN) details calls need. Until then the app says “coming soon”.
- [ ]Google push (optional, last)
An empty wake-up ping through Firebase, with no sender or text, only if the background connection proves unreliable.
DONE
- [x]Nothing erased or lost by surprisev0.1.96
A linked computer no longer erases itself the moment the server refuses it: it checks twice, a little apart, then asks (TRY AGAIN, or ERASE AND LINK AGAIN). An edit you leave half way (another chat, the profile, the lock screen) keeps what you had typed, and the old text no longer stays in the box to be sent again. Photos waiting above the message box stay when you look at another screen. A file sent while others upload waits its turn instead of failing, big files upload one after another, and an upload cut off by closing the app no longer blocks attachments for half an hour.
- [x]Key changes and backups done rightv0.1.96
When someone’s safety number changes you can accept the new one without claiming you compared it (“verified” now always means compared), and their OpenPGP proof is checked against the new number instead of the old one. After importing your account from a backup, the app replaces its one-time keys on the server, so the first message from someone new can always be opened.
- [x]Privacy fixesv0.1.96
A new profile picture or OpenPGP key goes only to people you write to or share a group with, never to strangers or names listed in an invite you didn’t accept, and never to blocked contacts. Blocked chats and unaccepted invites send nothing: no reactions, timer changes, retries or read receipts, and declining an invite tells only the person who sent it. A “photo” that is really sound no longer downloads and plays by itself. Link previews on computers refuse very long or odd links before looking anything up, and only reach a few different sites a minute.
- [x]Faster saving and fewer receiptsv0.1.95
The app no longer writes your chats when nothing has changed, and never runs two saves at once (so an older one can’t finish last). On computers, saving no longer reads and decrypts the whole saved history just to check it exists, so incoming messages aren’t held up behind it. “Delivered” receipts for a burst of messages go out as one, instead of one per message. (Saving each chat separately, the bigger speed-up, comes in later builds.)
- [x]No message lost if the app closes mid-wayv0.1.94
Opening a message moves its encryption on at once, but the app saves what it opened a moment later. If DoubleBit was closed or crashed in between, the server’s second copy no longer opened and the message was gone. Now every opened message is also kept, in the same step, in a small journal inside the encrypted store, and anything not yet saved is put back when the app starts.
- [x]Delivery, server limits, removing members, safer groupsv0.1.93
A message now reaches all of someone’s other devices even when one of them (a phone left off for weeks) has a full queue, shows as sent, and keeps trying that one device later. The server caps how much one account can leave waiting for everyone (so nobody can fill its disk), truly overwrites delivered messages instead of only unlinking them, and gives space back. The server’s owner can list a member’s devices, unlink one, or remove a member entirely (doublebit-server devices / remove-device / remove-account). Groups warn when two people claim to own the same group, and show a warning when a member’s safety number changed.
- [x]Fixes from the second auditv0.1.92
The “Default disappearing timer” now does what it says: it turns the timer on for chats you start from now on, and tells the other person, instead of quietly deleting messages in every older chat. Quick typo fixes are no longer ignored when someone’s clock runs a little fast. Computers show an alert for long messages too. Android stays quiet for “no sound” chats even when DoubleBit is closed. “Typing…” no longer makes the app save all your chats each time, and a message that can’t be opened for a moment (storage busy) is kept and tried again instead of being lost.
- [x]Security fixes from a full auditv0.1.91
A full review of the server, apps and encryption found nothing that lets outsiders read messages, and these are now fixed: your own devices must carry your own identity key, so even a hacked server can’t add a hidden “device” of yours to get copies of what you send; a computer linked to your phone keeps the exact keys you verified there; every safety-number change is announced; a contact can’t remove their OpenPGP key to swap it quietly; edits count from the server’s time, so old messages can’t be rewritten; name changes are announced and a copied name shows the @handle; link previews on computers are rate-limited; and server moves never jump to someone else’s name on a shared domain.
- [x]Save your public key as a filev0.1.90
On a computer, Settings › Keys › SAVE PUBLIC KEY opens the Save dialog: pick a folder and your OpenPGP public key is saved there as an .asc file (instead of being copied to the clipboard). Phones still share it.
- [x]One export buttonv0.1.89
Settings › Keys has a single EXPORT ACCOUNT · KEYS + CHATS button at the bottom; the OpenPGP section no longer repeats it, and keeps SHARE PUBLIC KEY.
- [x]Export and import your accountv0.1.88
Settings › Keys now has one export: EXPORT ACCOUNT, a single file (locked with 30 digits) holding the identity keys you registered with, your login, chats, settings and your OpenPGP key. On a new install, IMPORT MY ACCOUNT brings it all back, conversations included. The separate OpenPGP private-key export is gone; the key travels inside the account export.
- [x]Website: three phones up topv0.1.88
The top of the website shows three phones side by side: the chat list, an encrypted chat, and a contact’s page with their safety number and OpenPGP key. On a phone it keeps the two.
- [x]Message sound on Linux and Windowsv0.1.87
A new message now pings on the computer too, not only on the phone. Windows plays your own notification sound; on Linux GNOME plays its message sound, and on KDE Plasma and other desktops DoubleBit plays a short chime of its own (quiet while Do Not Disturb is on). A burst of messages pings once, and the Message sound switch and per-chat sound settings still turn it off.
- [x]Always straight to the newest versionv0.1.87
Every update is a complete build, so a phone or computer several versions behind gets only the newest one, never the ones in between. And if a newer version came out after yours was downloaded (it was asleep or offline), the one tap on Install now fetches and installs the newest instead, so you never install two updates in a row.
- [x]Website: menu stays at the top, more screenshotsv0.1.87
The website’s top bar stays in place while you scroll, and the page shows the FILES tab and the appearance settings as well as the chats.
- [x]Ready for doublebit.appv0.1.87
The apps now trust one new home for this server, doublebit.app (reached through a Cloudflare Tunnel, with no port opened at home). When the server moves there, phones and computers follow by themselves; a server can still never send them anywhere else.
- [x]A new websitev0.1.86
The server’s page says what DoubleBit is in one line, with icon buttons for Android, Windows and Linux (iPhone coming soon), two phone screenshots, the main features and how to host your own. A background of pixel locks, keys and the DoubleBit logo, fonts served by your own server, and the roadmap page in the same style.
- [x]Edit a message you sentv0.1.84
Hold (or right-click) one of your messages and choose EDIT: change the text, or a photo’s caption, and SEND saves it for everyone in the chat and on your other devices, marked “edited”. Like Signal: for 24 hours after sending, up to 10 times. Only the person who wrote a message can change it; apps older than 0.1.84 keep showing the first text.
- [x]The new icon on Linux toov0.1.83
After an update on Linux, a menu entry made for the AppImage (AppImageLauncher, Gear Lever) gets the new icon instead of the copy it kept, and the desktop is asked to reload its icons and menus. Windows also refreshes after a new version is installed by hand, not only by an update.
- [x]FILES: everything shared, in one placev0.1.83
The bottom bar’s KEYS tab is now FILES: every photo, file and link from every chat, newest first, with a search box and PHOTOS / FILES / LINKS. Tap to open, or JUMP to the message in its chat. Your keys and devices are in Settings › Keys & devices.
- [x]The new icon on the Windows taskbarv0.1.82
After an update, the computer app tells Windows its icon changed, so a pinned taskbar button and the Start menu show the black-and-white icon instead of a remembered green one.
- [x]The roadmap in Settingsv0.1.82
Settings › Roadmap shows the whole list, like the website’s: everything DoubleBit can do with the build that added it, and what comes next, in order.
- [x]An iPhone test appv0.1.81
A first DoubleBit for iPhone, to try out: installed with SideStore (or AltStore) on your own Apple ID, no App Store. It has the same Signal encryption engine as the Android app and keeps its keys in the iPhone's Keychain. Not yet: alerts while it's closed (Apple only allows those for paid developers), linking a computer, backups and updates (SideStore installs new versions).
- [x]Exporting your OpenPGP key on the computerv0.1.81
EXPORT PRIVATE no longer asks the computer for a phone screen lock it doesn't have. It asks for your DoubleBit PIN instead, when the app's screen lock is on.
- [x]Screenshots on the website fit the screenv0.1.81
The website's screenshots sit in a grid (five across on a computer, two on a phone) instead of a strip you had to scroll sideways; tap one to see it full size.
- [x]A list of people when you type @v0.1.80
Typing @ in a group opens a list just above the message box with everyone whose name matches what you’ve typed (all of them, even in a group of 100), each with their picture. The chosen one is shown inverted: arrow keys move it, Tab or Enter puts the name in.
- [x]OpenPGP messages in chatsv0.1.80
Paste a message locked to someone's OpenPGP key (made in DoubleBit or any OpenPGP app) into a chat, and their app opens it with their key by itself, under a label saying it came through OpenPGP and whose key signed it. On a contact's profile, WRITE AN OPENPGP MESSAGE locks your words to their key, to send in the chat or copy anywhere.
- [x]OpenPGP keys on profilesv0.1.80
Make (or link) your OpenPGP key right from your profile, and your contacts see it on your profile in their app: its fingerprint, whether it signed your DoubleBit identity, and a button to share the public key.
- [x]Back up and restore on the computerv0.1.80
Keys → EXPORT ENCRYPTED BACKUP now works on Windows and Linux too: your account, keys and chats in one file, locked with 30 digits you write down (and your app PIN, if you use the screen lock). A new computer restores it from its first screen. It’s the same file as the phone’s, so a backup made on one should open on the other.
- [x]Updates download by themselvesv0.1.80
A new version downloads in the background on the phone and the computer. The card at the top then says UPDATE READY: one tap installs it and restarts.
- [x]Pictures beside names in chatsv0.1.80
Inside a chat, everyone’s picture now sits beside their name, the same size and square look as in the chat list, at the start of each run of messages from them.
- [x]Mono by defaultv0.1.80
New installs start in black and white (MONO), with a matching app icon on the phone and the computer. Anyone who picked a colour keeps it; PHOSPHOR green is still one tap away in Appearance.
- [x]A new look for the websitev0.1.80
The server’s pages are black and white now, and explain what DoubleBit is, how it’s built in Rust and how to host your own, with screenshots of a demo install.
- [x]Ctrl+V pastes screenshots on Linuxv0.1.79
A screenshot or picture copied on Linux now pastes into a chat with Ctrl+V, the same as on Windows.
- [x]Safer linksv0.1.79
A link to your own device or home network, a bare IP address, a name written in look-alike letters, or an unencrypted http:// site now asks before it opens, and shows where it really goes. Hidden text-direction marks can no longer disguise a link, and a message stuffed with a giant fake link can no longer freeze the chat.
- [x]Safer pictures and filesv0.1.79
A photo, profile picture or link preview that claims an enormous size is no longer drawn (it could have crashed the app); it’s offered as a file instead. Saved file names are cleaned the same way on phone and computer (no hidden characters, device names or over-long names), a save never replaces a file already in Downloads, GIFs lose anything hidden in their looping block, and odd attachment ids are refused.
- [x]Dropping files works on Linux, and many more file typesv0.1.79
Files dragged onto a chat on Linux no longer say “couldn’t be read”. DoubleBit now knows about 150 kinds of file by name (pictures, RAW photos, videos, sounds, office documents, e-books, archives, programs, fonts), so each one goes as a photo or a file correctly. BMP pictures go as photos; TIFF, SVG, RAW and Photoshop files go as files, exactly as they are.
- [x]No flags in the emoji pickerv0.1.78
The FLAGS page of emoji is gone from the picker.
- [x]Connection line only when it mattersv0.1.78
The chat list’s connected · server line shows for 2 seconds when the list opens, then slides away. When the connection drops it slides down (red) and stays until you’re back online.
- [x]Add people to a groupv0.1.76
The group’s owner (who made it) can add people later: Group info › + ADD PEOPLE. They get an invite, see messages from then on, and everyone in the group sees who was added. Only the owner’s additions count.
- [x]Unread chats on topv0.1.76
Chats with messages you haven’t read move to the top of the list. Settings › Appearance › Unread chats inverted fills them with your colour so they stand out even more.
- [x]Drag and drop on Linuxv0.1.76
Dropping photos and files on a chat works on Linux too (it put the file’s address in the message box). Files up to 100 MB; bigger ones go through the + button.
- [x]Reopens after an update on Linuxv0.1.76
After UPDATE READY the computer app closes, updates and opens again by itself on Linux too, like on Windows (from the next update on).
- [x]Update card waits for unlockv0.1.76
With screen lock on, the update card shows only once you have unlocked the app.
- [x]What’s new after every updatev0.1.70
After an update restarts the app, it lists what that update added, the same way as this page (scroll if it’s long). FULL ROADMAP opens this page.
- [x]Message sound switchv0.1.68
Settings › Notifications › Message sound turns the ping off everywhere: on the computer, and on the phone whether DoubleBit is open or closed. Alerts and badges still come.
- [x]Drag and drop filesv0.1.68
Drag photos and files onto a chat on the computer, as many as you like (up to 10 per send). They wait above the box so you can add a caption, or send them as they are.
- [x]Phones and computers update togetherv0.1.68
A new version reaches phones and computers at the same moment, and the update card shows up within about half a minute.
- [x]@mentions in groupsv0.1.63
Type @ in a group to pick someone from the members. Their name is highlighted, and they get an alert even if they muted the group.
- [x]Emoji from textv0.1.63
Type : and a few letters (:smi, :fire) for matching emoji; text faces like :) :D <3 turn into emoji as you type.
- [x]Note to Selfv0.1.63
A chat with only you in it, on all your linked devices: notes, links, photos and files you want to keep. Nobody else ever gets them.
- [x]Updates when you say sov0.1.59
A card slides down at the top: UPDATE AVAILABLE (tap to download), then UPDATE READY (tap to install and restart). Nothing downloads or installs by itself.
- [x]The window remembers its placev0.1.59
The computer app opens at the size and position you left it, maximised or not.
- [x]Unread badge on Linuxv0.1.59
The taskbar icon shows the unread count and asks for attention on KDE Plasma (X11 and Wayland), the Ubuntu dock and Dash to Dock.
- [x]Sound off for one chatv0.1.59
Chat info › Notification sound: turn the ping off for one person or group; alerts and badges stay.
- [x]Files up to 5 GBv0.1.57
Big files go in encrypted pieces and carry on where they stopped if the connection drops. Up to 100 MB opens in the app; bigger ones save to your Downloads.
- [x]Typing in the conversationv0.1.57
The open chat shows who is typing with the same stepping pixel squares as the chat list.
- [x]Shared Media shows your photosv0.1.54
Chat info › Shared Media shows the real photos and files (it showed grey squares); a tap opens them.
- [x]Links and previewsv0.1.53
Links are tappable; the message menu can OPEN or COPY them. A preview card is made by the sender’s device (Settings › Privacy › Link previews).
- [x]Profile and group picturesv0.1.53
Pick a picture for yourself; it goes end-to-end encrypted to your contacts. Only a group’s owner can change its picture.
- [x]Accept or decline group invitesv0.1.53
Being added to a group asks first: ACCEPT or DECLINE. Nothing is sent and no read receipts go out until you accept.
- [x]Typing in the chat listv0.1.53
The chat list shows who is typing in each chat.
- [x]Keep running in the trayv0.1.53
Closing the computer app asks once whether to keep it running in the system tray, so message previews still pop up.
- [x]Captions on photos and filesv0.1.50
Photos, files and camera shots wait above the message box; what you type goes with them as a caption, or send them on their own.
- [x]One delete, everywherev0.1.50
Deleting your own message removes it for everyone and on all your devices.
- [x]Zoom everythingv0.1.50
Pinch, or Ctrl + mouse wheel, makes photos, names, times and reactions bigger or smaller along with the text.
- [x]Unread badge on CHATSv0.1.50
The CHATS tab shows how many messages you haven’t seen, wherever you are in the app.
- [x]New scanner and a clear resultv0.1.50
The QR scanner dims everything outside the frame and has an X to cancel; VERIFIED, NO MATCH or LINKED shows right after a scan.
- [x]Invite codes fill in the dashesv0.1.50
Type an invite code without dashes; the box adds them.
- [x]App icon in your own colourv0.1.50
A custom Appearance colour changes the app icon to the nearest of 24 colours.
- [x]Signal engine in Rust on the phonev0.1.45
The phone’s encryption now runs in Rust, inside an encrypted vault locked by the Android Keystore. Keys and chats moved over by themselves.
- [x]Computer app rebuilt in Rustv0.1.44
A new, smaller and faster computer app (Windows and Linux). It links to your phone, or makes its own account on the computer.
- [x]DoubleBit on the new Rust serverv0.1.40
The server was rebuilt in Rust, and the phone app became its own app (net.doublebit.app). Everyone signed up again on the new server; 0.1.28 stays as the restore point.
- [x]Updates install themselvesv0.1.28
Phone: a new version downloads by itself and installs a few minutes after you leave the app, no tap needed (Android 12+); tap the banner to update right away. Computer: installs when you close it, or by itself while the computer is idle or locked. Every app checks the moment a new build is published. Phones on 0.1.22 or older: install this version once from the download page.
- [x]Reply and delete for everyonev0.1.28
Hold (or right-click) a message: REPLY quotes it above yours, and DELETE FOR EVERYONE removes your own message from everyone’s chat and your other devices.
- [x]Messages wait for the networkv0.1.28
With no connection, messages, photos and files you send wait on the device (“waiting for network”) and go out by themselves as soon as you’re back online.
- [x]Desktop: select text, taskbar flashv0.1.28
Select message text with the mouse and copy it (right-click › COPY SELECTION, or Ctrl+C). The taskbar button flashes for a new message while DoubleBit is minimised or behind other windows.
- [x]Which version each device runsv0.1.28
Keys › Linked devices shows the app version of each of your devices, so you can see they all updated.
- [x]Security and speed reviewv0.1.28
A full scan of server, phone and desktop. Fixed: a message with a bogus time could break a chat, messages could be acknowledged before they were saved, photos of unusual types could go out with their hidden data, disguised file names, a removed device could act for a few seconds. Long chats now scroll and type smoothly, photos load as you reach them, and the server writes less to disk.
- [x]Updates that finish (computers)v0.1.26
Fixed how “restart to update” starts its installer helper on Windows (0.1.23 and 0.1.24 couldn’t start it and said so); the computer now closes, updates and reopens by itself. If you have 0.1.23 or 0.1.24, install this version once from the download page.
- [x]Tidier desktop appv0.1.26
The desktop app now ships only what it runs: no source code, tests or build tools inside.
- [x]QR scanner in your colourv0.1.24
The camera screen for linking a computer and checking safety codes uses your Appearance colour too.
- [x]Updates that finishv0.1.23
Windows: “restart to update” installs into the folder DoubleBit runs from, reopens the new version by itself and checks it really is the new one; shortcuts left pointing at an old copy are fixed. Phone: in-app updates download again (a bug refused every update with “bad update details”).
- [x]12- or 24-hour clock and time zonev0.1.23
Settings › Appearance: 12-hour (3:31 pm) or 24-hour (15:31) times, in your phone’s time zone or one you pick.
- [x]Notifications in your colourv0.1.23
Message alerts, the lock-screen notice and the first screen use your Appearance colour (mono too), not always green.
- [x]Scrollbar for long chatsv0.1.23
A thin bar in your colour on the right whenever a chat or list is longer than the screen.
- [x]DoubleBit everywherev0.1.23
No more “Terminal Talk”: program and data folders, downloads, updates and backups are all named DoubleBit. Installed apps move over by themselves and stay linked.
- [x]Security audit fixesv0.1.22
A full review of the server, phone, desktop and build setup. Fixed: a remote way to crash the server, limits so nobody can flood your messages or drain your keys, safety-number checks on every send, safer linking, and hardened servers and build scripts.
- [x]Safety-number check on every sendv0.1.22
If a contact’s key changes (a reinstall, or someone trying to sit in the middle), nothing is sent to them until you verify the new safety number.
- [x]Several photos at oncev0.1.22
Pick many photos from the gallery in one go; arrows in the full-screen view step through a chat’s photos.
- [x]Paste into the chatv0.1.22
On a computer, paste a screenshot or image straight into a chat; it waits above the box until you press SEND.
- [x]Play audio in the chatv0.1.22
Audio files play right in the conversation instead of having to be saved first.
- [x]Hold a message for optionsv0.1.22
Press and hold (or right-click) a message to react, copy it, delete it or see when it was sent.
- [x]Smoother updates and alertsv0.1.22
No more red dot from the background connection; unread alerts show a count; the fingerprint prompt appears by itself.
- [x]Take photos in the chatv0.1.19
CAMERA in a chat opens the phone’s camera and sends the picture straight away.
- [x]Photos without hidden datav0.1.19
Every photo you send (camera or gallery, GIFs too) has its metadata removed first: no GPS location, phone model or time. Photos are also shrunk to a sharp 2560 px. FILE still sends a file exactly as it is.
- [x]New link: doublebit.tail879299.ts.netv0.1.19
Installed apps move to the new address by themselves, after checking it’s really the same server. The old link keeps working meanwhile.
- [x]Screen lock fixedv0.1.17
Using the photo picker or share sheet no longer leaves the app unlocked for minutes afterwards.
- [x]Now called DoubleBitv0.1.15
New name everywhere you see it; installed apps update and stay linked.
- [x]Bigger desktop iconv0.1.15
The green bubble fills the icon on the taskbar and desktop.
- [x]Updates before linkingv0.1.14
A computer that isn’t linked yet, or was unlinked, still gets updates.
- [x]Updates itselfv0.1.12
Phone: one tap installs the new version from your server (checked against this app’s signing key). Desktop: downloads in the background and installs on restart, only if signed with your build key.
- [x]Alerts only when it mattersv0.1.12
Pings only for new messages and reactions to your messages, never for read receipts, typing or your own devices. Blocked and muted people stay quiet.
- [x]Our icon in notificationsv0.1.12
The green bubble everywhere, and the “connected” notice can be hidden.
- [x]OpenPGP identityv0.1.9
Make a key on your phone or import your own. It signs your handle, server and Signal key, and contacts see it on their Verify screen, with a warning if it ever changes.
- [x]YubiKey detectionv0.1.9
Tap or plug in a YubiKey to see its model, firmware and which features are on.
- [x]Photo viewerv0.1.9
Tap a photo to open it full screen: pinch to zoom, drag, double tap, X to close.
- [x]Chat text zoomv0.1.9
Pinch a chat to change its text size (also under Appearance).
- [x]Unlinking signs the desktop outv0.1.9
An unlinked PC goes straight back to the link screen.
- [x]Reliable QR codesv0.1.6
Link and safety codes scan first time, in any light.
- [x]Desktop app for Windows and Linuxv0.1.5
Links to your phone by QR code. Each device has its own keys and gets copies of what you send.
- [x]Bit Lock app iconv0.1.5
A second app icon to choose from.
- [x]Fingerprint unlockv0.1.3
Erasing your account needs your phone lock too.
- [x]QR safety-number checkv0.1.3
Scan a contact’s code to prove nobody is in the middle.
- [x]Alerts while the app is closedv0.1.3
A background connection to your own server. No Google push.
- [x]Encrypted backupsv0.1.3
Export and restore your chats with a 30-digit passphrase.
- [x]Server watchdogv0.1.3
Restarts the server or the Funnel if either stops.
- [x]Post-quantum encryptionv0.1.2
Chats start with PQXDH (X25519 + ML-KEM) and keep running Signal’s Triple Ratchet: fresh ML-KEM secrets are mixed into the keys alongside the classic X25519 ratchet, so recorded messages stay safe even against a future quantum computer. Checked by the tests on every build.
- [x]Android appv0.1.2
Chats, groups, photos and files, reactions, read receipts, typing, disappearing messages, invites and app lock. Keys are sealed by the Android Keystore.
- [x]App icon follows your colourv0.1.2
The launcher icon matches the Appearance colour, including black and white.
- [x]Self-hosted encrypted serverv0.1.1
Signal’s own encryption (PQXDH + Double Ratchet). Invite-only accounts; messages are deleted once delivered and the server never sees what they say.