I build things mostly for myself. Some ideas are great, others not so much. This lands somewhere in the middle.
I called it Thinking of You (ToY) in essence it’s a way to share a state between two Phone (3)'s. It’s 100% inspired by this concept and essentially works the same way with a few differences.
ToY supports the Phone (3) mostly because it’s my main device. There are 3 things you can send to another Phone (3): a heart sparkle animation, confetti / sparkles, and up to 8 characters (a–z, 0–9) (This is an arbitrary limit due to the free firebase tier). There’s also a Glyph toy — long press and it sends a sparkle heart to the other device. Non-Phone (3) devices have limited support via an on-screen overlay, which shows one animation and no custom text.
There’s only one catch. I’m not going to support this outside of maybe updating the source and working on it privately. It comes down to not having the time or mental capacity to maintain a hosted Firebase backend and deal with all the privacy concerns this kind of app carries.
Beyond setting up Firebase and dropping in your own API key I’ve tried to make it as plug and play as possible. It’s basic. It’s not production ready and that was never the goal. It works, and that’s what I’m releasing.
I hope another developer takes this idea or this code and improves on it. It’s a genuinely fun concept and could be something great.
Source: https://github.com/bleelblep/thinking-of-you/
A few things to note before building
Firebase is the main limitation. The free Spark tier is all you need to get it working but you’re capped at 100 simultaneous connections, which is 50 paired devices. Fine for testing, not viable for anything beyond that.
The other thing is encryption. Data is encrypted in transit (TLS) and at rest by Firebase, but the pattern state itself is plaintext. Anyone with Firebase console access or a valid auth token can read it. The rules I’ve shipped with the source restrict writes to the two paired devices, but that’s not the same as end-to-end encryption — the data is still readable at rest by anyone with access to your Firebase project.
If you want true E2E you’d need to encrypt the payload client-side before writing to Firebase and decrypt on receipt. That’s doable but it’s not something I’ve implemented.