Here's a full Devpost-style writeup for Penny Wise. I'll assume it's an AI-powered personal finance app — adjust any specifics to match what you actually built.
Inspiration Most people don't struggle with money because they lack information — they struggle because financial tools are cold, reactive, and built for spreadsheets rather than real life. We watched friends and classmates track expenses religiously for two weeks, then quietly give up. Budgeting apps told them what they spent, but never why it mattered or what to do next. We wanted to build something that felt less like accounting software and more like a thoughtful friend who happens to be great with numbers — one that meets users where they are, in plain language, and turns small daily choices into long-term financial confidence. What it does Penny Wise is an AI-powered personal finance companion that helps users take control of their money without the friction of traditional budgeting apps. It automatically categorizes transactions, detects spending patterns, flags subscription leaks, and forecasts cash flow based on upcoming bills and income. Users can set goals — an emergency fund, a trip, paying down a credit card — and Penny Wise builds a realistic plan, then coaches them through it with personalized nudges. A conversational assistant answers questions like "Can I afford dinner out this weekend?" or "How much did I spend on food delivery last month?" in natural language, grounded in the user's actual data. How we built it The frontend is a React + Tailwind single-page app with a mobile-first responsive layout. The backend runs on Node.js/Express with a PostgreSQL database for transactional data and Redis for session and rate-limit handling. We used the Plaid API to securely link bank accounts and pull normalized transaction data. Categorization and insight generation are powered by the Anthropic Claude API, with a lightweight retrieval layer that feeds the model only the user's relevant transaction context per query. Forecasting uses a simple time-series model (Prophet) on historical inflows and outflows. Auth is handled with Auth0, and the whole stack is deployed on Vercel (frontend) and Railway (backend + DB). Challenges we ran into
Transaction categorization accuracy. Plaid's default categories were too coarse, so we built a hybrid pipeline: rule-based matching for recurring merchants, LLM classification for ambiguous ones, and user corrections that feed back into a per-user override table. Keeping the LLM grounded. Early versions hallucinated balances and dates. We fixed this by tightly scoping the context window and requiring the model to cite transaction IDs in every numeric claim. Latency. Pulling transactions, running forecasts, and calling the LLM in one request made the chat feel sluggish. We moved forecasting to a nightly job and cached category summaries, cutting response time roughly in half. Privacy. Financial data is sensitive. We encrypted data at rest, avoided sending raw account numbers to the LLM, and built a clear data-deletion flow.
Accomplishments that we're proud of
Built a working end-to-end pipeline from bank link → categorized data → AI insights in a single sprint. Got categorization accuracy above 90% on our test set after the hybrid rules + LLM approach. Designed a conversational UI that actually feels useful, not gimmicky — testers asked real questions unprompted. Shipped a clean, calm interface that doesn't guilt-trip users for spending.
What we learned We learned that in personal finance, trust is the product. Users don't want a dashboard screaming red numbers at them — they want a tool that feels private, accurate, and on their side. We also learned a lot about prompt design for data-grounded LLM applications: giving the model less context, but the right context, produced better answers than dumping in everything we had. On the engineering side, we got hands-on experience with financial APIs, secure data handling, and the tradeoffs between real-time and batched computation. What's next for Penny Wise
Goal-based investing. Connecting brokerage accounts and surfacing simple, goal-linked investment suggestions. Bill negotiation. Detecting overpriced subscriptions and recurring bills and offering one-tap cancellation or negotiation. Shared budgets. Couples and roommates splitting expenses with a shared view. Financial literacy coaching. Short, personalized lessons triggered by real events in the user's account (e.g., a first credit card payment, a tax refund). Mobile app. A native iOS/Android build with widgets for at-a-glance balance and goal tracking.
Built With
- anthropic-claude
- auth0
- express.js
- node.js
- plaid
- postgresql
- prophet
- react
- redis
- tailwindcss
- vercel
Log in or sign up for Devpost to join the conversation.