Skip to content
Back to projects
LiveInternal product

Support platform

What I went looking for did not exist, so I built it

Why it exists

Anyone paying for Nolorem deserves proper help the moment something breaks. Neither of the usual options appealed. A hosted helpdesk charges per agent per month and keeps your customer conversations on someone else's servers, which is an odd message from a platform that treats confidentiality as a starting point. A static documentation site answers yesterday's questions and cannot take a ticket.

What I actually wanted did not exist in a shape I liked: a knowledge base that catches the question before it becomes a ticket, with an assistant that answers only from my own documentation. So I built it, on the same infrastructure and the same principles as Nolorem.

Not publicly accessible

The platform is gated to Bonalogic customers, which today means people with a Nolorem account. This page describes how it works; there is no tour.

What it does

An assistant that shows its sources. The AI assistant is not a general chatbot with a system prompt bolted on. It searches the knowledge base and answers from what it finds there, pointing at the article. When it finds nothing it says so, rather than inventing something plausible. That is the same choice Nolorem makes when writing, for the same reason.

It knows the user's context. The assistant can look up the user's own tickets, see which plan they are on, and draft a ticket for them. Escalating to a real ticket only happens after explicit confirmation, so nobody accidentally pushes a conversation into a queue.

A ticket inherits what you already read. When a question does end up needing a person, the ticket carries the context of the articles the user already worked through. That removes the round trip where support asks whether you have seen the manual.

Gaps in the knowledge base become visible. Tickets are not only work, they are signal. Where questions keep arriving that the knowledge base does not cover, that should stand out rather than disappear into an archive. Feeding tickets back into documentation is what makes the system better over time.

Self-hosted, on my own infrastructure. Support conversations contain the most sensitive material a customer ever sends: screenshots, account details, descriptions of exactly what broke. Keeping that on infrastructure I control is not a feature I charge for, it is the default.

What I ran into

Search quality decides everything. A knowledge base nobody can search is a knowledge base nobody uses, and they file a ticket instead. Precisely the outcome the system exists to avoid. Getting search to match on intent rather than exact wording was the difference between working and decorative.

An assistant with tools needs boundaries. Once a model can look up and create tickets, prompt injection becomes a real risk rather than a theoretical one. Data arriving from outside is passed in delimited, the system prompt stays short, and actions with consequences require confirmation from the user.

Writing good articles is harder than building the platform. The software was the smaller half. An article that genuinely answers a question, instead of restating the interface, takes real effort, and no amount of engineering substitutes for it.

Why it is here

This is a small platform solving an unglamorous problem, and a fair illustration of the kind of work businesses most often actually need. Not a moonshot, but the thing that quietly removes a recurring cost. It also shows I take my own customers seriously: the cheap route was a subscription, with the conversations living somewhere else.