The Umami GitHub repository represents more than just another analytics solution—it embodies a fundamental shift toward privacy-respecting web measurement. With over 33,400 stars and 5,900 forks, this open-source project has captured the attention of developers worldwide who are tired of sacrificing user privacy for insights. Built with modern technologies like Next.js, TypeScript, and PostgreSQL, Umami delivers enterprise-grade analytics without the complexity or privacy compromises of traditional platforms.
What makes Umami exceptional is its cookieless architecture that eliminates GDPR consent requirements while still providing comprehensive website metrics. Unlike Google Analytics, which feeds user data into advertising ecosystems, Umami keeps your analytics data entirely under your control. This self-hosted approach means you own every data point, never sharing visitor information with third parties or external vendors.
Umami's real-time dashboard gives you instant visibility into visitor activity across your websites. The platform tracks:
Managing analytics for multiple properties becomes effortless with Umami's workspace system. Whether you're:
Each website maintains independent tracking while you control everything from one centralized dashboard interface.
Go beyond simple page views to measure actions that actually matter for your business:
// Track button clicks
umami.track('signup-clicked', { plan: 'premium' });
// Monitor feature usage
umami.track('export-completed', { format: 'csv' });
// Measure conversions
umami.track('purchase', { value: 99.99, currency: 'USD' });
The lightweight JavaScript API integrates seamlessly with modern frameworks like Next.js and React applications.
Umami is built with TypeScript (97.4% of codebase), providing type safety and exceptional developer experience. This choice ensures:
| Database | Support Status | Performance | Use Case |
|---|---|---|---|
| PostgreSQL | Primary (v12.14+) | Excellent | Production deployments |
| MySQL | Deprecated in v3 | Good | Legacy only |
| ClickHouse | Not supported | N/A | Alternative platforms |
Starting with Umami v3.0, PostgreSQL is the exclusive database backend, optimizing for performance and feature consistency.
Docker Deployment (Recommended):
docker pull docker.umami.is/umami-software/umami:latest
docker-compose up -d
Platform-as-a-Service Options:
Source Installation:
git clone https://github.com/umami-software/umami.git
cd umami
pnpm install
pnpm build
pnpm start
Traditional analytics platforms treat privacy as a compliance checkbox. Umami treats it as a core architectural principle:
| Feature | Umami | Plausible | Matomo |
|---|---|---|---|
| Script Size | 2KB | <1KB | 22.8KB |
| Database | PostgreSQL | ClickHouse | MySQL/MariaDB |
| Setup Complexity | Easy | Moderate | Complex |
| Resource Usage | Low | Moderate | High |
| Feature Richness | Balanced | Minimal | Extensive |
| Docker Support | Excellent | Good | Available |
Umami strikes the optimal balance between simplicity and functionality, making it ideal for developers who want powerful analytics without operational overhead.
Before deploying Umami, ensure you have:
Create a .env file with your database connection:
DATABASE_URL=postgresql://username:password@localhost:5432/umami
HASH_SALT=your-secure-random-hash-salt-here
The HASH_SALT should be a randomly generated string for securing tracking data.
Umami includes automated migration scripts that create all necessary tables:
pnpm install
pnpm prisma migrate deploy
This sets up your PostgreSQL database with the complete Umami schema.
Compile the TypeScript codebase and start the server:
pnpm build
pnpm start
Your Umami instance runs on port 3000 by default. Access the dashboard and create your first website tracking profile.
For Next.js projects, add the Umami script to your _app.tsx or use Next.js Script component:
import Script from 'next/script';
export default function App({ Component, pageProps }) {
return (
<>
<Script
src="https://analytics.yourdomain.com/script.js"
data-website-id="your-website-id"
strategy="afterInteractive"
/>
<Component {...pageProps} />
</>
);
}
Create reusable hooks for tracking events throughout your React application:
import { useCallback } from 'react';
export function useUmamiTrack() {
return useCallback((event: string, data?: object) => {
if (window.umami) {
window.umami.track(event, data);
}
}, []);
}
Umami works seamlessly with static site generators including Hugo, Jekyll, Gatsby, and Eleventy. Simply include the tracking script in your HTML template.
The Umami repository showcases 328 contributors actively improving the platform. Recent contributions include:
The MIT license provides maximum flexibility for developers:
Track user engagement across your application without compromising customer privacy. Monitor feature adoption, identify drop-off points, and optimize onboarding flows—all while maintaining GDPR compliance.
Understand which articles resonate with readers, measure engagement time, analyze traffic sources, and optimize content strategy based on actionable insights rather than vanity metrics.
Monitor product page views, track checkout completion rates, identify cart abandonment patterns, and measure marketing campaign effectiveness while respecting customer privacy throughout the purchase journey.
For companies building developer-focused products, Umami tracks documentation usage, measures API adoption rates, and identifies areas where developers struggle—crucial data for improving developer experience.
Umami's architecture ensures security by design:
Organizations subject to privacy regulations benefit from Umami's compliance-friendly approach:
At just 2KB compressed, the Umami tracking script loads faster than alternatives:
For high-traffic websites, optimize your PostgreSQL configuration:
As traffic grows, Umami scales horizontally:
The recent v3.0 release introduces significant improvements:
A completely rebuilt dashboard provides:
Create user cohorts based on behavior patterns:
Drill deeper into your analytics with advanced filters:
If Umami fails to connect to PostgreSQL:
# Verify PostgreSQL is running
pg_isready -h localhost -p 5432
# Check connection string format
DATABASE_URL=postgresql://user:pass@host:5432/dbname
# Test connection manually
psql $DATABASE_URL
Common issues preventing script execution:
If your Umami instance slows down:
The Umami maintainers are working on:
Popular feature requests from the community include:
Platform
GitHub
Language
TypeScript
License
MIT
Stars
33k+
Umami is an open-source, privacy-focused web analytics platform that provides website insights without cookies or tracking user data. Unlike Google Analytics, Umami doesn't share visitor information with third parties, eliminates GDPR consent requirements, and keeps all analytics data under your complete control through self-hosting. This makes it ideal for developers and organizations prioritizing user privacy while maintaining comprehensive analytics capabilities.
Deploying Umami requires Node.js 18.18+, PostgreSQL 12.14+, and pnpm. Clone the GitHub repository, configure your database connection in a .env file, run database migrations with 'pnpm prisma migrate deploy', build the application with 'pnpm build', and start the server with 'pnpm start'. Alternatively, use Docker with the official image for simplified deployment with docker-compose.
Yes, Umami is GDPR compliant by design because it doesn't use cookies or collect personally identifiable information. The platform anonymizes all visitor data and tracks analytics without creating persistent user identifiers. Since no cookies are set and no personal data is collected, you don't need consent banners or complex compliance procedures required by platforms like Google Analytics.
Umami v3 introduces a completely redesigned user interface with enhanced data visualization, advanced cohort analysis for tracking user retention, improved segmentation capabilities with multiple filter criteria, and exclusive PostgreSQL database support (MySQL is no longer supported). The update also brings performance optimizations and new dashboard features focused on providing deeper insights into visitor behavior.
Yes, Umami provides a simple JavaScript API for tracking custom events. Use 'umami.track('event-name', { property: 'value' })' to monitor actions like button clicks, form submissions, purchases, or feature usage. You can also track events using HTML data attributes or implement server-side tracking with available language integrations for comprehensive conversion measurement.
Umami scales efficiently through horizontal scaling strategies including multiple application instances behind load balancers, PostgreSQL read replicas for query distribution, Redis caching for aggregated statistics, and connection pooling. The lightweight 2KB tracking script minimizes performance impact, while database optimizations like partitioning and indexing ensure fast queries even with millions of page views.
Umami deploys successfully on various platforms including Vercel for serverless hosting, DigitalOcean App Platform for managed infrastructure, Render for simplified deployment, and self-hosted VPS providers for maximum control. Docker support makes deployment consistent across environments. Choose based on your scaling needs, budget, and infrastructure management preferences.
Absolutely! The Umami repository welcomes contributions from the 328+ active contributors. Fork the GitHub repository, create a feature branch for your changes, write tests for new functionality, and submit pull requests with clear descriptions. The MIT license allows you to modify and extend Umami for your specific needs while contributing improvements back to the community.
Privacy-focused AI search engine that runs on your hardware. Open source Perplexity alternative with local LLM support, specialized search modes, and complete privacy.
Self-hosted uptime monitoring tool with beautiful UI. Track website uptime, server health, SSL certificates. 90+ notification integrations. Open source alternative to UptimeRobot.
Open source marketing automation platform with email campaigns, lead scoring, and segmentation. Self-hosted alternative to HubSpot and Mailchimp with complete data control.