A lightweight, performant web app for tapping out the tempo of songs. Designed as a Progressive Web App (PWA) optimized for mobile devices.
- Simple Tap Interface: Large tap area for easy use
- Real-time BPM Display: Shows tempo as you tap
- Lock Last BPM: Save and display previous tempo readings
- Progressive Web App: Install on mobile devices for app-like experience
- Responsive Design: Works on desktop and mobile
- Lightweight: Minimal bundle size for fast loading
- Offline Support: Works without internet connection
Visit the live app: https://bpm-tap-0.netlify.app/
- Node.js 18+
- npm
# Clone the repository
git clone https://github.com/username/bpm-tap.git
cd bpm-tap
# Install dependencies
npm install
# Start development server
npm run devnpm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLintnpm run format- Format code with Prettiernpm run type-check- Run TypeScript type checking
- Visit the app in your mobile browser
- Look for "Add to Home Screen" or "Install App" prompt
- Follow the prompts to install
- Visit the app in Chrome/Edge
- Look for the install icon in the address bar
- Click to install as a desktop app
This project uses semantic-release for automated versioning and releases.
Use Conventional Commits format:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Types:
feat: New features → minor version bumpfix: Bug fixes → patch version bumpfeat!orBREAKING CHANGE:: Breaking changes → major version bumpdocs,style,refactor,perf,test,chore: No version bump
Examples:
feat: add haptic feedback for mobile devices
fix: correct BPM calculation for rapid tapping
docs: update installation instructions
perf: optimize color interpolation algorithm
feat!: redesign tap interface- Push commits to
mainbranch using conventional format - GitHub Actions automatically:
- Runs tests and builds the app
- Determines next version based on commits
- Creates a GitHub release with changelog
- Deploys to Netlify
The app automatically deploys to Netlify when changes are pushed to the main branch.
# Build the app
npm run build
# Deploy dist/ folder to your hosting providerSet these secrets in your GitHub repository:
NETLIFY_AUTH_TOKEN: Your Netlify personal access tokenNETLIFY_SITE_ID: Your Netlify site IDGITHUB_TOKEN: Automatically provided by GitHub Actions
- Framework: Vue 3 with Composition API
- Build Tool: Vite
- Language: TypeScript
- Styling: SCSS
- PWA: Vite PWA Plugin
- Color Interpolation: d3-interpolate
- CI/CD: GitHub Actions + semantic-release
- Hosting: Netlify
Contributions are welcome! Please read our Contributing Guide for details on:
- Development setup
- Code style guidelines
- Commit message format
- Pull request process
This project is licensed under the MIT License - see the LICENSE file for details.
Created for musicians, producers, and anyone who needs to quickly determine the tempo of music. The app prioritizes simplicity, performance, and mobile-first design.