A fantasy football draft order generator that handles keeper leagues with automatic penalty calculations and snake draft ordering.
- Keeper League Management: Support for up to 2 keepers per team with automatic penalty tracking
- Snake Draft Generation: Automatic draft order generation with alternating rounds
- Penalty System: Smart penalty calculation for drafted players (lose pick 2 rounds later)
- Free Agent Handling: Special treatment for undrafted players with late-round assignments
- Export Options: Copy to clipboard or download draft results as text
- Real Data Integration: Pre-loaded with 2025 league data and keeper selections
- Framework: Next.js 15 with TypeScript
- UI: Tailwind CSS + Radix UI components
- Deployment: AWS Amplify integration
- State Management: React hooks with session storage
- Styling: Custom design system with dark/light mode support
- Node.js 18+
- npm or yarn
git clone <repository-url>
cd axiom-keeper-client
npm installnpm run devOpen http://localhost:3000 to view the application.
npm run build
npm start- Setup Phase: Configure league settings (rounds 10-18) and team members
- Keeper Selection: Add up to 2 keepers per team with original draft round info
- Penalty Calculation: System automatically calculates where teams lose picks
- Draft Generation: Creates complete snake draft order with keeper assignments
- Results Export: View, copy, or download the final draft order
The application implements standard keeper league rules:
- Maximum 2 keepers per team (optional)
- Cannot keep same player for more than 2 consecutive years
- Drafted Players: Keep in original round, lose pick 2 rounds later
- Undrafted Players: No penalty, assigned to rounds (n-1) and (n-2) where n = total rounds
- Snake draft format with alternating round order
src/
├── app/ # Next.js app router pages
├── components/ # Reusable UI components
│ ├── ui/ # Base UI components (buttons, cards, etc.)
│ ├── member-form.tsx # Team member configuration
│ └── theme-provider.tsx # Dark/light mode handling
├── lib/ # Core business logic
│ ├── keeper-rules.ts # Keeper validation and penalty logic
│ ├── draft-logic.ts # Draft order generation
│ └── api.ts # API integration
├── types/ # TypeScript type definitions
└── data/ # Static data (2024 draft results, 2025 keepers)
GET /api/draft/players- Fetch available playersPOST /api/draft/generate- Generate draft order with league configuration
The application is configured for AWS Amplify deployment with:
- Automatic builds on main branch
- Environment-based configuration
- Serverless API endpoints
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request