Peret
Traders see AI forecast edges in an inherited app, finished without a rebuild
Peret shows prediction market traders where an AI probability disagrees with Kalshi and Polymarket prices. A previous developer had built the first milestones, so we ran the whole stack first, then delivered the fixes, beta readiness and the prediction network, no rebuild.
Financial ServicesPrediction market analyticsModernized a live product
The challenge
Peret had a partly built product from a previous developer and needed to know what actually worked before paying for more work.
What we did
A technical review from a live run of the full stack, then fixes, beta readiness and the prediction network delivered on the existing code, with no rebuild.
The outcome
Every milestone was delivered: the review showed the core pipeline was real, the launch blockers and fixes followed, and the prediction network completed the scope. The next milestone is now in discussion.
- Starting point
- An existing build from a previous developer
- First step
- Live run of the full stack and a code review
- Edge
- AI minus market probability, computed once on the server
- Plans
- Paid data gated on the server, not only in the UI
The starting point
Peret is a subscription web app for prediction market traders. It brings in markets from Kalshi and Polymarket, adds an external AI probability for each one and ranks where the AI and the market disagree.
What had to change
A previous developer had completed the first milestones and the product worked in parts. The founder needed to know what was complete, what was mocked or broken, and what had to change before beta users could sign up.
What could not break
- Keep the existing code base and fix what is there
- Edge must mean the same thing on every screen
- Free users must never reach paid data, even through the API
- Market data and AI probabilities must keep flowing under provider rate limits
The calls we made
We treated the inherited code as something to prove before something to replace: run it, read it, then fix only what stood between it and beta.
- 01
Run the whole stack before judging it
We brought up the database, cache, API, queue worker and front end locally and let the pipeline run on live data, so every finding came from the running product, not from reading code alone.
Ruled outA full rebuild, which the founder ruled out unless the review found core parts missing.
- 02
One definition of edge
Edge is the AI probability minus the market probability, computed once on the server and read by the dashboard, detail pages, tables and exports, so a value can never be inverted on one screen.
- 03
Gate plans on the server
Paid AI data is checked on the server for every request, so a free account cannot pull it by calling the API directly. A demo switch that showed paid data to free users was flagged to stay off in production.
- 04
Blockers first, polish after
The review split the work into four launch blockers (pipeline health in production, the demo switch, a real checkout on staging, and sign in failing loudly without its key) and a second list of fixes and UI improvements.
How the system fits together
What we built
One edge, from dashboard to market page
Markets from Kalshi and Polymarket arrive through a queue worker with an external AI probability on each. The dashboard ranks them by edge, and each market page sets the venue price beside the AI probability and the edge, all read from one server side value and locked on the free plan.
Ask Peret AI
A search bar that suggests live markets as the trader types and offers suggested questions, with a probability and summary on the free tier and fuller analysis on paid plans.
Technical review from a live run
A short written review for the founder: what works, what is broken or incomplete, what to fix before launch, and practical UI and accessibility improvements, all from a live run of the full stack.
Launch readiness
Delivered from the review: the four launch blockers first, then the fix list, including a refresh cadence set around the AI provider's rate limit, a type check in the build and a fix for dashboard search, and the UI and accessibility improvements from the audit.
Prediction network
The final milestone: a simple, practical view of how related markets connect, so a trader can see how one event may move another, on paid plans.
How it works
Collect
A queue worker pulls live markets from Kalshi and Polymarket on a schedule.
Forecast
Each market gets an external AI probability, normalized to a clean 0 to 100 percent.
Rank
Edge is computed once on the server and the dashboard ranks markets by it.
Gate
The server checks the trader's plan before any paid AI data or edge leaves it.
A closer look
What changed
The review found the application real and substantially built: live market prices, AI probabilities and the edge between them all rendered correctly, with nothing mocked. In our run the pipeline brought in more than 580 markets and wrote more than 6,000 price snapshots. Because payments, sign in and plan gating were already sound, the work went into the launch blockers, the fix list and the prediction network instead of a rebuild, and every milestone was delivered.
Under the hood
- Datics role
- Product built by Datics
- Stack
- React and TypeScript on the front end, Hono on Node.js with PostgreSQL, and Redis with BullMQ for scheduled jobs.
- Integrations
- Kalshi and Polymarket for live markets, an external forecasting API for AI probabilities, Clerk for sign in, and Stripe for checkout, the billing portal, signed webhooks and the subscription lifecycle.
- Deployment
- The front end on Vercel and the back end on Railway.
- Review method
- A source code review plus a live run of the full stack: database, cache, API, background worker and front end.
Data and retrieval
Apps and APIs
Also in the stack
How it shipped
Technical review
A live run of the full stack and a source review, ending in a short written summary of what works, what does not and what to fix first.
Fixes and beta readiness
Launch blockers, the fix list and UI improvements delivered on the existing code, so the app runs behind the landing page for private testing and beta users.
Prediction network
The final milestone, a simple view of how related markets connect, scoped with the founder and delivered.
Built with the founder
Scope was set with the founder phase by phase, starting from the founder's request to verify the existing work before any new spend.
A review the founder could act on
The review was kept short and practical: what works, what is broken, what to fix before launch and what to do next.
What this unlocked
A further milestone with the founder is in discussion.
Related work
Have a product with the same kind of constraints?
Tell us what already exists and what you want it to do. We will tell you what it takes.
