Building My First React Native App: A Real-Time Todo App with Convex
Project Overview
As my first real dive into React Native, I wanted to build something that was simple on the surface but let me stretch into concepts I hadn't touched before - real-time data sync, theme handling, and putting together a mobile experience that actually feels good to use. The result is a Todo App powered by React Native, Expo, and Convex. Why This Project Most "first app" tutorials stop at local state and a hardcoded list. I wanted more than that. I wanted to understand what it actually takes to have data update instantly across multiple devices, to support both light and dark mode properly, and to ship something that felt like a small but complete product rather than a demo. What It Does At its core, this is a todo app - but with a few details that make it feel polished: Todos Add, edit, and delete tasks Mark tasks as complete or incomplete A live progress bar that reflects completion status in real time Instant sync across every connected device Settings Task statistics - total, completed, and remaining A dark mode / light mode toggle Notification and auto-sync toggles (UI groundwork for future functionality) A "delete all tasks" option with a confirmation step, so one accidental tap doesn't wipe your list Real-Time Sync Changes propagate instantly through Convex's real-time database Automatic reconnection handling, so the app recovers gracefully if connectivity drops The Tech Stack React Native for the cross-platform mobile UI Expo to speed up development and testing without fighting native build tooling Convex as the real-time backend and database TypeScript throughout What I Learned The biggest unlock on this project was understanding how Convex handles real-time subscriptions. Instead of manually polling or writing socket logic, Convex lets the UI just react to data changes — which completely changed how I thought about state management in a mobile context. Building the theme system also pushed me to think more intentionally about UI consistency, since every component had to look right in both light and dark mode. It's still a simple app on paper a todo list but building it end to end taught me far more than any tutorial could about how real apps are structured, synced, and shipped. This was my first React Native project, and I'm excited to keep building. If you find it useful, a star on the repo is always appreciated.