The Story Behind uiXpense
How it started
uiXpense started while I was taking the Master Generative AI using JavaScript in 12 Weeks course by Coders Gyan.
One of the modules focused on Generative UI, where the idea was to build interfaces in which AI works directly with real application data, not just text responses.
This project was introduced as part of that module. Instead of treating it as a practice exercise, I chose to build it around a real and familiar problem.
Expense tracking felt like a natural choice. It is something most people deal with, yet it often remains manual, scattered, and easy to ignore.
The initial idea
The core idea was simple:
What if you could talk to your expenses instead of clicking through dashboards?
I wanted users to be able to ask questions like:
- “How much did I spend on food last month?”
- “Show me my highest expense category this year.”
- “Compare my spending this month vs last month.”
And get:
- Clear answers
- Step-by-step reasoning
- Visual charts when helpful
All through a chat interface.
What I built
uiXpense is a chat-based expense tracker where:
- Users interact using natural language
- The AI understands intent and routes logic using LangGraph
- Expenses are fetched, analyzed, and visualized dynamically
- Responses are streamed in real time using Server-Sent Events (SSE)
The frontend is built with React + Tailwind, while the backend uses Node.js and Express to handle:
- LLM orchestration
- Streaming responses
- Rate limiting and API safety
Challenges & learning
This project taught me a lot beyond just LLMs.
Some key things I learned:
- How streaming protocols (SSE) behave in real production environments
- Why middleware order matters in Express
- How CORS, proxies, and rate limiting interact at scale
- How to structure AI systems so they’re debuggable, not magical
A major learning moment was debugging CORS and streaming issues after deploying to Vercel and Render, problems that never appeared locally but mattered a lot in production.
Why this project matters to me
uiXpense represents a shift in how I think about building applications.
Instead of : "How do I add AI to this app?"
I started thinking: "How should the user experience change because AI exists?"
This project is still evolving, and I plan to keep improving it, but it already reflects how I approach modern full-stack and AI-driven systems.
What's next
Some ideas I plan to explore next:
- User-based quotas instead of IP-based limits
- Better long-term memory for conversations
- Smarter financial insights and summaries
uiXpense is not just a project, it's a learning ground.
Screenshots


