A high-performance, professional-grade visual board designed for tracking the 2026 NFL Draft. Originally built for the Kansas City Chiefs, the application is fully data-driven and can be configured for any team or draft board preference.
- Dynamic Positional Board: Visual 2D grid of players organized by positional columns and draft round horizontal slices.
- Configurable Layout: Fully customizable column order (QB, RB, WR...) via
public/columns.txt. - Intelligent Search: Real-time filtering by Player Name or Position in the Left Panel.
- Draft Unranked Players: Manually draft players missing from the big board using the "Draft Unranked" modal.
- Session Persistence (CSV): Save and restore your full draft state (including trades and pick history) using human-readable CSV files.
- High-Quality Export: Generate professional 15.6MP JPEG snapshots of your board for sharing and analysis.
The application is prepared to support real-time synchronization by polling live draft data to automatically update the board as selections are made.
Use at your own risk. Users are responsible for ensuring compliance with applicable laws and terms. The authors assume no liability for any misuse or resulting damages.
- Search & Draft: Use the search bar in the Left Panel to find players by name/position. Click any player card in the rankings or on the board to draft.
- Custom Draft: Click "Draft Unranked Player" at the bottom of the Left Panel to enter players manually.
- Session Management: Use the Save Session and Load Session buttons at the bottom of the Right Panel to persist mock drafts as CSV files.
- Export Board: Click Export JPEG in the Top Panel to download a high-resolution image of the central board.
- Update Picks: Modify your team's owned picks via the "Update Picks" modal (Gold highlights).
- Undo: Use the "Undo" button to revert the last drafting action.
- Live Sync Activation: Add
?sync=trueto the URL to enable the Live Sync toggle in the Top Panel. - Rankings Override: Load a custom CSV by adding
?rankings=https://your-url.com/rankings.csvto the URL.- Note: External URLs must support CORS.
The application is driven by three primary files in the /public directory:
Defines the player pool and board layout.
- Format:
group,name,position - Group Optionality: The
groupfield is only required for the first player in a new board row. Subsequent rows with empty group values will automatically inherit the last seen group. - Vertical Grouping: The
groupvalue (e.g.,1.1,1.2) creates a horizontal slice across the entire board, allowing you to group players by round or specific draft tier.
- Open Excel and create three columns:
group,name, andposition. - Enter your player data. Use the
groupcolumn sparingly to create row breaks. - Click File > Save As.
- Choose CSV (Comma delimited) (*.csv) as the file format.
- Save the file as
rankings.csvand place it in thepublic/folder of the project.
A simple list of pick numbers owned by your team.
- Format: Comma-separated integers.
- Example:
32, 64, 95, 126
Defines the order of positional columns from left to right.
- Format: Comma-separated list of positions.
- Example:
QB, RB, WR, TE, OT, IOL, EDGE, DL, LB, CB, S
The application requires Node.js (LTS recommended) and npm.
-
Download Node.js: https://nodejs.org
-
Use PowerShell or Command Prompt
-
Verify installation:
node -v
npm -v
-
Install Node.js from https://nodejs.org
or via Homebrew:brew install node
-
Open Terminal
-
Verify installation:
node -v
npm -v
-
Install Node.js:
sudo apt update
sudo apt install nodejs npm -
Open terminal
-
Verify installation:
node -v
npm -v
git clone https://github.com/FBrand/DraftBoard.git
cd DraftBoard
npm install
Alternatively: download ZIP from GitHub and extract it.
npm run dev
Open:
http://localhost:5173
npm run build
Creates a dist/ folder with production files.
npm run preview
The application is fully static and can be hosted on any web server or hosting platform.
-
Build the project:
npm run build
-
Upload the contents of the
dist/folder to your hosting provider. -
Ensure your server is configured for SPA routing (fallback to
index.html).
The app runs entirely in the browser and requires no backend.
The application features a robust discovery system. If the src/services/ directory (containing synchronization logic) is missing, the "Live Sync" functionality will gracefully disable itself in the UI without affecting the core board experience.
