WiWiBot
An AI chatbot that remembers.
A full-stack AI chatbot with persistent chat history and multi-session conversation management via Firebase Firestore. Implemented authentication with Email/Password and Google OAuth flows.
Most chatbot demos forget everything on refresh. WiWiBot was built around the opposite constraint: every conversation persists, and a user can hold many of them side by side and pick up any one later exactly where it stopped.
Conversations live in Firebase Firestore as a sessions collection with messages nested underneath. Each session belongs to a user, carries a title and timestamps, and streams updates back to the client in real time — so a new reply appears without a refetch, and switching sessions is a matter of changing which document is being listened to.
Authentication runs through NextAuth.js with two providers, Email/Password and Google OAuth, resolved to the same user identity. That identity is what scopes every Firestore read and write, so one user can never see another user's history.
Responses come from the Gemini API. The prior turns of the active session are sent as context with each request, which is what makes the bot feel like it remembers — the memory is the stored history, not anything special in the model.