Technology
The software components behind sr-stats, in broad terms.
sr-stats consists of a web app, data storage and a documentation site. This page shows which components currently play a role in those parts. We do not publish internal setup or operational details.
The app
The web app runs on these components.
Next.js
The web app and its server-rendered pages.
React
The interface library the app is built with.
TypeScript
Typed code throughout the application.
Tailwind CSS
Styling built on sr-stats' own design variables.
Base UI
The interactive building blocks of the interface.
CVA
Consistent variants of components.
Material Symbols Rounded
The icons in the app.
Framer Motion
Animations and transitions in the interface.
Bone
sr-stats' own loading placeholders that show the shape of a page while data arrives.
React Wheel Picker
The scroll wheel for picking filter values.
Maps, charts and data in the app
These components show maps and charts and keep the app's data in step.
Leaflet
The interactive maps, including the course maps.
Leaflet Geoman
Drawing and editing routes on a map.
Recharts
The charts, such as points per season.
SWR
Fetching data in the browser and keeping it fresh.
Zustand
The state of the partner map editor.
Zod
Checking that incoming data has the expected shape.
react-force-graph
The interactive network graphs, built on D3's force simulation.
Images and files
sharp
Processing images on the server, such as the preview images for shared links.
SheetJS
Reading spreadsheets, such as Excel files with member lists.
Data and accounts
Data, accounts and sessions run through these components.
PostgreSQL
The relational data storage.
Supabase
PostgreSQL is hosted at Supabase.
Better Auth
Accounts and sessions for the app.
Upstash
Redis and rate limiting where needed.
Hosting and documentation
The web app and this documentation run on these components.
Data synchronisation
The sync server imports the race data on these components.
Communication
Transactional email goes through these providers.
Zeptomail
The primary provider for transactional email.
Resend
The backup provider for transactional email.