Loading project…
Loading project…
Personal project
A web application for dart tournaments, with team draws, group stages, playoffs and match results.
Click the image to open the gallery

Behind the project
Pasd’Art started with a need in my own darts group. We handled draws, matches, standings and results manually. It worked, but keeping track of the whole tournament could quickly get messy.
I wanted to bring everything together: creating a tournament, drawing teams, running the group stage and playoffs, and eventually finding a winner.
I develop the project myself and handle design, UX, frontend, backend, the database and deployment. This also includes permissions, a spectator view and support for different match formats.
The application is built with Next.js, TypeScript and Material UI. Data is stored in PostgreSQL through Neon, with Drizzle for database access. The project is live on Vercel.
The biggest challenge has been making the tournament logic work across different scenarios. Group stages, standings, castoff tie-breaks, seeding and playoffs all need to work together, including when several teams finish with equal results.
Scheduling has also taken a lot of work. Matches need to be spread across multiple dartboards without scheduling the same team in two matches at once.
The project has given me practical experience with data modelling, API structure, state management and security. I've worked through how the interface, match logic and saved results affect each other.
As the project has grown, I've also seen why large components need to be split up. Giving each part a clearer responsibility makes the code easier to understand, debug and build on.
We've tested real tournament flows in the app. That gives me specific things to improve and helps me shape the system around our darts nights.
Next, I'd like to add tournament history, player statistics, a leaderboard, ratings and better team balancing. These are planned improvements; for now, I'm focusing on developing the existing tournament flow.