Send a friendly unencrypted invite before starting a secure connection
In order avoid the scary wall of encrypted text that people recieve if you try to send encrypted messages to them when they don't have Signal, first send a friendly unencrypted invite such as:
"John Smith wants to send you an encrypted message. Download Silence to receive it: https://silence.im"
If they already have Silence, then the app will recognize the unencrypted message and respond with a confirmation that they received it. Then the normal handshake can take place. If the sender does not receive the confirmation message after a short time (especially if a delivery report was received), then Signal should display a timeout error to the user.I think this small change would greatly improve the quality of life for your users.