# shSMS

![shSMS](https://2271095790-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MkEqfPApcEHhLd8Bwvl%2F-MkEub49VSt2V7mFKKTn%2F-MkHk9k-NHCFm6FNhYHZ%2Flogo-01.png?alt=media\&token=90a13fb5-77fd-4c69-a42b-ec4021b739d1)

An app designed to run as a native application on the Android operating system and allow you to communicate via SMS.

**Please note:** This app makes several assumptions about you as a user. First and foremost, it assumes you are following the steps in Chapter Two (p.33) of Michael Bazzell's Book "Extreme Privacy: What It Takes To Disappear (Third Edition)". By that assumption, it is assumed that you have a Google Pixel device running GrapheneOS, a Twilio account with at least one phone number and access to a computer with Linux installed.

#### What this app is not:

* shSMS is NOT an end to end encrypted messaging service. Yes, the messages are stored on your personal database and you have full control over those, but the person you're communicating with, (presumably) is using a standard mobile device with a "traditional" cellular service provider, ie: AT\&T, Verizon, etc. There is absolutely nothing that can be done to stop those providers from storing your data. Just a fact of life we all have to deal with.
* shSMS is not intended to be 100% private, even on your end (depending on how you host). Your messages go through Twilio. You can delete them, but still, they must go through Twilio servers at some point in order to get to you. Think of it as a tool to help you stay more *anonymous*
* If you choose to host your server on Heroku: Heroku is now owned by Salesforce. Salesforce is a beast when it comes to data. Assume they have *everything* that comes through their servers and are using it.
* If you choose to host your database on mLab (mongodb) your data is also in their hands. And they give you the option to use servers owned by Amazon, Google or Microsoft. Sooo there's also that. We can encrypt our entries before they go in to the database (to be implemented soon), but the fact remains that even though we're "self-hosting" away from the major providers, we're still depending on someone else to hold on to our information.

#### Now tell me what it can do

* Send and receive SMS (text messages) with people who are using a standard mobile device.
* Send and receive MMS (Multimedia Messaging Service) with people who are using a standard mobile device.
* Recieve push notifications when a new message is received. An alert will show and the device will vibrate and/or chime when a new message is recieved just like you would expect, but without any Google services.
* Run on any computer locally (not hosted publically on the internet) and have the same functionality as the native Android app with updates in real-time.
* Switch themes. Because, we can I guess...
* Receive/send messages from multiple phone numbers with a single instance of the app across all devices.
* Import device contacts (read only) and send message.

![Contact List](https://2271095790-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MkEqfPApcEHhLd8Bwvl%2F-MkEub49VSt2V7mFKKTn%2F-MkHkCJj2scsrWGFcH0a%2Fcontact-list.png?alt=media\&token=b5514c03-992a-4fd9-a2ea-4b5e5d5cf4c4) ![Messages](https://2271095790-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MkEqfPApcEHhLd8Bwvl%2F-MkEub49VSt2V7mFKKTn%2F-MkHkBWKOCpnbDbviYWq%2Fmessage-01.png?alt=media\&token=2c92c97d-30a1-4fc9-a652-9360eed1e21b) ![Settings](https://2271095790-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MkEqfPApcEHhLd8Bwvl%2F-MkEub49VSt2V7mFKKTn%2F-MkHkAmUDZFM8JhInBuF%2Fsettings-01.png?alt=media\&token=d21bd8ef-f3b0-4e73-992c-3ab506744ccd) ![Notification](https://2271095790-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MkEqfPApcEHhLd8Bwvl%2F-MkEub49VSt2V7mFKKTn%2F-MkHk7tfyQoGD_TH4Ex0%2Fnotification.png?alt=media\&token=f8bc1422-a2a5-4236-8d33-20846a66a287)

**Note:** I took those screenshots on the emulator and I couldn't get one of the notification appearing on the lock screen, but it does turn on the screen and appear on the actual device when the phone is on and the screen is locked.
