Lessons from building a React Native application for AI-powered project discovery, creation, and chat.
Building IdeaPilot taught me that choosing libraries is only part of designing an application. The more important decision is defining which layer owns each piece of data, how it changes, and where it should persist .
IdeaPilot uses React Native and Expo on the client, an Express backend for chat and resource APIs, Firebase for authentication and project-related data, and NeonDB for conversational history and semantic retrieval. TanStack Query and Zustand handle different aspects of client state, while Redis caches frequently accessed chat context.
Here is how these decisions fit together.
1.…