An interactive web application for visualizing and prioritizing product concepts using an Impact-Effort matrix. Built with React, TypeScript, and Chart.js.
- Interactive Table: Enter up to 20 product concepts with customizable names
- Impact & Effort Scoring: Rate each concept on a 1-10 scale for both impact and effort
- Real-time Visualization: See your concepts plotted on an interactive scatter chart
- Drag-and-Drop: Click and drag points on the chart to adjust scores visually
- Bidirectional Sync: Changes in the table update the chart, and dragging points updates the table
- Quadrant Shading: Visual zones help identify:
- Quick Wins (High Impact, Low Effort) - Green
- Major Projects (High Impact, High Effort) - Blue
- Fill In Tasks (Low Impact, Low Effort) - Yellow
- Money Pit (Low Impact, High Effort) - Pink
- Responsive Design: Works seamlessly on desktop and mobile devices
- Reset Functionality: Clear all data and start fresh with one click
- Node.js (v18 or higher recommended)
- npm or yarn
- Clone the repository:
git clone https://github.com/yourusername/impact-effort-visualizer.git
cd impact-effort-visualizer- Install dependencies:
npm install- Start the development server:
npm run dev- Open your browser and navigate to
http://localhost:5173
To create a production build:
npm run buildThe built files will be in the dist directory.
To preview the production build locally:
npm run preview- In the table on the left, enter concept names in the "Concept" column
- Add Impact scores (1-10) where 10 = highest impact
- Add Effort scores (1-10) where 10 = highest effort
- Points will automatically appear on the chart as you enter both scores
- Simply type in any field to update values
- Impact and Effort values are automatically clamped to the 1-10 range
- Empty values will remove the point from the chart
- Click on any point on the chart
- Drag it to a new position
- Release to update the scores
- The table will automatically reflect the new values
- Scores snap to integer values between 1-10
The chart is divided into four quadrants to help prioritize:
- Quick Wins (Top-Left): High impact, low effort - prioritize these!
- Major Projects (Top-Right): High impact, high effort - plan carefully
- Fill In Tasks (Bottom-Left): Low impact, low effort - do when you have time
- Money Pit (Bottom-Right): Low impact, high effort - avoid or reconsider
Click the "Reset All" button in the header to clear all concepts and start over.
- Push your code to a GitHub repository
- Go to Vercel
- Click "New Project"
- Import your GitHub repository
- Vercel will auto-detect Vite settings:
- Build Command:
npm run build - Output Directory:
dist
- Build Command:
- Click "Deploy"
- Install Vercel CLI:
npm install -g vercel- Deploy:
vercel- Follow the prompts to link your project
No environment variables are required for this application. It runs entirely in the browser with no backend dependencies.
- React 18 - UI framework
- TypeScript - Type safety
- Vite - Build tool and dev server
- Chart.js - Charting library
- react-chartjs-2 - React wrapper for Chart.js
- chartjs-plugin-dragdata - Drag-and-drop functionality for chart points
impact-effort-visualizer/
├── src/
│ ├── components/
│ │ ├── ConceptTable.tsx # Table component for data entry
│ │ ├── ConceptTable.css
│ │ ├── ImpactEffortChart.tsx # Interactive chart component
│ │ └── ImpactEffortChart.css
│ ├── App.tsx # Main app component
│ ├── App.css
│ ├── main.tsx # React entry point
│ ├── index.css
│ ├── types.ts # TypeScript interfaces
│ └── utils.ts # Helper functions
├── public/
├── index.html
├── package.json
├── tsconfig.json
├── vite.config.ts
└── README.md
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
Contributions are welcome! Please feel free to submit a Pull Request.
MIT License - feel free to use this project for any purpose.
- Inspired by the classic Impact-Effort prioritization matrix
- Built with modern web technologies for a smooth user experience
