Inspiration

Social-Balance came out of something I kept noticing in my own life. I care about the impact of my choices, but when I spend money, it’s hard to know what I’m supporting.

I’ve always believed that capitalism, despite its flaws, can be controlled. Companies follow incentives. If enough people start caring about the ethical consequences of their purchases, and if those consequences are visible and easy to act on, companies will eventually compete on those terms too.

That’s what I wanted to explore. A way to surface the hidden consequences of our spending, and give people tools to respond.

What it does

Shadow-Balance connects to your bank account and analyzes your recent transactions. Using a large language model, it tries to identify the ethical impact of each purchase—looking at things like labor practices, environmental damage, and political influence. Each transaction is assigned a dollar value: either as “ethical debt” or positive impact.

When harm is detected, the app recommends a charity working in that area. You can donate directly, or just use the info to guide future decisions. The goal is to help users see the full picture and make more aligned choices.

There’s also a credit system. If you spend in ways that have a positive impact—or donate to offset harm—you earn credit. It’s meant to offer a bit of instant gratification and give people a reason to keep coming back. In the future, I’d like to turn this into something more meaningful, possibly through nonprofit partnerships or rewards once credit outweighs debt.

How I built it

This is a full-stack web app. The frontend is built with Next.js and React using TypeScript and Tailwind CSS. Zustand manages global state.

Plaid is used to securely pull in bank transactions. Those are sent to a custom backend (Next.js API routes), where they’re analyzed by Google’s Gemini model (with grounding). The model is prompted to identify any relevant ethical or unethical practices. Based on the practice and transaction amount, I calculate a monetary value for its impact.

To recommend charities, I pull data from Every.org and Charity Navigator. Firebase handles authentication and stores all user data, transaction history, cached vendor assessments, and custom value settings.

Challenges

Plaid and bank integration Plaid worked smoothly for most banks, but I wasn’t able to get OAuth approval from Chase before the deadline. It highlighted how much friction there can be in testing real financial integrations.

LLM analysis and citation issues Getting an LLM to assign ethical impact is tricky. The Gemini model would sometimes return outdated or irrelevant sources. To improve this, I built a backend interface where I can manually review and update the analysis. This is especially helpful for common vendors, since I only need to fix them once. I’d still like to eventually add automated link checking and claim validation.

Building it alone I built this project solo, but I leaned on generative AI as a creative partner. I used it for help with architecture, code, and debugging. I’ve been teaching myself to code, and this kind of project-based learning has been the most effective approach for me.

Earning trust The app asks people to share sensitive financial data and accept ethical evaluations of their behavior. I took steps to build trust through secure auth, transparency around how the analysis works, and tools for adjusting value preferences. But this will always be an ongoing challenge.

Motivating sharing Sharing donations or ethical wins can feel uncomfortable. But I think the cultural discomfort around altruism is a missed opportunity. If handled well, public impact sharing can encourage more people to donate. I’m interested in experimenting with light incentives to support this.

Accomplishments I’m proud of

  • Built a working, secure app that analyzes real financial data for ethical impact
  • Created a full loop from awareness to action, including offsetting harm through charity
  • Implemented a credit system to motivate ongoing engagement
  • Designed a flexible system where users can customize their values
  • Pulled in and enriched charity data from two major sources with logos and ratings
  • Built all of this as a solo developer, using AI as a learning tool along the way

What I learned

How to ship a full-stack AI app This project touched everything: frontend, backend, auth, LLM integration, data modeling, state management, third-party APIs. I learned how to balance complexity and focus on the pieces that matter most to the experience.

Working with LLMs in practice Ethical analysis is subjective. I learned how to craft better prompts, handle imperfect answers, and design for manual overrides when needed.

Product thinking in layers I planned the app in phases and focused on getting the core loop working first. That structure helped me avoid scope creep and stay motivated.

Ethical AI is a design problem It’s not just a question of what the AI says. It’s how you frame it, how transparent you are, and how much control you give the user. That philosophy guided the project from the start.

What’s next

  • Allow communities with similar values to work together to pay off a pool debt.
  • Track corporate political donations and use supported candidates’ values to assess company ethics
  • Provide a public database to help people improve their spending pre-emptively.
  • Explore nonprofit or brand partnerships that reward users when credit outweighs debt
  • Ability to opt into monthly reminders to pay off ethical debt.
  • Add the ability to flag or challenge vendor analyses
  • Build visualizations that show ethical progress over time
  • Add reminders and personalized insights based on spending

Built With

Share this project:

Updates