Projects

Open source projects and personal work.

Featured Projects

TGHarker.Insights

Active

A privacy-focused, self-hosted web analytics platform built on Microsoft Orleans for horizontal scalability.

A complete web analytics solution that enables organizations to track visitor behavior across multiple applications without relying on third-party data sharing. Features real-time monitoring, funnel analysis, cohort retention tracking, and custom event recording—all while keeping data private and under your control.

.NETMicrosoft OrleansPostgreSQLAzure Tables.NET AspireBootstrapChart.js

Key Features

  • Multi-application tracking from a unified dashboard
  • Real-time visitor monitoring with sharded architecture
  • Page analytics with views, bounce rates, and time tracking
  • Traffic source identification with referrer and UTM tracking

TGHarker.Orleans.Search

Active

A .NET library that brings automatic indexing and LINQ-based querying to Microsoft Orleans grains using PostgreSQL.

Built with Claude Opus 4.5 in just a few hours, this library solves a problem I had been trying to tackle for over 3 years. It uses source generators to provide zero-boilerplate integration between Orleans grain state and PostgreSQL full-text search.

.NETMicrosoft OrleansPostgreSQLC#Source GeneratorsEF Core

Key Features

  • Automatic state-to-index sync via storage decorator pattern
  • Attribute-based indexing with [Searchable] and [Queryable]
  • LINQ queries: .Search<IGrain>().Where(...).ToListAsync()
  • Compile-time code generation for zero runtime overhead

TGHarker.Email

Active

A self-hosted email management platform that avoids expensive per-email costs from commercial services.

A cloud-native email service built on Microsoft Orleans and ASP.NET Core. Runs your own SMTP server without per-email fees. Supports multiple mailboxes, shared folders with granular permissions, full-text search, and JWT authentication. Deploy to Azure Container Apps for horizontal scaling.

.NET 10ASP.NET CoreMicrosoft Orleans.NET AspirePostgreSQLAzure Container AppsAzure StorageTypeScript

Key Features

  • RESTful API for full email management
  • Multi-mailbox support with folder organization (Inbox, Sent, Drafts, Trash, Spam)
  • Shared mailboxes with granular permissions (Read/Write/Admin)
  • Full-text search for emails by content, recipient, or status

TGHarker.Identity

Active

A multi-tenant OAuth2/OpenID Connect identity provider built with .NET 10, Microsoft Orleans, and .NET Aspire.

A scalable identity platform using Orleans virtual actors for distributed state management. Supports complete tenant isolation, organization hierarchies, and role-based access control.

.NETMicrosoft Orleans.NET AspireC#PostgreSQLAzure StorageOpenTelemetry

Key Features

  • Multi-tenant architecture with complete isolation
  • OAuth2/OIDC with authorization code, client credentials, and refresh tokens
  • PKCE support for public clients
  • Organization support with role-based access control

Other Projects

TGHarker.Orleans.Indexing

Archived

An earlier attempt at Orleans grain indexing using Azure Cognitive Search.

My first attempt at solving grain search in Orleans from 3+ years ago. While functional, I shelved this project due to source generator tooling pain and the complexity of requiring Azure Cognitive Search as a dependency.

.NETMicrosoft OrleansAzure Cognitive SearchC#

Key Features

  • Attribute-based indexing configuration
  • Azure Cognitive Search integration
  • Support for faceted and searchable properties