Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

5,687 Commits

Databuddy

License: AGPLTypeScriptNext.jsReactTurborepoBunTailwind CSS

CodeRabbit Pull Request ReviewsCode CoverageSecurity ScanDependency Status

Vercel OSS Program

DiscordGitHub StarsTwitter

A comprehensive analytics and data management platform built with Next.js, TypeScript, and modern web technologies. Databuddy provides real-time analytics, user tracking, and data visualization capabilities for web applications.

🌟 Features

  • 📊 Real-time analytics dashboard
  • 👥 User behavior tracking
  • 📈 Advanced data visualization // Soon
  • 🔒 Secure authentication
  • 📱 Responsive design
  • 🌐 Multi-tenant support
  • 🔄 Real-time updates // Soon
  • 📊 Custom metrics // Soon
  • 🎯 Goal tracking
  • 📈 Conversion analytics
  • 🔍 Custom event tracking
  • 📊 Funnel analysis
  • 📈 Cohort analysis // Soon
  • 🔄 A/B testing // Soon
  • 📈 Export capabilities
  • 🔒 GDPR compliance
  • 🔐 Data encryption
  • 📊 API access

📚 Table of Contents

  1. How do I get started? Follow the Getting Started guide.

Prerequisites

  • Bun 1.3.14+
  • Node.js 20+

🏠 Self-Hosting

Databuddy can be self-hosted using Docker Compose. The repo includes two compose files:

FilePurpose
docker-compose.yamlDevelopment only — starts infrastructure (Postgres, ClickHouse, Redis) for local dev
docker-compose.selfhost.ymlProduction / self-hosting — backend services from GHCR images

Quick Start

# 1. Configure environment
cp .env.example .env
# Edit .env — set IMAGE_TAG, URL-safe database/cache passwords, public URLs,# BETTER_AUTH_SECRET, DATABUDDY_ENCRYPTION_KEY, IP_HASH_SALT, and# AI_GATEWAY_API_KEY. Make the local database URLs use the same credentials# before running the initialization commands below.# 2. Start databases and cache
docker compose -f docker-compose.selfhost.yml up -d postgres clickhouse redis
# 3. Initialize databases from the repo checkout (first run only)
bun install --frozen-lockfile
bun run db:push
bun run clickhouse:init
# 4. Start backend services
docker compose -f docker-compose.selfhost.yml up -d

Services started:

  • APIlocalhost:3001
  • Basket (event ingestion) → localhost:4000
  • Insights (investigation worker) → localhost:4002
  • Links (short links) → localhost:2500

All ports are configurable via env vars (API_PORT, BASKET_PORT, etc.). See the compose file comments for the full env var reference.

🤝 Contributing

See CONTRIBUTING.md for guidelines.

🔒 Security

See SECURITY.md for reporting vulnerabilities.

❓ FAQ

General

  1. What is Databuddy? Databuddy is a comprehensive analytics and data management platform.

  2. How do I get started? Follow the Getting Started guide.

  3. Is it free? Check our pricing page.

Technical

  1. What are the system requirements? See Prerequisites.

  2. How do I deploy? See the deployment documentation in our docs.

  3. How do I contribute? See Contributing.

💬 Support

📄 License

This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). See the LICENSE file for details.

Copyright (c) 2025 Databuddy Analytics, Inc.

About

Databuddy is a privacy-first analytics platform with a focus on user experience, with it's foundation built on privacy, it ensures complete compliance with most major data privacy laws out of the box

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1.1k stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages