Real-time analytics for your product. Track every use-case of your business in real-time.
MetricsWave is an open-source analytics platform that helps businesses track custom events, create beautiful dashboards, and gain insights into user behavior and business metrics in real-time.
- Create unlimited custom dashboards with drag-and-drop widgets
- Real-time data visualization with charts, graphs, and metrics
- Public dashboard sharing capabilities
- Responsive design for mobile and desktop viewing
- Compare data across different time periods
- Track custom events and user interactions
- Configure webhooks for external integrations
- Set up automated triggers based on specific conditions
- Monitor business-critical metrics and KPIs
- Historical data analysis and reporting
- JavaScript tracking library for web applications
- Support for popular frameworks (React, Next.js, Svelte)
- WordPress plugin integration
- Google Tag Manager compatibility
- Webhook API for custom integrations
- Multi-team support with role-based access
- Team member invitations and management
- Shared dashboards and reports
- Notification channels for important events
- GDPR compliant data handling
- Secure data transmission and storage
- User consent management
- Data retention controls
- Track conversion funnels and customer journeys
- Monitor subscription metrics and churn rates
- Analyze product usage and feature adoption
- Measure marketing campaign effectiveness
- Track content engagement and reading patterns
- Monitor video/audio consumption metrics
- Analyze user interaction with different content types
- Measure social sharing and virality
- Track user onboarding completion rates
- Monitor feature usage and app performance
- Analyze user retention and engagement
- Measure in-app purchase conversions
- Track lead generation and qualification
- Monitor email campaign performance
- Analyze website traffic and user behavior
- Measure A/B testing results
- Frontend: React 18 + TypeScript
- Styling: Tailwind CSS
- UI Components: Radix UI
- Charts: Recharts, Nivo
- State Management: React Context + Custom Hooks
- Routing: React Router v6
- Build Tool: Create React App
- Testing: Jest + React Testing Library
Before running MetricsWave locally, make sure you have:
- Node.js (version 16 or higher)
- npm or yarn package manager
- Git for version control
git clone https://github.com/your-username/metricswave.git
cd metricswave/appnpm install
# or
yarn installCreate a .env file in the root directory and configure your environment variables:
REACT_APP_API_URL=your_api_endpoint
REACT_APP_TRACKER_URL=your_tracker_endpoint
REACT_APP_SENTRY_DSN=your_sentry_dsn (optional)npm start
# or
yarn startThe application will open in your browser at http://localhost:3000.
npm run build
# or
yarn buildThis creates an optimized production build in the build folder.
npm start- Runs the app in development modenpm test- Launches the test runner in interactive watch modenpm run build- Builds the app for productionnpm run analyze- Analyzes the bundle size with source-map-explorer
src/
βββ components/ # Reusable UI components
β βββ dashboard/ # Dashboard-specific components
β βββ form/ # Form inputs and controls
β βββ icons/ # Icon components
β βββ ...
βββ contexts/ # React context providers
βββ helpers/ # Utility functions and helpers
βββ layouts/ # Page layout components
βββ pages/ # Main application pages
βββ routes/ # Routing configuration
βββ storage/ # State management and API calls
βββ types/ # TypeScript type definitions
βββ index.tsx # Application entry point
We welcome contributions from the community! Here's how you can help:
- Check existing issues to avoid duplicates
- Create a detailed bug report with:
- Steps to reproduce
- Expected vs actual behavior
- Screenshots if applicable
- Browser/environment details
- Check existing feature requests
- Create a detailed feature request with:
- Use case description
- Proposed solution
- Alternative solutions considered
- Implementation suggestions
- Fork the repository
- Create a feature branch
git checkout -b feature/your-feature-name
- Make your changes
- Follow the existing code style
- Add tests for new features
- Update documentation as needed
- Test your changes
npm test npm run build - Commit your changes
git commit -m "feat: add your feature description" - Push to your fork
git push origin feature/your-feature-name
- Create a Pull Request
- Use TypeScript for all new code
- Follow React functional component patterns
- Use meaningful variable and function names
- Add JSDoc comments for complex functions
- Keep components small and focused
- Write tests for new features
- Write unit tests for utility functions
- Add integration tests for critical user flows
- Test components in isolation
- Ensure accessibility compliance
- Test responsive design on different screen sizes
For more detailed documentation, visit:
Build fails with memory errors:
NODE_OPTIONS="--max_old_space_size=4096" npm run buildTypeScript errors:
npm run build --skip-ts-errorsDependencies issues:
rm -rf node_modules package-lock.json
npm installThis project is licensed under the MIT License - see the LICENSE file for details.
- Radix UI for accessible component primitives
- Tailwind CSS for utility-first styling
- Recharts for beautiful data visualization
- All the amazing contributors who help improve MetricsWave
- Community: Join our discussions in GitHub Issues
- Email: For business inquiries: sales@metricswave.com
- Documentation: metricswave.com/documentation
Made with β€οΈ by the MetricsWave community