Identity and discovery
Every completed profile receives an SK-ID. Users search by that identifier instead of exposing a phone number in the application. Nicknames and avatars help participants recognize contacts, while the underlying Firebase user ID keeps records linked consistently even when visible profile details change.
Google Sign-In
Authentication is delegated to Google through Firebase Authentication. New users and returning users use the same button; the app decides whether profile setup is required.
Unique SK-ID
The generated identifier is checked against the lookup collection before the profile and mapping are written together.
Conversation management
One-to-one conversations can be started or reopened through SK-ID search. Group conversations support names, pictures, membership management and administrator roles. Conversation cards show current previews and unread information calculated from message state.
Deleting or expiring every message does not automatically delete the conversation document. The contact connection remains available with an empty history. This behavior is deliberate and avoids stale previews or disappearing participants after maintenance cleanup.
Message tools
- Send text messages with a seven-day expiry timestamp.
- Reply to an existing message and jump back to the available original.
- Edit a message within the configured fifteen-minute window.
- Unsend a recent message where permissions and time limits allow.
- Delete a message only from your own view.
- Add one of the supported reactions.
- See message date, time and read-state indicators when the data is available.
Profile controls
Users can update their nickname, upload a small compressed avatar, copy their SK-ID, review blocked users and configure browser notifications. Avatar images are compressed before being stored in the profile so that enormous uploads do not turn a chat database into an accidental photo archive.
Safety and moderation
Message menus support reporting. Users can block and later unblock contacts. Administrators can review reports, apply temporary suspensions, permanently block accounts, remove messages and record moderation details. Moderation exists to manage abuse; it also means administrators may access reported or stored information within their granted permissions.
Maintenance and consistency
Administrative maintenance can scan expired messages in bounded batches. After deletion, Silent Key rebuilds each affected conversation summary. If no active message remains, it clears the last-message preview, timestamp, sender and unread counts while preserving the participant connection. The app also hides expired previews defensively even before cleanup completes.
Announcements without GitHub
The in-app announcement bar reads one Firestore document at appConfig/announcement. Administrators can enable or disable it and select an information, success, warning or danger presentation. The application no longer downloads announcement text from a public GitHub repository.
Reliability and error handling
The sign-in button prevents duplicate requests while authentication is in progress and provides specific messages for cancelled popups, blocked popups, network failures and unauthorized Firebase domains. Profile setup also uses a submission lock so rapid clicks or the Enter key cannot start overlapping profile writes. Existing partial profile fields are merged rather than blindly replaced, reducing the chance that moderation or older account data is erased during setup.
Database reads and profile creation use time limits so the interface can recover from requests that never finish. Error messages distinguish a temporary network problem from a Firestore permission problem, which matters because repeatedly clicking a broken button is not a debugging strategy, merely cardio for the index finger.