[{"data":1,"prerenderedAt":237},["ShallowReactive",2],{"i-ph:moon-bold":3,"i-ph:globe-simple":8,"i-ph:caret-down":10,"i-ph:list":12,"i-ph:heart-fill":14,"i-ph:discord-logo-bold":16,"i-ph:github-logo-bold":18,"i-ph:cookie-bold":20,"feature-article-en-chat-mobile":22,"i-ph:arrow-left":231,"i-ph:device-mobile-bold":233,"i-ph:monitor-bold":235},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,256,false,"\u003Cpath fill=\"currentColor\" d=\"M236.37 139.4a12 12 0 0 0-12-3A84.07 84.07 0 0 1 119.6 31.59a12 12 0 0 0-15-15a108.86 108.86 0 0 0-54.91 38.48A108 108 0 0 0 136 228a107.1 107.1 0 0 0 64.93-21.69a108.86 108.86 0 0 0 38.44-54.94a12 12 0 0 0-3-11.97m-49.88 47.74A84 84 0 0 1 68.86 69.51a84.9 84.9 0 0 1 23.41-21.22Q92 52.13 92 56a108.12 108.12 0 0 0 108 108q3.87 0 7.71-.27a84.8 84.8 0 0 1-21.22 23.41\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":9},"\u003Cpath fill=\"currentColor\" d=\"M128 24a104 104 0 1 0 104 104A104.12 104.12 0 0 0 128 24m87.62 96h-39.83c-1.79-36.51-15.85-62.33-27.38-77.6a88.19 88.19 0 0 1 67.22 77.6ZM96.23 136h63.54c-2.31 41.61-22.23 67.11-31.77 77c-9.55-9.9-29.46-35.4-31.77-77m0-16c2.31-41.61 22.23-67.11 31.77-77c9.55 9.93 29.46 35.43 31.77 77Zm11.36-77.6C96.06 57.67 82 83.49 80.21 120H40.37a88.19 88.19 0 0 1 67.22-77.6M40.37 136h39.84c1.82 36.51 15.85 62.33 27.38 77.6A88.19 88.19 0 0 1 40.37 136m108 77.6c11.53-15.27 25.56-41.09 27.38-77.6h39.84a88.19 88.19 0 0 1-67.18 77.6Z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":11},"\u003Cpath fill=\"currentColor\" d=\"m213.66 101.66l-80 80a8 8 0 0 1-11.32 0l-80-80a8 8 0 0 1 11.32-11.32L128 164.69l74.34-74.35a8 8 0 0 1 11.32 11.32\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":13},"\u003Cpath fill=\"currentColor\" d=\"M224 128a8 8 0 0 1-8 8H40a8 8 0 0 1 0-16h176a8 8 0 0 1 8 8M40 72h176a8 8 0 0 0 0-16H40a8 8 0 0 0 0 16m176 112H40a8 8 0 0 0 0 16h176a8 8 0 0 0 0-16\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":15},"\u003Cpath fill=\"currentColor\" d=\"M240 102c0 70-103.79 126.66-108.21 129a8 8 0 0 1-7.58 0C119.79 228.66 16 172 16 102a62.07 62.07 0 0 1 62-62c20.65 0 38.73 8.88 50 23.89C139.27 48.88 157.35 40 178 40a62.07 62.07 0 0 1 62 62\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":17},"\u003Cpath fill=\"currentColor\" d=\"M108 136a16 16 0 1 1-16-16a16 16 0 0 1 16 16m56-16a16 16 0 1 0 16 16a16 16 0 0 0-16-16m76.07 76.56l-67 29.71A20.15 20.15 0 0 1 146 214.9l-8.54-23.13c-3.13.14-6.27.24-9.45.24s-6.32-.1-9.45-.24L110 214.9a20.19 20.19 0 0 1-27.08 11.37l-67-29.71a19.93 19.93 0 0 1-11.3-23.15L34.15 57a20 20 0 0 1 16.22-14.81l36.06-5.93a20.26 20.26 0 0 1 22.79 14.84l4.41 17.41c4.74-.33 9.52-.51 14.37-.51s9.63.18 14.37.51l4.41-17.41a20.25 20.25 0 0 1 22.79-14.84l36.06 5.93A20 20 0 0 1 221.85 57l29.53 116.38a19.93 19.93 0 0 1-11.31 23.18M227.28 176L199.23 65.46l-30.07-4.94l-2.84 11.17c2.9.58 5.78 1.2 8.61 1.92a12 12 0 1 1-5.86 23.27A168.4 168.4 0 0 0 128 92a168.4 168.4 0 0 0-41.07 4.88a12 12 0 0 1-5.86-23.27c2.83-.72 5.71-1.34 8.61-1.92l-2.83-11.17l-30.08 4.94L28.72 176l60.22 26.7l5-13.57c-4.37-.76-8.67-1.65-12.88-2.71a12 12 0 0 1 5.86-23.28A168.4 168.4 0 0 0 128 168a168.4 168.4 0 0 0 41.07-4.88a12 12 0 0 1 5.86 23.28c-4.21 1.06-8.51 1.95-12.88 2.71l5 13.57Z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":19},"\u003Cpath fill=\"currentColor\" d=\"M212.62 75.17A63.7 63.7 0 0 0 206.39 26A12 12 0 0 0 196 20a63.71 63.71 0 0 0-50 24h-20a63.71 63.71 0 0 0-50-24a12 12 0 0 0-10.39 6a63.7 63.7 0 0 0-6.23 49.17A61.5 61.5 0 0 0 52 104v8a60.1 60.1 0 0 0 45.76 58.28A43.66 43.66 0 0 0 92 192v4H76a20 20 0 0 1-20-20a44.05 44.05 0 0 0-44-44a12 12 0 0 0 0 24a20 20 0 0 1 20 20a44.05 44.05 0 0 0 44 44h16v12a12 12 0 0 0 24 0v-40a20 20 0 0 1 40 0v40a12 12 0 0 0 24 0v-40a43.66 43.66 0 0 0-5.76-21.72A60.1 60.1 0 0 0 220 112v-8a61.5 61.5 0 0 0-7.38-28.83M196 112a36 36 0 0 1-36 36h-48a36 36 0 0 1-36-36v-8a37.87 37.87 0 0 1 6.13-20.12a11.65 11.65 0 0 0 1.58-11.49a39.9 39.9 0 0 1-.4-27.72a39.87 39.87 0 0 1 26.41 17.8a12 12 0 0 0 10.1 5.53h32.35a12 12 0 0 0 10.11-5.53a39.84 39.84 0 0 1 26.41-17.8a39.9 39.9 0 0 1-.4 27.72a12 12 0 0 0 1.61 11.53A37.85 37.85 0 0 1 196 104Z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":21},"\u003Cpath fill=\"currentColor\" d=\"M167.31 160.69a16 16 0 1 1-22.62 0a16 16 0 0 1 22.62 0m-86.62-8a16 16 0 1 0 22.62 0a16 16 0 0 0-22.62 0m14.62-33.38a16 16 0 1 0-22.62 0a16 16 0 0 0 22.62 0m48-6.62a16 16 0 1 0 0 22.62a16 16 0 0 0 0-22.62M236 128A108 108 0 1 1 128 20a12 12 0 0 1 12 12a36 36 0 0 0 36 36a12 12 0 0 1 12 12a36 36 0 0 0 36 36a12 12 0 0 1 12 12m-24.67 10.65A60.17 60.17 0 0 1 165 91a60.17 60.17 0 0 1-47.66-46.32a84 84 0 1 0 94 94Z\"\u002F>",{"id":23,"title":24,"body":25,"category":35,"date":219,"description":220,"extension":221,"featureKey":222,"meta":223,"navigation":224,"path":225,"platform":226,"readingTime":227,"seo":228,"stem":229,"__hash__":230},"features_en\u002Ffeatures\u002Fchat\u002Fmobile.md","Encrypted P2P Chat on Android",{"type":26,"value":27,"toc":209},"minimark",[28,37,40,55,60,100,104,143,147,161,165,188,192],[29,30,31,32,36],"p",{},"The ",[33,34,35],"strong",{},"Chat"," screen is PlainApp's built-in peer-to-peer messenger. Open it and you'll see a list of every other PlainApp device on your network — paired peers, unpaired peers waiting to be paired, and any channels (group chats) you've joined or created. Tap one and you're in a conversation view with message bubbles, file attachments, and a per-message encryption indicator.",[29,38,39],{},"Chat runs entirely on the phone. There is no central server, no account, no phone number lookup. Messages travel directly from your device to the peer device over the best transport available — Wi-Fi Aware when both devices support it, the local network otherwise, with Bluetooth Low Energy as a fallback for discovery. Every message is end-to-end encrypted, and the keys never leave the devices that produced them.",[41,42,43,50],"screenshot-row",{},[29,44,45],{},[46,47],"img",{"alt":48,"src":49},"Screenshot: Chat","\u002Ffeatures\u002Fchat\u002Fm\u002Fchat-list.webp?w=240",[29,51,52],{},[46,53],{"alt":48,"src":54},"\u002Ffeatures\u002Fchat\u002Fm\u002Fchat.webp?w=240",[56,57,59],"h2",{"id":58},"key-capabilities","Key capabilities",[61,62,63,70,76,82,88,94],"ul",{},[64,65,66,69],"li",{},[33,67,68],{},"Direct peer-to-peer messaging"," — text and files sent straight from your device to another PlainApp device, with no relay in the middle.",[64,71,72,75],{},[33,73,74],{},"Channels (group chat)"," — create a channel and invite paired peers. Channel messages are encrypted for every member individually.",[64,77,78,81],{},[33,79,80],{},"File attachments"," — attach photos, documents, or any file from the Files screen. Files are encrypted and sent over the same transport as text.",[64,83,84,87],{},[33,85,86],{},"Per-message encryption indicator"," — each message shows a lock icon once it's been encrypted and acknowledged by the peer.",[64,89,90,93],{},[33,91,92],{},"Transport fallback"," — messages pick the best available transport automatically: LAN, Wi-Fi Aware, or BLE for discovery.",[64,95,96,99],{},[33,97,98],{},"Long messages as files"," — anything over 2048 characters is automatically sent as an encrypted text file instead of a text bubble.",[56,101,103],{"id":102},"walkthrough","Walkthrough",[105,106,107,113,119,125,131,137],"ol",{},[64,108,109,112],{},[33,110,111],{},"Open the Chat tab"," from the bottom navigation bar. The list shows the local chat (your own device), any channels you've joined, and paired peers with online status.",[64,114,115,118],{},[33,116,117],{},"Tap a paired peer"," to open the conversation. If a peer is unpaired, tap it to start the pairing flow — scan the peer's QR code or accept the pairing request.",[64,120,121,124],{},[33,122,123],{},"Type a message"," in the input bar at the bottom and press send. The lock icon next to the message shows the encryption state; it confirms once the peer acknowledges receipt.",[64,126,127,130],{},[33,128,129],{},"Attach a file"," — tap the attachment button and pick a file from the Files screen. The file is encrypted and uploaded to the peer over the active transport.",[64,132,133,136],{},[33,134,135],{},"Check the encryption indicator"," — tap and hold a sent message to see its delivery status, encryption key fingerprint, and the transport used.",[64,138,139,142],{},[33,140,141],{},"Switch transport"," — if a peer is reachable over both LAN and Wi-Fi Aware, the conversation auto-selects the faster one. Pull to refresh to force a reconnect.",[56,144,146],{"id":145},"tips-tricks","Tips & tricks",[61,148,149,152,155,158],{},[64,150,151],{},"Pair both devices once and they stay paired. Paired peers reconnect automatically when they're on the same network again.",[64,153,154],{},"Create a channel to group-message multiple peers at once. Each member receives an individually-encrypted copy of every message.",[64,156,157],{},"If a message fails to send, tap it to open the delivery status modal and retry without retyping.",[64,159,160],{},"Long messages (over 2048 characters) are sent as encrypted text files automatically — no need to split them yourself.",[56,162,164],{"id":163},"privacy-security-notes","Privacy & security notes",[61,166,167,174,181],{},[64,168,169,170,173],{},"Messages are end-to-end encrypted with ",[33,171,172],{},"XChaCha20-Poly1305",". Keys are derived per-conversation and never leave the participating devices.",[64,175,176,177,180],{},"Each device signs its messages with an ",[33,178,179],{},"Ed25519"," key. The peer verifies the signature against the sender's public key, which is exchanged at pairing time.",[64,182,183,184,187],{},"Pairing uses ",[33,185,186],{},"ECDH P-256"," key exchange to establish a shared secret. The pairing handshake happens over a QR-code scan or a short-lived local channel; there is no central server involved at any step.",[56,189,191],{"id":190},"related-features","Related features",[61,193,194,202],{},[64,195,196,201],{},[197,198,200],"a",{"href":199},"\u002Ffeatures\u002Fchat\u002Fweb","Encrypted P2P Chat in the Web Dashboard"," — the same chat surface in a browser, for when your phone is across the room.",[64,203,204,208],{},[197,205,207],{"href":206},"\u002Ffeatures\u002Ffiles\u002Fmobile","File Management on Android"," — pick files to attach to chat messages from the Files screen.",{"title":210,"searchDepth":211,"depth":211,"links":212},"",3,[213,215,216,217,218],{"id":58,"depth":214,"text":59},2,{"id":102,"depth":214,"text":103},{"id":145,"depth":214,"text":146},{"id":163,"depth":214,"text":164},{"id":190,"depth":214,"text":191},"2025-08-01","Send text and files directly to other PlainApp devices on your network. End-to-end encrypted with XChaCha20-Poly1305, no central server.","md","chat",{},true,"\u002Ffeatures\u002Fchat\u002Fmobile","mobile","5 min read",{"title":24,"description":220},"features\u002Fchat\u002Fmobile","TXbW5_NM0GMydi24qM0xWUZQoES-dOo6aP1nbdedREo",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":232},"\u003Cpath fill=\"currentColor\" d=\"M224 128a8 8 0 0 1-8 8H59.31l58.35 58.34a8 8 0 0 1-11.32 11.32l-72-72a8 8 0 0 1 0-11.32l72-72a8 8 0 0 1 11.32 11.32L59.31 120H216a8 8 0 0 1 8 8\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":234},"\u003Cpath fill=\"currentColor\" d=\"M176 12H80a28 28 0 0 0-28 28v176a28 28 0 0 0 28 28h96a28 28 0 0 0 28-28V40a28 28 0 0 0-28-28M76 76h104v104H76Zm4-40h96a4 4 0 0 1 4 4v12H76V40a4 4 0 0 1 4-4m96 184H80a4 4 0 0 1-4-4v-12h104v12a4 4 0 0 1-4 4\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":236},"\u003Cpath fill=\"currentColor\" d=\"M208 36H48a28 28 0 0 0-28 28v112a28 28 0 0 0 28 28h160a28 28 0 0 0 28-28V64a28 28 0 0 0-28-28m4 140a4 4 0 0 1-4 4H48a4 4 0 0 1-4-4V64a4 4 0 0 1 4-4h160a4 4 0 0 1 4 4Zm-40 52a12 12 0 0 1-12 12H96a12 12 0 0 1 0-24h64a12 12 0 0 1 12 12\"\u002F>",1788009009464]