Inspiration
We built FIanal.sim because learning to read the market can get expensive when every mistake involves real money. Watching tutorials helps, but it doesn’t give you many chances to make a decision yourself. Looking back at a chart also makes things seem obvious once you already know the outcome.
We wanted a way to practice making a call before seeing the answer—getting those reps without putting money on the line.
What it does
FIanal.sim turns historical market data into a replay exercise. Users explore a chart with the next section hidden, talk through their reasoning with a voice coach, and commit an analysis.
The app checks their numerical evidence before revealing what happened next. Keeping those steps separate matters: a correct prediction doesn’t automatically mean the reasoning behind it was sound.
Users can then reflect on their decision, complete the session, and revisit it in their record. They can also filter unfinished sessions, archive old ones, and restore them later.
How we built it
We built the interface with Next.js and React, backed by a TypeScript API using Fastify and PostgreSQL. Historical SOL/USDT candles provide the replay data.
The backend controls which candles the browser can access. The hidden section is withheld rather than simply covered on screen. Each submitted analysis is linked to a saved chart snapshot, keeping the evidence checks tied to exactly what the user could see.
The voice workflow connects Deepgram and ElevenLabs with server-side chart calculations. Users can ask about visible candles or describe their prediction, confidence, and reasoning aloud. The coach can turn that explanation into an editable analysis draft. Numerical answers come from server calculations rather than estimates made by the language model.
We also built optional Backboard learning-memory support and Solana devnet receipts that record a salted hash of an analysis.
Challenges we faced
One of the harder challenges was keeping the conversation useful without letting the coach give away the answer or make the decision for the user. Questions about visible chart values should work; requests for future prices or trading advice should be refused.
We also had to handle interrupted audio, delayed responses, and chart changes without attaching an answer to the wrong snapshot.
Another challenge was making the full workflow feel consistent. Drawings, indicators, submitted reasoning, feedback, and session history all need to survive navigation and reloads. We worked on those connections alongside stable layouts, clear result states, keyboard access, and motion that supports the interaction.
What we learned
The biggest thing we learned was how much of an AI-assisted product depends on the code around the model. The conversation is only one part. Reliable calculations, clear boundaries, saved state, and useful failure handling are what make it something a person can actually practice with.
We also learned to separate the quality of someone’s reasoning from whether their prediction happened to be right. That distinction shaped both the feedback system and the order of the replay experience.
Built With
- backboard
- betterauth
- binanceapi
- deepgram
- drizzleorm
- elevenlabs
- fastify
- next.js
- node.js
- pglite
- postgresql
- react
- solana
- tailwind
- tigerdata
- tradingview
- typescript
- zod
Log in or sign up for Devpost to join the conversation.