Posts

Why I Chose Self-Hosted Customer Service Systems as My Indie Development Direction

  I chose the online customer service system as my primary focus for independent development and have remained dedicated to it for years. People often ask me: "Why this niche? It’s a crowded 'Red Ocean' market with countless existing products." I’m writing this post to provide a detailed answer. I’ll analyze this from two dimensions—market landscape and technical architecture—to explain why there is still significant room for growth in this saturated market, and why the technical barriers are much higher than you might imagine. Does the market truly offer plenty of choices for small and medium teams? Not really. If we categorize existing online customer service systems, they generally fall into three groups: Tier-1 SaaS Giants:  These focus almost exclusively on SaaS models with high subscription fees. For teams with high traffic or many agents, this is a significant recurring expense. They rarely offer self-hosted deployment, and when they do, it’s treated as a high-...

RAG vs. Lucene: Architecting AI Knowledge Bases for On-Premises Customer Support Systems

  Hi everyone, I’m the creator of   ShenDesk . For several years, I’ve been dedicated to building this secure, stable, and lightweight customer support system designed specifically for on-premises deployment. Seeing my product put into commercial use by real-world users is both deeply rewarding and the primary fuel for my work. As we move into 2026, I feel this is a turning point. After years of iteration and trial-and-error—especially after last year’s intensive development push (you can see in our changelog that last year's updates exceeded the total of the previous few years combined)—I can now confidently say that ShenDesk has reached high-availability, enterprise-grade maturity. I want to sincerely thank the users who have supported me both professionally and personally throughout this journey. For 2026, I’ve set a new goal: to document the development process of this system through a series of articles. This is partly to step back from the grind of pure coding and re-eng...

From GC Jitter to Stable Low-Latency: High-Performance Optimization with Span and Memory in ShenDesk

Image
  Background ShenDesk  is an enterprise-grade, real-time customer service and visitor behavior tracking system, supporting both SaaS and On-Premises deployments. Built on the .NET ecosystem, its core architecture features high-concurrency WebSocket channels, real-time message processing, visitor tracking data stream analysis, and extensible Open APIs. As the creator of ShenDesk, I have overseen the system’s evolution from its initial "proof-of-concept" phase to its current state: a robust solution capable of supporting demanding commercial environments. Along this journey, the platform has undergone multiple performance bottlenecks and architectural refactorings. Driven by these real-world engineering challenges, I began a deep dive into the .NET memory model and high-performance programming techniques. Introduction In an era where high concurrency and low latency have become the default expectations, modern .NET applications can no longer afford "unconscious memory allo...