explaingit

umami-software/umami

📈 Trending36,716TypeScriptAudience · pm founderComplexity · 3/5ActiveLicenseSetup · moderate

TLDR

Self-hosted, privacy-first web analytics platform that replaces Google Analytics. Collect visitor data on your own server instead of sending it to third parties.

Mindmap

mindmap
  root((Umami))
    What it does
      Track visitor behavior
      Self-hosted dashboard
      Privacy-first design
    Key features
      Page views and sessions
      User journeys
      Cohort analysis
    Tech stack
      TypeScript
      Next.js
      PostgreSQL
    Deployment
      Docker Compose
      Self-hosted
      Cloud option
    Use cases
      Replace Google Analytics
      GDPR compliance
      Indie projects

Things people build with this

USE CASE 1

Replace Google Analytics with a privacy-respecting alternative that keeps all visitor data on your own server.

USE CASE 2

Track user behavior (page views, session duration, referrers) for your website or app without third-party data brokers.

USE CASE 3

Meet GDPR and other data protection regulations by hosting analytics infrastructure you fully control.

USE CASE 4

Analyze user journeys and cohorts for your indie project or startup without paying for Mixpanel or Amplitude.

Tech stack

TypeScriptNext.jsReactNode.jsPostgreSQLDockerpnpm

Getting it running

Difficulty · moderate Time to first run · 30min

Requires Docker and PostgreSQL setup; needs environment configuration for the Next.js app.

Use freely for any purpose including commercial, as long as you keep the copyright notice.

In plain English

Umami is a privacy-focused, open-source web analytics platform that serves as an alternative to Google Analytics, Mixpanel, and Amplitude. Instead of sending your visitors' data to a third-party company, Umami lets you host your own analytics dashboard where you stay in complete control of all the data collected. This solves a common problem for website and app owners who want to understand how their users behave without sacrificing user privacy or depending on commercial data brokers. At its core, Umami works by embedding a small tracking script on your website. When visitors land on a page, the script sends information (such as which page they visited, how long they stayed, and where they came from) directly to your own server, where Umami stores it in a PostgreSQL database. You can then log in to Umami's web dashboard to view charts, audience segments, user journeys, and cohort analysis, all features you'd expect from enterprise analytics tools, but running entirely on infrastructure you own. You would reach for Umami when you want clear traffic insights without the privacy concerns tied to Google Analytics (which shares data with Google's ad ecosystem), or when your users are in regions with strict data protection laws like the EU's GDPR. It is also a good fit for indie developers, startups, or teams who want to avoid paying for Mixpanel or Amplitude, since Umami is completely free to self-host. The tech stack is TypeScript throughout, built on Next.js (a React-based web framework) for the front-end dashboard, with a Node.js server (version 18.18 or higher required) on the backend. It uses PostgreSQL as its database, can be deployed via Docker Compose for easy setup, and is managed with pnpm for package management. A hosted cloud version is also available at umami.is if you prefer not to manage your own server.

Copy-paste prompts

Prompt 1
How do I set up Umami analytics on my website? Walk me through embedding the tracking script and viewing the dashboard.
Prompt 2
I want to self-host Umami using Docker Compose. What are the steps to get it running with PostgreSQL?
Prompt 3
Show me how to create audience segments and cohort analysis in Umami to understand my user behavior.
Prompt 4
What data does Umami collect compared to Google Analytics, and how is it more privacy-friendly?
Prompt 5
I'm switching from Google Analytics to Umami. How do I migrate my website's tracking and set up custom events?
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.