Skip to content

Prospect Sports

A market where you buy shares in athletes like stocks, hold a portfolio and compete. Built for a startup in exchange for a stake. Never finished, and it runs on fake data.

role: sole developer · jan – jul 2023 · web
Prospect Sports
165commits on the app, 161 mine
119commits on the server, 103 mine
10tables in the schema

Overview

Prospect Sports is a market for athletes. You buy shares in a player the way you would buy a stock, the price moves, you hold a portfolio, and you compete against other people on how yours does. A startup was building it and I built the product: the app from January to June 2023, then the server through July.

It was never finished. Real money was the intent, but payments were never built, so the demo linked here runs entirely on seeded data. I was working for a stake in the company rather than a fee, and after seven months I stopped.

The model

The schema describes the product better than a pitch would. A user has a wallet balance, typed as money, that never held any. An athlete has statistics and a stock, and that stock is priced from a tier (role player, starter, star, all star, superstar, generational) with a history of prices after that. A holding joins a user to a stock. Competitions have types and entrants, and notifications carry a type and a status between two users. Ten tables, four tRPC routers over them: athlete, competition, notification, user.

On the app side that becomes onboarding, player search, a player profile, an invest screen for buying shares, daily picks, a portfolio, and a compete tab.

How it's built

Expo Router in TypeScript, running on the web through React Native Web, with NativeBase components, Zustand for local state, TanStack Query over tRPC for server state, Formik for forms, and Reanimated and Bottom Sheet for the interaction. 165 commits, 161 of them mine.

The server is Express and tRPC with Prisma on Postgres and SuperTokens for auth. Postgres and SuperTokens both come up in Docker Compose locally, Doppler holds the secrets, and it all sits in a Lerna monorepo where each package is a git submodule. 119 commits, 103 mine.

The link

The demo is the app on faker data. No live prices, no wallet, no payments.

Screenshots

landing
create account
invest
player search
player profile
buying shares
daily picks
portfolio
compete
settings