← Portfolio

Open source · public beta

Intake

A self-hostable feedback and support intake system built around a real conversation instead of a dumb form. An embeddable widget runs a short AI triage with the user, then a single Go binary routes a clean, structured ticket into the tools you already run.

// status: public beta — grab a release, or contribute, on GitHub

Why it exists

Most feedback widgets do one of two unsatisfying things: they auto-attach a pile of context with no actual triage, or they lock your data inside a closed SaaS backend. Intake is the third option, the open, self-hostable, AI-native one, for teams that want a real intake conversation, full control over their data, and a clean integration into the support and feedback tools they already use.

How a report becomes a ticket

The widget greets the user and asks them to describe the problem, then asks up to a few clarifying questions to pin down severity, scope, and how to reproduce it. When there is enough detail, it captures context, the page URL, a screenshot the user can redact, host-app state, and posts a structured payload to the relay. The relay classifies it, picks an adapter, and creates the ticket. The user gets a link back to it.

Built to be owned

Everything runs on infrastructure you control. The relay is a single static binary, no database required and no phone-home. You choose the model, including a fully offline Ollama instance so no conversation ever leaves your network. The framework, the widget, and the free adapters are Apache 2.0; the paid adapters are gated by a signed license key at runtime.

What sets it apart

Four decisions that define it.

01

Conversation, not a form

Triage happens at the front of the funnel. The widget asks the questions a good support engineer would, so the ticket that lands downstream is already scoped, classified, and summarized, instead of a one-line "it's broken."

02

One binary, no SaaS

The relay deploys as a single native executable or a container, stateless by design. Run it on a $5 VPS. There is no backend service to subscribe to and nothing phoning home.

03

Routes into what you already use

Pluggable adapters translate one canonical payload into Chatwoot, Fider, Linear, Zendesk, or a generic webhook, with screenshot attachments forwarded through each system's native upload.

04

Your model, your data

Swap the LLM provider in config, all the way to a local Ollama model for fully offline operation. No telemetry, no third-party data sharing, strict per-IP and per-session rate limits, and a daily spend cap baked in.

Open source · beta

Try the beta.

Intake is in public beta, developed openly under Apache 2.0. Grab the latest release, self-host it, and open an issue or pull request.