Inspiration

The world of finance can be intimidating. Many young adults hesitate to invest because they fear losing money or simply don’t know where to start. We wanted to create a “sandbox” environment—a flight simulator for finance—where users can make mistakes, take risks, and learn from them without any real financial consequences.

The goal was to transform the dry subject of investing into an engaging, level-based game where your Net Worth is your score.


What it does

Finstinct (Financial Instincts) is a gamified financial literacy platform that allows users to simulate trading and portfolio management in a completely risk-free environment.

  • Gamified Ledger
    Users start with virtual cash and build a portfolio. Their success is tracked through a Net Worth score.

  • AI Market Coach
    An AI assistant analyzes user trades. Instead of giving predictions or advice, it explains why a portfolio is moving, focusing on educational insights.

  • Visual Feedback
    Interactive charts and visual rewards (like confetti on milestones) make finance feel accessible and rewarding.


How we built it

Finstinct is a full-stack application built with a modern web architecture, emphasizing performance and type safety.

Tech Stack

  • Frontend: React 19 (Vite), TailwindCSS v4, Framer Motion, Canvas Confetti
    Charts powered by lightweight-charts

  • Backend: Node.js & Express (game logic)

  • Database: PostgreSQL (via Supabase) with Prisma ORM

  • AI: Google Gemini (gemini-2.5-flash) powering the AI Market Coach

  • Auth: Supabase Authentication


Challenges we ran into

The “Login Loop”

One of our biggest hurdles was a persistent redirection loop during authentication. The root cause was a misconfiguration between frontend and backend environment variables for Supabase—specifically VITE_SUPABASE_ANON_KEY.

Debugging required tracing network requests and carefully verifying environment consistency across both local and production builds.

Prompt Engineering

Getting the AI to behave strictly as a coach was difficult. Initially, it tried to predict stock prices. We refined system prompts to restrict it to past performance analysis and financial education, avoiding forward-looking advice.


Accomplishments that we’re proud of

  • Bleeding-Edge Tech
    Successfully built and deployed using React 19 and Tailwind v4.

  • Seamless AI Integration
    The AI Coach feels native to the UI—not like a chatbot bolted on.

  • End-to-End Type Safety
    From Prisma to TypeScript on the client, reducing runtime errors significantly.


What we learned

State Management

We learned effective patterns for managing complex game states—net worth, portfolios, and transaction history—across both client (Zustand) and server, keeping the game responsive while data remains secure.

Financial Math

Implementing portfolio calculations required a solid understanding of weighted averages and percentage growth.

Portfolio Percentage Return ( R ):

$$ R = \left( \frac{V_{current} - V_{initial}}{V_{initial}} \right) \times 100 $$

Net Worth Calculation ( NW ):
Where ( C ) is liquid cash, ( P_i ) is the price of asset ( i ), and ( Q_i ) is the quantity held:

$$ NW = C + \sum_{i=1}^{n} (P_i \times Q_i) $$

AI Constraints

We learned that prompt engineering is less about asking the AI what to do—and more about clearly defining what it must not do.


What’s next for Finstinct

  • Multiplayer Leagues
    Competitive leagues where users compete for the highest percentage returns over fixed periods.

  • Real-Time News Integration
    Adding a news API so the AI Coach can correlate portfolio performance with real-world events.

  • Mobile App
    Porting the React 19 codebase to React Native to bring financial literacy to mobile users.

Built With

Share this project:

Updates