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 (0)