TrakrLog is a free, open-source event logging and analytics platform designed specifically for indie game and SaaS developers. Own your data, self-host your analytics, and gain deep insights into your applications without the complexity or cost of enterprise solutions.
Track everything from critical bugs to user behavior, performance metrics to custom eventsโall in real-time with an intuitive dashboard and powerful analytics tools.
- ๐ฎ Built for Indie Devs: First-class support for game engines (Unity, Godot) and web frameworks
- ๐ฐ 100% Free & Open Source: No hidden costs, no usage limits, no vendor lock-in
- ๐ Privacy-First: Self-host and own your data completely
- โก Real-Time Insights: Track events as they happen with lightweight SDKs
- ๐ฏ Simple Integration: Get started in minutes, not hours
- ๐ Powerful Analytics: Deep insights without the complexity
- Real-time Event Logging - Track gameplay events, performance metrics, and system data instantly
- Advanced Analytics - Powerful dashboards with detailed insights and visualizations
- Project & Channel Organization - Organize events by projects and channels for clarity
- Custom Event Tags - Attach custom metadata to events for flexible filtering
- User Insights - Understand how users experience your game or app
- Smart Notifications - Get real-time alerts for critical events
- Google OAuth Integration - Secure authentication out of the box
- Multi-Engine SDK Support - Native SDKs for Godot, Unity, React, Node.js, and more
- REST API - Simple HTTP endpoints for easy integration
- Self-Hosted - Full control with Docker deployment
- Lightweight - Performance-optimized for minimal overhead
- TypeScript Support - Fully typed for better DX
- Docker and Docker Compose
- (Optional) Google OAuth credentials for authentication
-
Clone the repository
git clone https://github.com/trakrlog-com/trakrlog.git cd trakrlog -
Configure environment (optional for OAuth)
# Edit .env.local if you want to test Google OAuth nano .env.local -
Start the application
make docker-run # Or manually: docker compose -f docker-compose.local.yml --env-file .env.local up --build -
Access the application
- Frontend: http://localhost:4000
- API Health: http://localhost:4000/api/health
- MongoDB: localhost:27017
-
Stop the application
make docker-down # Or manually: docker compose -f docker-compose.local.yml down
-
Install dependencies
# Backend go mod download # Frontend cd frontend npm install
-
Build the application
make build
-
Run with live reload
# Backend (installs air if needed) make watch # Frontend (in separate terminal) cd frontend npm run dev
- Go 1.25+ - High-performance API server
- Gin - Web framework with routing and middleware
- MongoDB - Flexible document database for events and analytics
- OAuth2 - Google authentication integration
- React 19 - Modern UI with hooks and context
- TypeScript - Type-safe development
- Vite - Lightning-fast build tool
- Tailwind CSS 4 - Utility-first styling
- Headless UI - Accessible component primitives
- Heroicons - Beautiful hand-crafted icons
- React Router - Client-side routing
- Luxon - DateTime handling
- Docker - Containerized deployment
- Caddy - Automatic HTTPS and reverse proxy
- Air - Live reload for Go development
- Testcontainers - Integration testing with containers
trakrlog/
โโโ cmd/api/ # Application entry point
โโโ internal/ # Private application code
โ โโโ auth/ # Authentication logic (Google OAuth)
โ โโโ database/ # Database connection and utilities
โ โโโ handler/ # HTTP request handlers
โ โโโ middleware/ # HTTP middleware (auth, CORS, etc.)
โ โโโ model/ # Data models (Project, Channel, Event, User)
โ โโโ repository/ # Database operations layer
โ โโโ server/ # Server setup and routing
โ โโโ service/ # Business logic layer
โโโ frontend/ # React application
โ โโโ src/
โ โ โโโ components/ # React components
โ โ โโโ pages/ # Page components
โ โ โโโ context/ # React context providers
โ โ โโโ hooks/ # Custom React hooks
โ โ โโโ types/ # TypeScript type definitions
โ โโโ public/ # Static assets
โโโ docs/ # Documentation
โโโ docker-compose.*.yml # Docker configurations
โโโ Makefile # Build and development commands
# Run all tests
make test
# Run integration tests (requires Docker)
make itest
# Frontend tests
cd frontend
npm run test- Local Testing Guide - Detailed guide for local development
- Deployment Guide - Production deployment instructions
- VPS Deployment - Deploy to a VPS
We welcome contributions from the community! Whether you're fixing bugs, adding features, or improving documentation, your help makes TrakrLog better for everyone.
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Make your changes
- Follow existing code style and conventions
- Add tests for new features
- Update documentation as needed
- Commit your changes
git commit -m 'Add some amazing feature' - Push to your branch
git push origin feature/amazing-feature
- Open a Pull Request
- Code Style: Follow Go and TypeScript best practices
- Commits: Write clear, descriptive commit messages using conventional commits notation.
- Tests: Add tests for new functionality
- Documentation: Update README and docs for significant changes
- Issues: Check existing issues before creating new ones
- ๐ฎ SDK Development - Unity, Godot, Unreal Engine integrations
- ๐ Analytics Features - New visualization and insights tools
- ๐ Bug Fixes - Check our issues
- ๐ Documentation - Improve guides and tutorials
- ๐ Translations - Help us reach more developers worldwide
make all # Build frontend, backend, and run tests
make build # Build the entire application
make run # Run the application natively
make docker-run # Start local containerized environment
make docker-down # Stop local containers
make test # Run all tests
make itest # Run integration tests
make watch # Run with live reload (uses air)
make clean # Remove build artifactsThis project is open source and available under the GNU AFFERO GENERAL PUBLIC LICENSE.
If you find TrakrLog useful, please consider:
- โญ Starring the repository
- ๐ Reporting bugs and requesting features
- ๐ค Contributing to the codebase
- ๐ข Spreading the word to other indie developers
- GitHub: @trakrlog-com
- Website: trakrlog.com
- Issues: GitHub Issues
Made with โค๏ธ for indie developers by indie developers
Own your data. Own your analytics.
