Practice. Improve. Compete. Glow.
TypeFlow is a modern, performance-focused typing speed test application. Built with React 18, TypeScript, and Tailwind CSS, it offers a seamless experience with real-time feedback, detailed analytics, and a highly customizable interface. Whether you're a casual typist or a speed-typing enthusiast, TypeFlow provides the tools you need to reach your peak performance.
- Real-time Metrics: Track WPM, accuracy, and consistency as you type.
- Multiple Modes: Switch between Words, Quotes, and a distraction-free Zen mode.
- Advanced Caret Styles: Choose from Line, Block, or Underline to match your preference.
- Performance Graphs: High-resolution charts showing your speed trends over time.
- Keyboard Heatmap: Visualize which keys are your strongest and which need work.
- History Tracking: Automatically save your best sessions (Supabase integrated).
- Personal Bests & Goals: Set targets and beat your records.
- Multiplayer Racing: Compete in real-time with friends in custom race rooms.
- Achievements: Unlock milestones as you progress.
- Friends System: Keep track of your typing buddies.
- Leaderboards: See how you stack up against the community.
- Theme Editor: Create and save your custom themes with the built-in editor.
- Visual Effects: Toggle particle effects, glow animations, and progress rings.
- Audio Feedback: Satisfying keypress sounds (optional).
-
Clone the repository
git clone https://github.com/abhi9vaidya/TypeFlow.git cd typeflow -
Install dependencies
bun install # or npm install -
Start development server
bun run dev # or npm run dev -
Open the App Navigate to
http://localhost:5173/
- Frontend: React 18 + TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS + Framer Motion
- UI Components: shadcn/ui (Radix UI)
- State Management: Zustand
- Data Fetching: React Query
- Backend: Supabase (Auth, Database, Realtime)
- Charts: Recharts
- Icons: Lucide React
src/
├── components/ # Reusable UI widgets & functional components
│ └── ui/ # Base shadcn-ui primitives
├── pages/ # Core views (History, Multiplayer, TypingTest, etc.)
├── store/ # Zustand state definitions
├── hooks/ # Custom React hooks (GhostRacing, metrics, etc.)
├── utils/ # Math, formatting, and constants
└── lib/ # Third-party integrations (Supabase, utils)
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
- Inspired by Monkeytype and other typing speed tests.
- UI components powered by shadcn/ui.
- Icons by Lucide.
Made with ❤️ by Abhinav Vaidya