I shipped OneConnect, a contacts-based audio/video calling app for your phone.
Features:
1. Sign up, log in, add people as contacts, search your list, then ring them for voice or video.
2. When someone calls you, you get a real incoming screen; you can pick up or decline. Outgoing shows “calling…” with sounds so it doesn’t feel fake.
3. On a call: mute, turn camera off, flip front/back camera, screen share, switch speaker vs earpiece. You can see when the other person mutes or turns their camera off too.
4. Video layout: big view for them, small floating window for you; tap to swap who’s big. Timer so you know how long you’ve been on..
5. Server keeps call history; phone can get push alerts with custom ring sounds for incoming calls.
Stack:
Phone: Expo React Native, routing, styling with NativeWind, state and server sync with TanStack Query Zustand, WebRTC for the actual media, secure storage for the session.
Server: Bun runtime, Elysia for HTTP WebSockets for “who’s calling, accept, hang up, mute state,” Better Auth for accounts, Drizzle PostgreSQL for data, email OTP via Resend, STUN/TURN for getting through routers, Swagger.
apk link in comment:
#WebRTC #ReactNative #Expo #Bun #ElysiaJS #MobileDev