-
-
Dashboard
-
Accounts - Linked bank accounts
-
Transactions - View and filter transactions
-
Budgets - Set and track budgets
-
Goals - Set and track goals
-
Debt - Track debts and payoff strategies
-
Portfolio - Combined view of assets
-
AI Adivce - Talk to an AI to get insights and advice
-
Admin - View stats overview
-
Admin - View audit logs
What inspired us
As a team, we kept running into the same frustration with personal finance apps: plenty of charts, not much clarity. When someone wants a straight answer ("Can I afford this trip?", "Which debt should I pay first?", "Am I on track for my goal?"), they still end up staring at numbers without a clear next step.
We also noticed a worrying pattern with AI chatbots in this space. They sound confident, throw around dollar amounts that are not tied to real accounts, and feel disconnected from what someone actually has in the bank. That matters. One misleading figure can shape a real decision.
MoneyWealth AI grew out of a question we kept asking each other: what if an AI could only explain your money using your data first? Not generic tips from the internet. Not invented percentages. Real transactions, real balances, real goals, with reasoning you can trace back to what the system read.
We wanted educational guidance, not something that pretends to be licensed professional advice. The product should help people understand their situation and explore options, while staying honest about what it is.
We also wanted the experience to feel calm, not like a trading terminal. Money is already stressful. Our app should not add to that.
What we learned
Grounded AI is a systems problem, not a prompt problem. Telling a model "do not make up numbers" is not enough. As a team, we enforced grounding in code: the AI calls tools against live account data before answering, and an output validator rejects responses that mention figures without a tool call behind them. The LLM is one layer in a pipeline, not the whole product.
AWS Aurora PostgreSQL became the center of our architecture. Bank data, budgets, goals, debt models, and portfolio snapshots all land in Amazon Aurora PostgreSQL 16 (Serverless v2). We chose Aurora because we needed a production-grade relational store that could grow with transaction volume, support strict tenant isolation, and stay available behind long-running AI requests. RDS Proxy sits in front of Aurora so our ECS tasks pool connections instead of exhausting the database during multi-step AI turns.
Fintech security has a long tail. Read-only bank access via Plaid, encrypted tokens, row-level security on Aurora so one user cannot see another user's rows, a BFF so the browser never talks to the API directly, HTTP-only refresh cookies, nonce-based CSP. Each piece sounds standard on its own. Wiring them together without shortcuts took most of our time.
AWS fits the messy middle of AI workloads. Pure serverless looked tempting early on, but our AI chat loop can sit open for 10 to 30 seconds while the model thinks and tools run. Holding database connections that long does not work well with tight connection limits. ECS Fargate behind RDS Proxy gave us persistent containers with pooled Aurora access and room to scale.
Design matters for trust. We put real effort into making the app look and feel relaxed: light and dark mode, and simple screens that focus on one thing at a time (how your budget is tracking, debt payoff options, portfolio mix) instead of cramming everything onto one page. People share money data reluctantly. The UI has to earn that trust.
Evals belong in CI. We built a safety eval harness (prompt injection, ungrounded numbers, missing disclaimers on investment topics) and gate merges on it. Catching regressions before deploy beats apologizing after a user sees a hallucinated balance.
How we built it
MoneyWealth AI is a full-stack monorepo our team built together: a Python/FastAPI backend and a Next.js 16 / React 19 frontend, coordinated through an auto-generated OpenAPI contract.
User flow: Sign up, verify email, connect a bank through Plaid (read-only). Transactions, liabilities, and investment holdings sync into AWS Aurora PostgreSQL. From there users get budgets with spend velocity, savings goals with milestone tracking, debt snowball and avalanche comparisons, portfolio allocation views, and proactive alerts when something drifts off plan.
The AI assistant (educational only) runs on our backend service plane. When a user asks a question, the model goes through an agentic loop: it picks tenant-scoped tools (get_spending_summary, get_account_balances, get_cash_flow, and others tied to budgets, goals, and debt), reads bounded aggregates from Aurora (never raw transaction dumps, for cost and privacy), then drafts a reply. Before anything reaches the user, we run input safety (injection and jailbreak patterns, crisis detection with resource links) and output validation (grounding, educational compliance framing, leak checks). Primary models are Groq (Llama 3.3 70B) and Anthropic Claude, with fallback plumbing behind one interface.
Aurora as the source of truth: Schema migrations live in SQL files and apply directly to Aurora. We use FORCE Row-Level Security so the app connects as a non-superuser role and every query is tenant-scoped. Admin cross-tenant reads go through narrow, audited SECURITY DEFINER functions, not a blanket bypass. Plaid sync workers write idempotently into Aurora; the AI tools read aggregates from the same database the dashboards use, so numbers stay consistent across the product.
Frontend architecture: The browser only talks to Vercel (same-origin). Next.js route handlers act as a BFF. They proxy to the API server-side, keep the access token in memory, and store refresh in a first-party httpOnly cookie. That removed a whole class of CORS and token-exposure issues for us.
Infrastructure on AWS: We provisioned the stack with Terraform: VPC, ECS Fargate, Aurora Serverless v2 with RDS Proxy, ECR, autoscaling hooks, and CloudWatch observability. Upstash Redis handles rate limits and AI token budgets. CI on GitHub Actions runs lint, type-check, unit and integration tests, plus our AI-safety eval gate. Merges to main deploy the frontend to Vercel and the backend to ECS against Aurora.
Live demo: https://moneywealth-ai.vercel.app
Challenges we faced
Hallucinated numbers. Early AI prototypes would answer confidently with dollar amounts that were not in Aurora. Our fix was tool-first grounding plus a hard validator that blocks numeric answers without tool calls, plus a retry path with explicit correction instructions when the model slips.
Long-running AI and Aurora connections. Our first architecture sketch assumed short serverless functions. Agentic turns are slow and connection-hungry. We hit database connection limits before we hit CPU. RDS Proxy in front of Aurora and a dedicated service plane on Fargate were the fix, but it meant reworking how we thought about the backend as two planes: edge/BFF versus long-lived workers talking to Aurora.
Plaid is the critical path. Bank linking, cursor-based transaction sync, webhook-driven updates, idempotent upserts, encrypted access tokens. A lot of moving parts for a hackathon timeline. We prioritized the Plaid-to-Aurora vertical slice early because everything else (budgets, AI tools, alerts) is only as good as the data underneath.
Aurora cost vs. production realism. Aurora Serverless v2, Fargate, and egress add up. We tuned a hackathon cost profile (writer-only Aurora at 0.5 to 2 ACU, careful about idle tasks) while still building something that could scale, not just a localhost demo with AWS logos on the slide.
Educational tone without being useless. Products in this space need clear educational framing, especially around investments. Too little disclaimer and you are being careless; too much boilerplate and the experience feels like a legal pamphlet. We landed on server-side validation that rejects investment-related answers missing educational framing, which forced us to tune prompts and UX copy together as a team.
Scope control. It is easy to build yet another dashboard. We kept cutting features that did not serve a clear question and doubled down on the educational AI assistant plus the planning modules (budget, goals, debt, portfolio) that feed it real context from Aurora.
MoneyWealth AI provides educational information only. It is not financial, legal, or tax advice, and it is not a substitute for a licensed professional.
Built With
- amazon-web-services
- css
- dockerfile
- hcl
- javascript
- plpgsql
- python
- typescript
Log in or sign up for Devpost to join the conversation.