Fred Glass

Homecooked Snapchat

I’ve been working on slimming down my social media diet for a while, mainly for productivity reasons rather than for privacy concerns. Snapchat was the last man standing, as my partner insisted on using it to share photos when we're apart. I brokered a deal with her: if I made us a replacement, I could uninstall Snapchat. After 24 hours of coding (thanks WakaTime), Looking Glass was born.

We have used the app almost daily for the past 8 months. Although not as feature-rich as Snapchat, it solves our fundamental problem: quickly sharing snaps (panes?) with each another. There's a certain charm to it — the fact that it’s only the two of us, and only ever will be, makes it feel special. It’s a welcome relief not to be bombarded with ads or subjected to endless in-app purchase requests. There’s also something satisfying about being able to add bespoke features on demand. Streak counter? No problem. Emoji reactions? Done.

The idea for Looking Glass first came after reading Robin Sloan’s post in which he cooked up a similar app for his family. I’d love for this to become a trend: homecooked workout tracker, homecooked budget dashboard, homecooked note editor. Self-hostable apps that do one thing and do it well — a little rough around the edges but perfectly tailored and infinitely customisable. The rise of no code AI interfaces makes the creation of these micro apps easier than ever.

Implementation

The app itself is built using React Native & Expo. It’s backed by S3 and only S3 — yes, there is no backend or serverless functions whatsoever. I wanted to minimise operational costs, so I challenged myself to build it using only object storage. It turns out it was easier than expected, as long as you’re happy with making some questionable design decisions.

For push notifications, I used Expo’s free Push Service and the app is distributed via ad hoc provisioning, a neat alternative to TestFlight for personal use cases. To date, the entire project has cost just $0.20, most of which was spent during development.

The source can be found here — you're more than welcome to use it for your own private Snapchat-like experience. I made somewhat of an effort to keep the code generic, so it should be usable by others with minimal modifications (though it's untested on Android). Pull requests welcome!