Local Storage
All messages — channel messages, DMs, and images — are stored in a SQLite database on your device:
- Messages are written to SQLite as soon as they're sent or received
- The database persists across app restarts
- Message history loads from SQLite when you open a channel or DM conversation
- There is no practical limit to how many messages can be stored
Relay-Only Architecture
CrewTalk's message relay server acts as a pass-through:
- Your device sends a message to the WebSocket relay
- The relay broadcasts it to all connected hub members
- The relay does not store the message
- Each recipient's device saves the message locally
This design means:
- Your messages stay on your device — the server never retains them
- No server-side data to breach — there's nothing to hack
- Offline users miss messages — if someone isn't connected when a message is sent, they won't receive it later
Because messages aren't stored on the server, anyone who is offline when a message is sent will not receive it when they come back online. For critical information, confirm receipt over PTT or wait until the person is connected.
What Happens When...
You Reinstall the App
Your local SQLite database is deleted with the app. All message history is lost. You'll start fresh with no history after reinstalling.
You Switch Devices
Messages don't sync between devices. Your history on the old device stays there (until the app is removed). The new device starts with a clean history.
You Join a New Hub
You start with no message history. You'll see messages from the point you joined onward.
Your Storage Gets Full
On devices with limited storage, the SQLite database could theoretically grow large. In practice, text messages are very small. Images take more space since they're stored as local files.
Duplicate Prevention
CrewTalk prevents duplicate messages using unique message IDs:
- Each message gets a unique ID when created
- The message store checks for existing IDs before adding
- This prevents the same message from appearing twice if it's received through multiple paths (e.g., local echo + relay)
For production-critical information (call times, location changes, safety alerts), always confirm receipt verbally over PTT. Don't rely solely on text messages reaching everyone, especially crew members who may have stepped away from the app.
