Skip to main content

Developer guide

The UI is a Vite single-page app written in TypeScript. It has no backend of its own: in production nginx serves the build and proxies /v1/* to the core API.

What is the stack?​

ConcernChoice
BuildVite 8, TypeScript 6
UIReact 19, Mantine 9 (@mantine/core, charts, hooks, nprogress)
RoutingReact Router 7 (BrowserRouter; large pages are lazy-loaded)
DataTanStack Query 5
ChartsMantine Charts on Recharts
Drag and drop@dnd-kit/core
TestsVitest 5, Testing Library, jsdom
Component libraryStorybook 10
Lintoxlint
Servenginx in a Docker image

Where is the code?​

PathHolds
src/App.tsxRoute table
src/components/Pages and panels; ui/ and player/ hold shared components, and inbox/ and tradeScore/ group larger features
.storybook/Storybook config and the mockFetch story helper
src/api/Request client, response types and query definitions
src/hooks/Shared hooks such as useSelectedWeek and useDraftConfig
src/theme.tsPalette and Mantine theme (design system)
nginx.conf.templateProduction proxy
PageCovers
API client and typesRequests, errors, timeouts, sign-in redirect
State and data fetchingConfig, query cache, week selection
Run locallyDev server, port-forward, env vars
TestingRunning tests and CI checks
Component libraryWriting and running stories