Built for my own use · installable web app

    Mango

    A private app I built for my own finances, bringing my accounts, spending, and net-worth history into one place, with Mercado Pago and Brubank integrations and Veronica, a connected AI assistant.

    React PWANestJSPostgreSQLPrismaSupabase AuthMulti-currencyGPT Actions

    My money was spread across bank accounts and digital wallets. I wanted to know where it was, what I was spending, and how my total net worth had changed over time, without piecing everything together from separate platforms. I couldn't find an existing app that matched my needs and preferences, so I designed and built my own.

    A demo with a test account is being developed for this portfolio.

    A Tool Built Around My Own Needs

    I built Mango around the way I manage my own money: one place for my accounts, expenses, investments, and financial history, with an AI assistant that can use that information directly. That gives me a complete picture without gathering data from each bank or wallet whenever I have a question.

    I am its intended user, and I have no plans to release it to the general public. It has sign-in and a database designed to support multiple users, but the product follows my own requirements. Owning the code means I can change how it works, add an integration when I start using another institution, and adapt the app as my needs evolve.

    One View Across My Accounts

    I wanted to follow my finances across all my accounts, wherever the money was held. Mango connects individual transactions to account balances and reports, so I can move from a total to the history behind it.

    Balances and Net Worth Over Time

    See where my money is held, review balances across accounts and currencies, and track my total net worth at different points in time. Currency conversions retain the valuation information used to calculate the result.

    A Traceable Transaction History

    Record and review income, expenses, transfers, debt payments, balance adjustments, and grouped card payments across currencies. Categories, merchants, and tags help me find transactions and understand how I spent my money.

    Planning and Reminders

    Keep upcoming payments, recurring transactions, subscriptions, budgets, and savings goals alongside the same account history. I can postpone, skip, complete, or record due items and receive browser push reminders.

    Investment Context

    Investment records include assets, prices, purchases and sales, dividends, broker cash movements, holdings, valuation, and performance, adding context to the picture of my finances.

    Mercado Pago and Brubank Integrations

    Mango integrates with the Mercado Pago digital wallet and the bank Brubank to bring their transactions into my account history. These integrations save me the repetitive work of recording each transaction manually and make keeping the app up to date more practical.

    I can also enter transactions directly in the app or ask Veronica, my connected AI assistant, to record them. Each route contributes to the same financial history and reports.

    A Real Use Case: Understanding a Trip's Cost

    On a recent trip, I attached the same trip tag to every related transaction. Tags and categories serve different purposes: the category describes the kind of expense, while a tag can connect transactions to a trip or another context. Each transaction can have as many tags as I need, while keeping its category.

    After the trip, I filtered by that tag to see the total amount I had spent and break it down by my existing expense categories. The same records supported both views: the cost of the trip as a whole and the kinds of expenses that made up that total.

    Veronica: An Assistant with Financial Context

    I wanted an assistant that could access my full financial history without asking me to collect information from different platforms first. Veronica is a GPT connected to Mango that can query my accounts, transactions, net worth, and investment information, then use that context to answer my questions.

    Record and Maintain Transactions

    Veronica can record transactions and modify or delete existing ones. For corrections and deletions, I review and confirm the exact change before it is applied.

    Explore Patterns and Ask Questions

    Veronica can run complex queries, explore spending trends, detect patterns, and offer savings recommendations grounded in my records. I can ask questions about where my money is, how my spending has changed, or what contributes to my net worth.

    Veronica accesses the same backend as the app. Its queries and changes use the same financial rules, so a conversation stays connected to the records I see on screen.

    Keeping the Numbers Consistent

    Balances are calculated from opening balances and account movements, and reports use that same history. I store amounts as whole numbers in the currency's smallest unit, such as cents, to avoid floating-point rounding errors. Transactions retain their original currency, and converted totals keep the valuation information behind the calculation. Imports, manual edits, and assistant requests all pass through server-side validation.

    What I Built

    I designed and implemented the frontend and backend, the account and transaction model, financial calculations, reports, imports, planning flows, and Veronica's integration. The installable React app works on phones and desktop. It connects to a NestJS backend, with PostgreSQL for records, Prisma for database access, and Supabase for sign-in and authorization.

    Veronica connects through GPT Actions and OAuth, which let me authorize its access to Mango's API. The server checks identity, data ownership, and permissions.