Products I built and run on my own time, all live and open source: LLM tool calling over a deterministic compute layer, real-time multiplayer on an authoritative Socket.IO server, reconciliation of Indian credit card statements, and a Solana terminal that settles on mainnet. More on GitHub.
2026 · Next.js 16 · TypeScript · Tailwind v4
Crypto Trading App
A Solana terminal that settles on mainnet
A Solana trading terminal that executes real swaps on mainnet. Not a paper-trading simulator.
Discovery and analysis: trending tokens from live market data (Birdeye), token search (DexScreener), OHLCV candlestick charts, a live swap feed, holder concentration, on-chain safety heuristics (mint and freeze authority, liquidity depth, pair age), and optional OpenAI risk summaries.
Execution: the server fetches Jupiter quotes and builds unsigned versioned transactions. The user signs with a Privy embedded wallet in the browser. The transaction is broadcast over RPC and confirmed on-chain. API keys stay server-side.
There is no application database. Market state comes from providers and balances live on-chain.
An expense tracker, validator and analyser for Indian credit card statements. It opens the password-protected PDF your bank emails you, checks its arithmetic, and turns a wallet of cards into one screen.
Statements arrive locked. Outlay derives the password from the cardholder profile, trying fourteen issuer patterns in a preference order, and learns a new template from any password typed once, so the next card at that issuer opens unprompted. The file is unlocked and read in memory and never written to disk.
Extraction is deterministic, with no model involved. Up to thirteen checks then run before anything is persisted, the important ones comparing computed debit and credit totals against the totals the bank printed, so a half-read statement announces itself instead of quietly skewing a year of numbers. The check record is stored with the statement.
Every account is a tenant. Name, date of birth, card digits and statement passwords are sealed with AES-256-GCM under a key derived per account, so a leak scoped to one account cannot unseal another.
The only optional model call rereads merchant names when the category rules get them wrong. A whole upload batch goes in one call, metered at two reviews per card per month with the review reserved in the database before the model is called, and what changed is shown for a glance, never as a required step.
Real-time multiplayer party games in a browser tab. One person creates a room, everyone else types the five-letter code, and the table plays on their own phones. No download, no account.
An authoritative Node and Socket.IO server sends per-player state snapshots, so no client ever holds information its player should not see.
The client is a zero-build vanilla JavaScript PWA. Five games ship with it, including social deduction, a co-operative counting puzzle, and an AI-judged rule-guessing game.
LLM game logic is hardened against prompt injection, and 568 end-to-end checks drive real socket clients against the server.
A conversational assistant for private-markets investors. Ask about holdings, MOIC, DPI, RVPI, fees, capital calls, distributions, and statements in plain language.
The core design rule: the model never invents a number. OpenAI tool calling handles intent and data access, all financial math runs in a deterministic compute layer over structured ledger data, and every answer returns the source rows plus a calculation trace.
It handles multi-currency reporting (USD, GBP, EUR, AED), multi-round positions, partial capital calls, write-offs, down rounds, and partial secondaries.
A golden-number eval suite verifies the compute layer without any model calls.