Inspiration

We wanted to create a tool that does more than just display charts or execute trades. Our goal was to build an assistant that feels supportive, intuitive, and emotionally intelligent, something that helps users stay grounded during volatile markets and empowers them to make confident long-term decisions.

What it does

VibeTrade is an agentic trading system built on real-time market data, portfolio state, and risk rules. It doesn't just generate responses. It plans, decides, and acts. Users communicate through natural language (voice or text), and the model analyzes their intent before executing a structured tool-calling pipeline.

It pulls live prices from Finnhub, checks current positions in Supabase, evaluates risk constraints, and decides whether to place a trade. When the conditions are right, it executes paper trades through Alpaca, fetches historical data, or updates the portfolio. The model continuously processes new information, adjusts its approach, and explains its decisions clearly.

The model also interprets market conditions in real time, spotting trends, momentum shifts, volatility, and key support or resistance levels. It provides emotionally intelligent guidance to help users stay calm and disciplined during uncertain periods. Everything it does is logged to Supabase and delivered to users through text and voice via ElevenLabs.

How we built it

Frontend: Technologies: Next.js, React, Tailwind CSS, TradingView Charts, WebSockets (client-side)

Backend: FastAPI, Uvicorn/Gunicorn, Alpaca API (Paper Trading), Finnhub API (Market Data), Service Layer

Database: Supabase (Postgres)

Agent Layer: LangGraph, ElevenLabs Real-Time STT/TTS WebSocket API

Challenges we ran into

Keeping end-to-end latency (user speech → STT → LLM → TTS) low enough for real-time trading feedback while using multiple external APIs (ElevenLabs, LLM, Finnhub, Alpaca).

Ensuring Supabase stays the single source of truth when orders are placed, partially filled, or canceled, and syncing that with Alpaca’s live state and the frontend UI.

Managing concurrent WebSocket streams (voice, live prices, agent updates) without blocking, race conditions, or dropped messages.

Accomplishments that we're proud of

Functional prototype that has the capabilities to execute trades in real time via Alpaca

Sentiment analysis service layer pulling from multiple different real time sources. (Reddit, Polymarket, etc)

3D Model animation to be reactive to actions

What we learned

How to integrate multiple external APIs smoothly

Using databases as a source of truth for information matching.

What's next for VibeTrade

Scaling to B2B2C to leverage out modular architecture which separates the LLM, data streams, and execution layer

Built With

Share this project:

Updates