TechIn.StatusPage 1.2.0

dotnet add package TechIn.StatusPage --version 1.2.0
                    
NuGet\Install-Package TechIn.StatusPage -Version 1.2.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="TechIn.StatusPage" Version="1.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="TechIn.StatusPage" Version="1.2.0" />
                    
Directory.Packages.props
<PackageReference Include="TechIn.StatusPage" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add TechIn.StatusPage --version 1.2.0
                    
#r "nuget: TechIn.StatusPage, 1.2.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package TechIn.StatusPage@1.2.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=TechIn.StatusPage&version=1.2.0
                    
Install as a Cake Addin
#tool nuget:?package=TechIn.StatusPage&version=1.2.0
                    
Install as a Cake Tool

TechIn.StatusPage

A beautiful, developer-first status page and health check dashboard for ASP.NET Core applications.

TechIn.StatusPage seamlessly transforms your native .NET HealthChecks into a sleek, public-facing portal. It tracks uptime history, visualizes system stability, monitors latency, and automatically reports outages with a modern, minimalist interface.

✨ Features

  • Native Integration: Hooks directly into Microsoft.Extensions.Diagnostics.HealthChecks. No new health check logic required.
  • Uptime History: Visualizes past system performance and partial outages over a configurable retention period.
  • Multiple Themes: Choose from beautifully crafted, responsive templates like Axiom (dark-first, developer-oriented) or Pulse (cyber aesthetic).
  • Latency Tracking: Displays real-time response times for your services.
  • Zero Static Files: Rendered entirely dynamically. No need to pollute your wwwroot directory.
  • Highly Customizable: Control footers, auto-refresh intervals, and retention days right from your Program.cs.

🎨 Screenshots & Themes

TechIn.StatusPage comes with multiple built-in themes to match your brand aesthetic.

Axiom Template (Dark, Developer-First)
<img src="assets/images/theme-axiom.png" alt="Axiom Theme" width="400px">
Pulse Template (Cyberpunk Aesthetic)
<img src="assets/images/theme-pulse.png" alt="Pulse Theme" width="400px">
Classic Template
<img src="assets/images/theme-classic.png" alt="Classic Theme" width="400px">

📦 Installation

Install the main package via NuGet. This umbrella package automatically includes the required Core storage engine and the UI rendering library.

dotnet add package TechIn.StatusPage

_(Note: Ensure you also have your standard AspNetCore.HealthChecks._ packages installed for the specific services you want to monitor).*

🚀 Quick Start & Configuration

TechIn.StatusPage is designed to be highly configurable while requiring minimal setup. Add the services and map the endpoint in your Program.cs:

var builder = WebApplication.CreateBuilder(args);

// 1. Configure TechIn Status Page Options
builder.Services.AddStatusPage(options =>
{
    options.Title = "Acme Corp";
    options.HistoryRetentionDays = 90;
    options.PollingIntervalSeconds = 30;
    options.ShowLatency = true;
    options.ActivateAutoRefresh = false;
    options.ShowFooter = true;
    options.FooterText = "Powered By";
    options.FooterLinkText = "TechIn";
    options.FooterLinkUrl = "https://github.com/tekinozan";

    // Pick your template:
    options.Template = StatusPageTemplate.Axiom;   // dark-first, developer-oriented
    // options.Template = StatusPageTemplate.Pulse;   // cyber aesthetic
    // options.Template = StatusPageTemplate.Axiom; // clean, minimal
});

// 2. Register your standard .NET Health Checks
builder.Services.AddHealthChecks()
    .AddRedis("localhost:6379", "Redis")
    .AddCheck("API Server", () => HealthCheckResult.Healthy("Responding normally"))
    .AddCheck("Database", () =>
    {
        // Simulate occasional degradation
        return Random.Shared.Next(100) < 95
            ? HealthCheckResult.Healthy("Connected (12ms)")
            : HealthCheckResult.Degraded("Slow queries detected");
    })
    .AddCheck("Redis Cache", () => HealthCheckResult.Healthy("6 nodes online"))
    .AddCheck("Payment Gateway", () =>
    {
        // Simulate rare downtime
        return Random.Shared.Next(100) < 98
            ? HealthCheckResult.Healthy("Stripe API OK")
            : HealthCheckResult.Unhealthy("Connection timeout");
    })
    .AddCheck("Email Service", () => HealthCheckResult.Healthy("SendGrid OK"))
    .AddCheck("Search Index", () =>
    {
        return Random.Shared.Next(100) < 90
            ? HealthCheckResult.Healthy("Elasticsearch green")
            : HealthCheckResult.Degraded("Yellow cluster state");
    });

var app = builder.Build();

// 3. Map the TechIn Status Page UI endpoint
app.MapStatusPage("/status");

// Standard health endpoint still works perfectly
app.MapHealthChecks("/health");

// Optional: Redirect root to status page
app.MapGet("/", () => Results.Redirect("/status"));

app.Run();

🏗️ Architecture

This package is built with a clean, decoupled architecture:

  • TechIn.StatusPage.Core: The background publisher and state management engine (tracks history in-memory).
  • TechIn.StatusPage.UI: The dynamic Razor rendering layer.
  • TechIn.StatusPage (Hosting): The wrapper that brings them together with easy-to-use extension methods for your Program.cs.

📄 License

This project is licensed under the MIT License.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.2.0 116 2/25/2026
1.1.2 117 2/24/2026
1.0.2 133 2/24/2026
1.0.1 113 2/24/2026
1.0.0 126 2/23/2026