---
title: "Umami"
description: "Self-hosted web analytics script."
url: https://plate.findmalek.engineer/docs/umami
markdown: https://plate.findmalek.engineer/docs/umami.md
group: "Modules"
---

# Umami

The `umami` module loads the [Umami](https://umami.is) script in `apps/web` and `apps/dashboard`. It is off by default.

```bash
findplate create my-app --modules umami
```

## What it adds

Files and folders:

- `apps/web/components/umami.tsx`
- `apps/dashboard/components/umami.tsx`

## Env keys

```bash
NEXT_PUBLIC_UMAMI_URL=
NEXT_PUBLIC_UMAMI_WEBSITE_ID=
```

Both keys are inlined at `next build`, so pass them as build args on Docker and Dokploy. With the website id empty nothing is tracked. A compose file for the server is in [self-hosted tools](https://plate.findmalek.engineer/docs/self-hosted.md#umami).

## Remove

Run `findplate remove umami` in the project, see [add and doctor](https://plate.findmalek.engineer/docs/add-doctor.md#findplate-remove). It deletes the files the module owns, strips its code from shared files and drops its packages, only where you haven't edited them.

If you'd rather do it by hand: for a new project leave `umami` out of `--modules`. In a project that already exists, delete the paths above, drop its packages from the `package.json` files, remove its env block and fix what `pnpm check-types` reports.

## Swap

Analytics modules are independent. Generate with `databuddy` instead for cookieless tracking, or keep both. See [Databuddy](https://plate.findmalek.engineer/docs/databuddy.md).
