SIGN IN SIGN UP
umami-software / umami UNCLAIMED

Umami is a modern, privacy-focused analytics platform. An open-source alternative to Google Analytics, Mixpanel and Amplitude.

0 0 1 TypeScript
2020-07-17 01:03:38 -07:00
{
"name": "umami",
2025-06-18 22:13:51 -07:00
"version": "3.0.0",
2025-04-25 14:18:23 -07:00
"description": "A modern, privacy-focused alternative to Google Analytics.",
2024-02-29 14:14:29 -08:00
"author": "Umami Software, Inc. <hello@umami.is>",
2020-07-17 01:03:38 -07:00
"license": "MIT",
2021-02-26 22:46:44 -08:00
"homepage": "https://umami.is",
2020-07-23 19:56:55 -07:00
"repository": {
"type": "git",
"url": "https://github.com/umami-software/umami.git"
2020-07-23 19:56:55 -07:00
},
2025-05-14 15:29:03 -07:00
"type": "module",
2020-07-17 01:03:38 -07:00
"scripts": {
2025-04-16 21:29:47 -07:00
"dev": "next dev",
"dev-turbo": "next dev -p 3001 --turbopack",
2025-08-15 12:29:33 -07:00
"build": "npm-run-all check-env build-db check-db build-tracker build-geo build-app",
"build-turbo": "npm-run-all check-env build-db check-db build-tracker build-geo build-app-turbo",
2022-09-09 22:33:39 +08:00
"start": "next start",
2025-08-15 12:29:33 -07:00
"build-docker": "npm-run-all build-db build-tracker build-geo build-app",
"start-docker": "npm-run-all check-db update-tracker set-routes-manifest start-server",
2022-06-27 10:34:03 -07:00
"start-env": "node scripts/start-env.js",
2022-06-19 00:07:01 -07:00
"start-server": "node server.js",
2020-08-21 01:45:44 -07:00
"build-app": "next build",
2025-06-26 21:44:00 -07:00
"build-app-turbo": "next build --turbo",
2025-05-26 23:13:15 -07:00
"build-icons": "svgr ./src/assets --out-dir src/components/svg --typescript",
"build-components": "tsup",
2025-06-06 19:44:09 -07:00
"build-tracker": "rollup -c rollup.tracker.config.js",
"build-prisma-client": "node scripts/build-prisma-client.js",
2025-05-07 13:40:21 -07:00
"build-lang": "npm-run-all format-lang compile-lang download-country-names download-language-names clean-lang",
"build-geo": "node scripts/build-geo.js",
2025-08-15 12:29:33 -07:00
"build-db": "npm-run-all build-db-client build-prisma-client",
2022-06-19 00:07:01 -07:00
"build-db-schema": "prisma db pull",
"build-db-client": "prisma generate",
"set-routes-manifest": "node scripts/set-routes-manifest.js",
"update-tracker": "node scripts/update-tracker.js",
2022-06-19 00:07:01 -07:00
"update-db": "prisma migrate deploy",
2022-06-22 01:50:33 -07:00
"check-db": "node scripts/check-db.js",
2023-05-16 20:41:20 -07:00
"check-env": "node scripts/check-env.js",
2022-06-19 00:07:01 -07:00
"copy-db-files": "node scripts/copy-db-files.js",
2024-02-23 20:40:44 -08:00
"extract-messages": "formatjs extract \"src/components/messages.ts\" --out-file build/extracted-messages.json",
2023-04-07 22:03:52 -07:00
"merge-messages": "node scripts/merge-messages.js",
"generate-lang": "npm-run-all extract-messages merge-messages",
2020-09-12 04:19:33 -07:00
"format-lang": "node scripts/format-lang.js",
2023-04-22 00:55:55 -07:00
"compile-lang": "formatjs compile-folder --ast build/messages public/intl/messages",
2025-05-07 13:40:21 -07:00
"clean-lang": "prettier --write ./public/intl/**/*.json",
2020-10-03 11:21:44 -07:00
"download-country-names": "node scripts/download-country-names.js",
"download-language-names": "node scripts/download-language-names.js",
2022-01-06 00:49:07 -08:00
"change-password": "node scripts/change-password.js",
2021-11-22 14:53:36 -08:00
"lint": "next lint --quiet",
"prepare": "node -e \"if (process.env.NODE_ENV !== 'production'){process.exit(1)} \" || husky install",
2024-02-27 21:41:34 -08:00
"postbuild": "node scripts/postbuild.js",
2024-03-01 13:25:32 -08:00
"test": "jest",
2024-02-28 16:29:35 -08:00
"cypress-open": "cypress open cypress run",
"cypress-run": "cypress run cypress run"
2020-07-17 01:03:38 -07:00
},
"lint-staged": {
2022-11-19 18:28:46 -08:00
"**/*.{js,jsx,ts,tsx}": [
"prettier --write",
"eslint"
2020-07-17 01:03:38 -07:00
],
"**/*.css": [
"stylelint --fix",
"prettier --write"
],
"**/*.json": [
"prettier --write"
2020-07-17 01:03:38 -07:00
]
},
2022-12-26 20:50:55 -08:00
"cacheDirectories": [
".next/cache"
],
2020-07-17 01:03:38 -07:00
"dependencies": {
"@clickhouse/client": "^1.12.0",
"@date-fns/utc": "^1.2.0",
"@dicebear/collection": "^9.2.3",
"@dicebear/core": "^9.2.3",
2025-08-28 23:29:42 -07:00
"@fontsource/inter": "^5.2.6",
"@hello-pangea/dnd": "^17.0.0",
2025-08-27 17:23:58 -07:00
"@prisma/adapter-pg": "^6.15.0",
"@prisma/client": "^6.15.0",
2025-04-26 21:25:55 -07:00
"@prisma/extension-read-replicas": "^0.4.1",
2025-08-28 23:29:42 -07:00
"@react-spring/web": "^10.0.1",
2025-05-09 22:06:39 -07:00
"@svgr/cli": "^8.1.0",
2025-08-24 15:20:19 -07:00
"@tanstack/react-query": "^5.85.5",
2025-09-08 15:28:01 -07:00
"@umami/react-zen": "^0.180.0",
"@umami/redis-client": "^0.29.0",
"bcryptjs": "^3.0.2",
2025-08-24 15:20:19 -07:00
"chalk": "^5.6.0",
2025-06-20 09:26:48 -07:00
"chart.js": "^4.5.0",
"chartjs-adapter-date-fns": "^3.0.0",
2021-04-24 21:27:24 -07:00
"classnames": "^2.3.1",
2022-01-14 00:39:27 -08:00
"colord": "^2.9.2",
"cors": "^2.8.5",
2022-06-19 00:07:01 -07:00
"cross-spawn": "^7.0.3",
2021-07-25 21:36:07 -07:00
"date-fns": "^2.23.0",
2021-07-12 00:39:12 -07:00
"date-fns-tz": "^1.1.4",
2022-08-26 22:43:31 -07:00
"debug": "^4.3.4",
2022-04-04 14:36:42 -07:00
"del": "^6.0.0",
2020-10-13 18:24:27 -07:00
"detect-browser": "^5.2.0",
2025-08-28 23:29:42 -07:00
"dotenv": "^17.2.1",
2025-09-02 09:27:37 -07:00
"esbuild": "^0.25.9",
"eslint-plugin-promise": "^6.1.1",
2025-08-28 23:29:42 -07:00
"fs-extra": "^11.3.1",
"immer": "^10.1.1",
2021-07-12 00:39:12 -07:00
"ipaddr.js": "^2.0.1",
2022-04-04 14:36:42 -07:00
"is-ci": "^3.0.1",
"is-docker": "^3.0.0",
"is-localhost-ip": "^2.0.0",
2025-08-18 22:30:22 -07:00
"isbot": "^5.1.30",
"jsonwebtoken": "^9.0.2",
2025-07-21 10:58:58 -07:00
"jszip": "^3.10.1",
2022-08-01 00:28:38 -07:00
"kafkajs": "^2.1.0",
2025-08-28 23:29:42 -07:00
"lucide-react": "^0.542.0",
"maxmind": "^5.0.0",
2025-08-27 17:23:58 -07:00
"next": "15.5.2",
2022-07-16 22:28:05 -07:00
"node-fetch": "^3.2.8",
2022-04-04 03:43:29 -07:00
"npm-run-all": "^4.1.5",
2025-07-22 00:24:37 -07:00
"papaparse": "^5.5.3",
2025-07-02 11:54:17 -07:00
"pg": "^8.16.3",
2025-08-27 17:23:58 -07:00
"prisma": "6.15.0",
"pure-rand": "^7.0.1",
2025-08-07 12:36:11 -07:00
"react": "^19.1.1",
"react-dom": "^19.1.1",
2023-04-25 14:41:54 -07:00
"react-error-boundary": "^4.0.4",
"react-intl": "^7.1.11",
2020-11-01 22:01:30 -08:00
"react-simple-maps": "^2.3.0",
2021-03-26 17:08:58 -07:00
"react-use-measure": "^2.0.4",
2020-11-01 22:01:30 -08:00
"react-window": "^1.8.6",
2022-08-23 12:12:28 -07:00
"request-ip": "^3.3.0",
2023-10-19 18:12:02 -07:00
"semver": "^7.5.4",
2025-01-08 17:00:59 -08:00
"serialize-error": "^12.0.0",
"thenby": "^1.3.4",
"uuid": "^11.1.0",
2025-08-28 23:29:42 -07:00
"zod": "^4.1.5",
2025-08-21 01:43:51 -07:00
"zustand": "^5.0.8"
2020-07-17 01:03:38 -07:00
},
"devDependencies": {
2021-07-25 21:36:07 -07:00
"@formatjs/cli": "^4.2.29",
2025-08-24 15:20:19 -07:00
"@netlify/plugin-nextjs": "^5.12.1",
2023-04-21 12:43:37 -07:00
"@rollup/plugin-alias": "^5.0.0",
"@rollup/plugin-commonjs": "^25.0.4",
2023-04-21 12:43:37 -07:00
"@rollup/plugin-json": "^6.0.0",
"@rollup/plugin-node-resolve": "^15.2.0",
"@rollup/plugin-replace": "^5.0.2",
"@rollup/plugin-terser": "^0.4.4",
2025-09-01 15:59:06 -07:00
"@rollup/plugin-typescript": "^12.1.4",
2025-08-28 23:29:42 -07:00
"@types/jest": "^30.0.0",
"@types/node": "^24.3.0",
2025-08-27 17:23:58 -07:00
"@types/react": "^19.1.12",
"@types/react-dom": "^19.1.8",
2023-12-09 01:25:02 -08:00
"@types/react-window": "^1.8.8",
2025-08-27 17:23:58 -07:00
"@typescript-eslint/eslint-plugin": "^8.41.0",
"@typescript-eslint/parser": "^8.41.0",
2025-09-01 20:18:38 -07:00
"@umami/prisma-client": "^0.19.0",
"babel-plugin-react-compiler": "19.1.0-rc.2",
2025-08-28 23:29:42 -07:00
"cross-env": "^10.0.0",
2024-02-27 21:41:34 -08:00
"cypress": "^13.6.6",
2023-02-04 08:59:52 -08:00
"eslint": "^8.33.0",
2025-08-24 15:20:19 -07:00
"eslint-config-next": "^14.2.32",
"eslint-config-prettier": "^10.1.8",
2022-08-28 20:20:54 -07:00
"eslint-import-resolver-alias": "^1.1.2",
"eslint-plugin-css-modules": "^2.12.0",
2024-03-01 15:56:18 -08:00
"eslint-plugin-cypress": "^2.15.1",
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-jest": "^27.9.0",
"eslint-plugin-prettier": "^5.5.3",
2020-09-05 17:27:01 -07:00
"extract-react-intl-messages": "^4.1.1",
2025-08-28 23:29:42 -07:00
"husky": "^9.1.7",
2024-03-01 13:25:32 -08:00
"jest": "^29.7.0",
2025-08-28 23:29:42 -07:00
"lint-staged": "^16.1.5",
2025-06-20 09:26:48 -07:00
"postcss": "^8.5.6",
"postcss-flexbugs-fixes": "^5.0.2",
"postcss-import": "^15.1.0",
"postcss-preset-env": "7.8.3",
"prettier": "^3.6.2",
2022-03-31 09:55:42 -07:00
"prompts": "2.4.2",
2025-09-01 15:59:06 -07:00
"rollup": "^4.49.0",
"rollup-plugin-copy": "^3.4.0",
2025-09-01 15:59:06 -07:00
"rollup-plugin-delete": "^3.0.1",
"rollup-plugin-dts": "^6.2.3",
"rollup-plugin-node-externals": "^8.1.0",
"rollup-plugin-peer-deps-external": "^2.2.4",
2023-04-21 12:43:37 -07:00
"rollup-plugin-postcss": "^4.0.2",
2023-07-10 09:54:51 -07:00
"stylelint": "^15.10.1",
"stylelint-config-css-modules": "^4.5.1",
2021-10-27 02:05:39 -07:00
"stylelint-config-prettier": "^9.0.3",
"stylelint-config-recommended": "^14.0.0",
2023-02-04 08:59:52 -08:00
"tar": "^6.1.2",
2025-06-20 09:26:48 -07:00
"ts-jest": "^29.4.0",
"ts-node": "^10.9.1",
2025-09-01 15:59:06 -07:00
"tsup": "^8.5.0",
2025-08-28 23:29:42 -07:00
"typescript": "^5.9.2"
2022-12-26 20:50:55 -08:00
}
2020-07-17 01:03:38 -07:00
}