Skip to content

trakrlog-com/trakrlog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

TrakrLog

Open Source Event Logging for Indie Game & SaaS Developers


๐Ÿ“– About

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.

Why TrakrLog?

  • ๐ŸŽฎ 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

โœจ Features

Core Capabilities

  • 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

Developer Experience

  • 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

๐Ÿš€ Quick Start

Prerequisites

  • Docker and Docker Compose
  • (Optional) Google OAuth credentials for authentication

Local Development with Docker

  1. Clone the repository

    git clone https://github.com/trakrlog-com/trakrlog.git
    cd trakrlog
  2. Configure environment (optional for OAuth)

    # Edit .env.local if you want to test Google OAuth
    nano .env.local
  3. Start the application

    make docker-run
    # Or manually:
    docker compose -f docker-compose.local.yml --env-file .env.local up --build
  4. Access the application

  5. Stop the application

    make docker-down
    # Or manually:
    docker compose -f docker-compose.local.yml down

Native Development (without Docker)

  1. Install dependencies

    # Backend
    go mod download
    
    # Frontend
    cd frontend
    npm install
  2. Build the application

    make build
  3. Run with live reload

    # Backend (installs air if needed)
    make watch
    
    # Frontend (in separate terminal)
    cd frontend
    npm run dev

๐Ÿ› ๏ธ Tech Stack

Backend

  • 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

Frontend

  • 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

Infrastructure

  • Docker - Containerized deployment
  • Caddy - Automatic HTTPS and reverse proxy
  • Air - Live reload for Go development
  • Testcontainers - Integration testing with containers

๐Ÿ“ Project Structure

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

๐Ÿงช Testing

# Run all tests
make test

# Run integration tests (requires Docker)
make itest

# Frontend tests
cd frontend
npm run test

๐Ÿ“š Documentation


๐Ÿค Contributing

We welcome contributions from the community! Whether you're fixing bugs, adding features, or improving documentation, your help makes TrakrLog better for everyone.

How to Contribute

  1. Fork the repository
  2. Create a feature branch
    git checkout -b feature/amazing-feature
  3. Make your changes
    • Follow existing code style and conventions
    • Add tests for new features
    • Update documentation as needed
  4. Commit your changes
    git commit -m 'Add some amazing feature'
  5. Push to your branch
    git push origin feature/amazing-feature
  6. Open a Pull Request

Development Guidelines

  • 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

Areas We Need Help

  • ๐ŸŽฎ 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

๐Ÿ”จ Makefile Commands

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 artifacts

๐Ÿ“„ License

This project is open source and available under the GNU AFFERO GENERAL PUBLIC LICENSE.


๐ŸŒŸ Support

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

๐Ÿ“ž Contact & Community


Made with โค๏ธ for indie developers by indie developers

Own your data. Own your analytics.

```bash make clean ```

About

Open-source, self-hosted platform for game and SaaS developers to track events and receive real-time push notifications.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages