A fun and interactive ping pong score tracking web application built with SvelteKit.
Note: this has been migrated from a native iOS app I made to lear Swift and SwiftUI to SvelteKit, so I learn it.
- β‘ Real-time score tracking for two teams
- π Confetti celebrations when a team wins
- πΎ Serve tracking with visual indicator
- π± Mobile-friendly with touch and swipe gestures
- βοΈ Configurable game rules
- π Undo functionality
- π¨ Beautiful gradient design matching iOS aesthetics
- Node.js (v18 or higher)
- npm or yarn
- Clone the repository:
git clone <repository-url>
cd ping-that-pong-web- Install dependencies:
npm install- Start the development server:
npm run dev- Open your browser and navigate to
http://localhost:5173
- Scoring: Tap on a team's area to add a point
- Swipe Gestures:
- Swipe right to add a point
- Swipe left to remove a point
- Serve Tracking: The tennis ball emoji indicates which team is serving
- Configuration: Tap the gear icon to adjust:
- Maximum points to win
- Serve swap frequency
- Overtime serve swap rules
- Undo: Use the undo button to revert the last point
- Reset: Clear the score and start over
- Standard ping pong rules apply
- Games typically go to 11 points
- Serve swaps every 2 points (configurable)
- In overtime, serve swaps every point (configurable)
- Win by 2 points difference
- SvelteKit - Full-stack web framework
- TypeScript - Type safety
- Canvas Confetti - Celebration effects
- Hammer.js - Touch gesture recognition
- Modern CSS with custom properties and animations
# Start development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run preview
# Type check
npm run check- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is private and proprietary.
- Inspired by the original iOS ping pong score app
- Built with modern web technologies for a smooth user experience