Vora

Web · Algorithmic Trading Platform


My Role

Product Engineer

Technologies

Next.jsReactTypeScriptTailwind CSSTanStack QueryMotionRiveVercel AI SDKPythonFastAPIAPSchedulerBetter AuthPostgreSQLTelegram APIOpenAI

Timeline

2025 – 2026 (ongoing)

Description

A full-stack platform that lets traders design, backtest, and run automated crypto trading strategies across multiple exchanges, bringing strategy building, risk validation, live execution, and monitoring into a single product.

Context

Algorithmic trading used to be reserved for hedge funds with engineering teams. Vora brings that same power to individual traders: a place where anyone can compose a strategy without writing code, prove it works against years of history, deploy it to a live engine that trades for them around the clock, and watch every fill, every signal, and every dollar of PnL in real time. Every part of the system is fully functional. It places real orders on real exchanges.

Preview
vora.app

The Problem

Markets never sleep, but people do.

Crypto trades 24 hours a day, 365 days a year. No human can watch a chart that long, and the moment you step away is usually the moment the market moves. So traders fall back on emotion, group chats, and luck, and the tooling that's supposed to help is scattered across half a dozen disconnected apps.

By the numbers

  • Crypto markets run 24/7/365, with no closing bell and no overnight pause
  • The large majority of active retail traders lose money over time, largely to emotion and timing, not lack of effort
  • A typical workflow forces you across 4+ disconnected tools: one to build, one to backtest, a raw exchange API to execute, and a spreadsheet to monitor
  • Most backtests are judged on a single historical run, which silently rewards overfitting and hides real-world risk

The Solution

An end-to-end platform that takes a strategy from idea to live, automated execution, without ever leaving the app.

  • Build a strategy visually, with no code, on a drag-and-drop canvas
  • Validate it against history and stress-test its robustness before risking a cent
  • Deploy it to a live engine that trades across exchanges on your behalf, day and night
  • Stay in control with real-time market intelligence, performance analytics, and instant alerts

Constraints

This wasn't a weekend hackathon. It was the harder problem of building a real-money, always-on trading system as a full-stack solo effort. That meant the bar was reliability and security, not just a working demo: exchange keys had to be encrypted, the live engine had to survive restarts without abandoning open strategies, and the same codebase had to span a Python trading core and a polished React product. Every feature had to work against live exchange data, not a mock.

Key Features

Visual Strategy Builder

A drag-and-drop flow builder (built on @xyflow/react) plus a structured form builder, backed by an indicator catalog with validation. Strategies are composed, not hand-coded: pick your indicators, define your conditions, and connect the logic visually.

Backtesting + Monte Carlo Simulation

A full backtesting engine with a deep indicator library: RSI, MACD, Bollinger Bands, EMA/SMA, SuperTrend, PSAR, Fibonacci. On top of raw backtests I built a Monte Carlo module that reshuffles and resamples trade sequences thousands of times, so you can judge a strategy's robustness and distribution of outcomes, not just its one lucky run.

Backtesting results and Monte Carlo robustness simulation

Backtesting results and Monte Carlo robustness simulation

Live Strategy Engine

The core of the platform. A stateful signal engine evaluates conditions in real time and places actual orders across exchanges. It restores every active strategy on startup and shuts traders down gracefully, so your automation keeps running through deploys and restarts.

Market Intelligence Dashboard

A live market-overview page that fuses multiple data sources: global market cap, Fear & Greed index, Altseason index, perpetual funding rates, TVL by chain, top movers, trending coins, and a BTC rainbow chart, with live prices streaming over WebSockets.

The live market intelligence dashboard: global metrics, funding rates, TVL, and trending coins, streaming in real time.

Performance Analytics

TradingView Lightweight Charts rendering candles with buy/sell/indicator markers and interactive, animated trade cards, alongside portfolio tracking, PnL, staking balances, and complete order and trade history.

Performance analytics and complete trade history

Performance analytics and complete trade history

Telegram Notifications

A pluggable notification pipeline (dispatcher → channels → preferences → rate limiting) that delivers instant Telegram alerts the moment a strategy fires or a trade executes, with a webhook for two-way interaction.

Instant Telegram alerts the moment a strategy fires or a trade executes

Instant Telegram alerts the moment a strategy fires or a trade executes

AI Trading Assistant

A conversational assistant (Vercel AI SDK + OpenAI, with streamed responses) that helps users understand the market and shape their strategies in natural language.

Security by Design

Exchange API keys are stored encrypted and never exposed client-side; all trading logic runs server-side behind authenticated sessions.

Tech Stack

Next.js, React, and TypeScript on the front, with TanStack Query, Motion, and Rive for a fast, animated UI, TradingView Lightweight Charts for the market views, and @xyflow/react powering the visual strategy builder. A Python · FastAPI core drives strategy execution and scheduling, with Supabase Postgres, WebSockets, Telegram, and OpenAI tying real-time data, alerts, and the AI assistant together.

The Vision

My goal for Vora is to make algorithmic trading genuinely accessible, giving an individual trader the same caliber of automation, validation, and risk tooling that used to require a quant desk. A place where you can express an idea, prove it honestly, and let it run with confidence.

Takeaway & Reflection

Building a system that trades real money, autonomously, 24/7 raised the bar on everything. A bug isn't a cosmetic glitch, it's a bad fill. The pieces I'm proudest of are the ones that make the platform trustworthy: a live engine that recovers its own state after a restart, encrypted key handling, and Monte Carlo testing that fights the overfitting most backtesters quietly encourage.

If I could restart, I'd build the live execution engine first instead of the UI. It's the heart of the product and the hardest thing to get right, and everything else is ultimately in service of it. The biggest lesson was that in a trading product, reliability and clarity are the features: users don't just want it to look good, they need to trust it with their capital.