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.
- 📊 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 // Soon
- 🔒 GDPR compliance
- 🔐 Data encryption
- 📊 API access
- How do I get started? Follow the Getting Started guide.
- Bun
See CONTRIBUTING.md for guidelines.
See SECURITY.md for reporting vulnerabilities.
-
What is Databuddy? Databuddy is a comprehensive analytics and data management platform.
-
How do I get started? Follow the Getting Started guide.
-
Is it free? Check our pricing page.
-
What are the system requirements? See Prerequisites.
-
How do I deploy? See the deployment documentation in our docs.
-
How do I contribute? See Contributing.
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
See ACKNOWLEDGMENTS.md for credits.
- Bun is required for all development and scripts. Do not use npm, pnpm, or Node.js CLI for install, run, or dev.
- Zod v4 (from
zod/v4) is required everywhere. Do not use Zod v3. - Use only Phosphor icons (not Lucide).
- Use Dayjs for date handling (never date-fns).
- Use Tanstack Query for hooks (never SWR).
- Use rounded for border radius (never rounded-xl or rounded-md).
- Never add placeholders or mock data.
- Always ensure type-safety and use shared types where possible.
- Never throw errors in server actions; use try/catch and return errors to the client.
- Always use error boundaries properly.
- Console usage: Use
console.error,console.time,console.json,console.table, etc. appropriately. - Almost never use useEffect unless critical.
- Use Ultracite for linting and formatting.
- Use Prettier for code formatting.
See .cursor/rules/ for the full enforced ruleset.