Tianji is a self-hosted, open-source platform designed to consolidate three essential web monitoring functions—website analytics, uptime monitoring, and server status tracking—into a single unified interface. Built to address the operational overhead of managing multiple tools like Google Analytics, Umami, and UptimeKuma separately, Tianji provides a streamlined alternative for developers and DevOps teams who need visibility into website traffic, server health, and service availability without the complexity of maintaining separate services. Inspired by Umami and UptimeKuma, it offers a lightweight, integrated solution that reduces tool sprawl while retaining core functionality for users who don’t require enterprise-grade depth.
The project emphasizes ease of deployment and maintenance, supporting Docker, Helm, and one-click deploy options on platforms like Render, Hostinger, and Sealos. It also includes telemetry to anonymously track deployment statistics, helping open-source maintainers understand real-world usage patterns. With built-in OpenAPI support, team collaboration features, UTM tracking, and Lighthouse reports, Tianji is tailored for technical users seeking a consolidated monitoring stack that’s simple to install and operate.
What You Get
- Website Analytics - Tracks page views, unique visitors, referrers, and UTM parameters with a privacy-focused, Umami-inspired interface that doesn’t require cookies or user tracking.
- Uptime Monitoring - Monitors website and service availability with passive result reception, allowing external scripts or tools to send status updates via HTTP POST.
- Server Status Monitoring - Collects and displays real-time server metrics such as CPU, memory, disk usage, and network traffic, visualized in an intuitive dashboard.
- Telemetry System - Collects anonymous deployment data to help developers understand how widely Tianji is being used, without compromising user privacy.
- Lighthouse Reports - Integrates Google Lighthouse performance audits directly into the dashboard for SEO and speed optimization insights.
- OpenAPI - Provides a programmable API to integrate Tianji data with external tools, automate reporting, or build custom dashboards.
- Team Collaboration - Supports multi-user access with role-based permissions for shared monitoring and analytics dashboards.
- One-Click Deploy - Offers pre-configured deployment options via Docker, Helm, Render, Hostinger, Sealos, and ClawCloud for rapid setup.
- Custom Monitor Reporters - Allows users to download and configure standalone monitor reporters with custom parameters for use on external servers.
Common Use Cases
- Building a privacy-focused website analytics stack - Replacing Google Analytics with Tianji for compliance with GDPR or CCPA, while still tracking page views and traffic sources without cookies.
- Monitoring a self-hosted application with minimal overhead - A developer deploying a SaaS tool on a VPS uses Tianji to monitor server health, uptime, and user engagement—all from one dashboard.
- Problem → Solution flow: Too many monitoring tools → Unified view - Teams juggling Umami, UptimeKuma, and Prometheus spend hours switching between dashboards; Tianji consolidates all metrics into a single interface with one login.
- DevOps teams managing multi-server deployments - Uses Tianji’s monitor reporters to send uptime and status data from distributed servers, with centralized alerts and Lighthouse performance benchmarks.
Under The Hood
The Tianji project is a modular, multi-platform development framework designed to support diverse deployment scenarios including web, mobile, and cloud-native environments. It enables unified application development and automation across platforms through a cohesive ecosystem of tools and services.
Architecture
This project adopts a modular, multi-tiered architecture that supports flexible deployment across various environments.
- The codebase is organized into distinct apps and examples, each addressing specific use cases such as app store reviews and AI-driven triggers.
- A monorepo structure with pnpm workspaces facilitates shared SDKs and consistent development practices across interdependent packages.
- Dependency injection and configuration-driven composition are key design patterns, especially in the Expo example where UI components are modular and configurable.
- Component interactions leverage SDKs and shared interfaces, enabling extensibility with external services like Google Play and App Store APIs.
Tech Stack
The project utilizes a modern tech stack built primarily in TypeScript, with support for full-stack and cross-platform development.
- Built with TypeScript, React, Node.js, and React Native, offering flexibility across web, mobile, and serverless environments.
- Integrates libraries such as Zod for validation, Axios for HTTP communication, and UI frameworks like Ant Design and Gluestack UI.
- Employs pnpm for package management, Vite for builds, and Docker/Kubernetes for containerization and orchestration.
- Vitest is used for unit testing, particularly in Cloudflare Worker contexts, with basic test configurations across modules.
Code Quality
The project exhibits a mixed level of code quality, with strengths in testing and error handling but some areas requiring improvement.
- Comprehensive test strategies are implemented, including unit tests and basic integration checks across modules.
- Error handling is consistently applied with structured approaches, particularly in API and SDK interactions.
- Code style and naming are mostly consistent, though some technical debt is present in legacy or less-maintained components.
- Linting and type safety are configured, supporting maintainability and reducing runtime errors.
What Makes It Unique
The project stands out through its unique blend of multi-platform development and AI-powered automation in a unified architecture.
- It uniquely integrates React Native, web, and Cloudflare Worker environments under one cohesive system for cross-platform observability.
- AI-triggered workflows and modular SDKs enable automation and real-time responsiveness across deployment targets.
- The architecture supports extensibility through shared interfaces and component composition, allowing seamless integration with external platforms.
- It enables developers to build and deploy applications across multiple environments using a single, unified codebase.