Mobile App · 2026
RWCBM Mobile
The hall on the phone, with the messages sealed
The members are contractors and business owners, rarely at a desk, so the hall goes in a pocket: the borough at home, the boroughs on a map, the forum, the directory, requests, deals and events. Every conversation a member has lives here and only here, end-to-end encrypted on the phone with Signal's own library, so the server passes along ciphertext it cannot read.

- Messages sealed on the phone with Signal's library
- End to endMessages sealed on the phone with Signal's library
- iPhone and Android
- Both storesiPhone and Android
- Fixes ship over the air
- No store waitFixes ship over the air
The problem
The web app worked, but the men using it are rarely at a desk, and a browser cannot keep a conversation private from the server that serves it. A directory you check between job sites has to be an app, and a conversation between two business owners should be readable by those two and nobody else.
What got built
Expo with Expo Router, on the web app's own Clerk instance, so one account covers both and a member can sign up in either. Encryption is Signal's libsignal, wrapped in a native Expo module written in Swift and Kotlin: each phone keeps its private keys in the Keychain or Keystore and publishes only public keys, Signal's post-quantum prekeys included, and group chats and borough rooms use sender keys. A photo is encrypted on the phone with a fresh key before it uploads, and a push notification arrives as ciphertext and is decrypted on the device to show the real banner. When the server answers 402 for a lapsed membership, a billing screen covers the app until it is put right. Over-the-air updates are matched to the build that can run them, so a fix never lands on a phone that cannot run it.
Details worth naming
- Five tabs: Home, Boroughs with their map, Messages for direct messages, group chats and borough rooms, the Forum, and a Menu holding the rest of the hall.
- End-to-end encrypted messaging on Signal's library, photos and group rooms included, with no plaintext fallback: a message to a man who has not opened the app yet is refused rather than sent in the clear.
- Replies the way Signal does them: swipe or long-press a message to quote it, with reactions and delete for everyone.
- Push notifications that carry only ciphertext and are decrypted on the phone, by a notification service extension on iPhone and a background task on Android.
- Sign-in by an emailed or texted code, an authenticator app, or a backup code, on the same account as the website.
- Deals logged from the phone, borough scoreboards, and the officers' tools for the boroughs they keep.
Inside the product
Recreations of the real screens, drawn with invented members. Everything past sign-in in the live app is member data.

Next project
LaneLab
Video stroke analysis platform for a swim coach
Tell us about the business.
What it does, where, and what the website has to make happen. Within a day you will have a straight answer on what it takes to build, what it costs to run, and what we would cut. If the honest answer is that you do not need a new site, that is the answer you get.
Or skip the form entirely. hello@pinelandtech.com reaches a person, not a queue.
