The Problem: The "Skinner Box" of Modern Dating
Traditional dating apps have a fundamental conflict of interest: if you find a partner, they lose a customer. Their algorithms are designed to keep you swiping, not to help you meet. Plus, your most intimate preferences and behavioral patterns are stored in a centralized database, ripe for data mining.
I decided to build Aura: a dating app that is a privacy-first utility, not a business.
The Architecture: Local-First and Serverless
Aura has no central server. No "matchmaking" algorithm running in the cloud. No user database.
Here’s how it works:
- Encrypted Local Storage: Everything—your swiping history, chats, and profile—lives in an encrypted SQLCipher database on your device, managed by a native Rust backend.
- P2P Discovery: Instead of a cloud API, Aura uses libp2p to scan for nearby "Resonances." Devices act as nodes in a gossip mesh, propagating encrypted discovery packets.
- Store-Carry-Forward: The network is "living." Your phone "carries" encrypted profiles through physical movement, gossiping them to other peers as you move through different areas.
The Tech Stack: Why I switched to Tauri 2.0 + Rust
I recently migrated Aura from React Native to Tauri 2.0. This was a game-changer:
- Rust for the Heavy Lifting: P2P networking, encrypted storage, and a local preference optimizer (a tiny ML model that learns your interests and optimizes suggestions) are all in Rust. It’s fast, memory-safe, and handles background tasks beautifully.
- Vite + React for the UI: I can build a premium, high-performance UI with standard web tech, leveraging glassmorphism and modern animations without a heavy framework overhead.
- Atomic IPC: Tauri’s bridge allows the frontend to talk to the secure Rust core with minimal latency.
Solving Trust: The Relational Reputation Mesh
One of the biggest challenges in a serverless app is safety. How do you trust someone without a central moderator?
Aura uses a Decentralized Reputation Mesh. Your "Aura Score" isn't a global number; it’s a Relational Valence. Your score is calculated locally on your device based on specific gossip you've received. We even implemented Asymmetric Time Decay: negative signals decay 4x faster than positive ones to allow for "redemption arcs" while rewarding long-term positive behavior.
What's Next?
Aura is fully open-source (AGPL v3). I've just finished the F-Droid metadata recipe and am validating the build simulation to get it published.
I’m looking for contributors! If you're into P2P protocols, local-first architectures, or just want to build tech that actually helps people connect in the real world, check out the repo:
👉 https://github.com/bensiv/aura
What do you think about the future of local-first social apps? Let's discuss in the comments!

Top comments (1)
Local-first social is one of the most underexplored design spaces, and Aura nails the threat model — when the team cannot read your data because the schema is encrypted on-device, you stop having to trust them. That's strictly stronger than "we promise to behave."
Three angles I'd be curious about from shipping a different local-first Android app (screen-off camera, LAN-only web viewer, no cloud — play.google.com/store/apps/details...
1) libp2p discovery cost on real Android. Background discovery is where local-first apps quietly die. Doze + App Standby will pull the rug on long-lived radio work and your gossip mesh stops gossiping mid-walk. Are you running libp2p inside a foreground service with a sticky notification, or batching discovery into WorkManager windows? Mine had to live in a foreground service just to keep the encoder alive past screen-off; dating-app discovery has a shallower urgency budget than that.
2) Asymmetric time decay (4x) feels right but the second-order effects are tricky. A coordinated brigade of negative gossip from a single physical hotspot can still temporarily tank a local Aura Score, even if it recovers. Have you considered weighting incoming gossip by the diversity of the propagation path (distinct mesh hops it traversed) on top of freshness? That's the local-first analogue of Sybil-resistance.
3) F-Droid first is the right surface for this audience. An AGPL P2P dating-app user is almost definitionally a "no cloud account" user — disproportionately F-Droid + GrapheneOS. The Play Store gauntlet (12 testers / 14 days / closed testing → review) is rough when you can't credibly fake "organic" engagement. F-Droid first self-selects for the audience you actually want.
Subscribed to the repo. "Your phone carries encrypted profiles through physical movement" is the cleanest articulation of store-and-forward I've read this year.