Building Finny: In-Workflow AI Support for Silverfin
Finny is an unofficial AI assistant built to help Silverfin users find answers without stepping away from the work in front of them. The Chrome extension appears directly inside the Silverfin workspace, where it can answer product questions from the public support knowledge base and link back to the original sources.
The project began with a simple product observation: even good documentation creates friction when people have to stop, open another tab, find the right search terms, and decide which article applies. Finny shortens that loop by putting a conversational layer over the documentation at the point where questions arise.
Useful Answers, With the Source Still Attached
Finny’s main chat mode is grounded in Silverfin’s public support content. The backend discovers support articles, extracts and normalizes their content, splits them into useful passages, creates embeddings, and stores those vectors in Pinecone. When a user asks a question, Finny retrieves the most relevant passages before generating an answer.
Citations are part of the response rather than an afterthought. Users can open the underlying support article to verify the answer, see the full instructions, or continue reading. This makes the assistant a quicker way into the existing knowledge base, not a replacement for it.
Two Conversations for Two Different Jobs
Product questions and support requests look similar in a chat box, but they need different behavior. Finny keeps them separate. Knowledge-base mode retrieves cited documentation, while support-draft mode helps the user turn a problem into a clear email for the support team without searching the knowledge base.
Separating the modes keeps both experiences focused. One is designed to resolve a question immediately. The other is designed to capture the right context and communicate it clearly when human support is the better next step.
Context From the Workspace
The extension reads the available Silverfin workspace context, including language, firm, country, stack, and user-role signals. Finny uses that context to greet users in Dutch, French, or English and to make retrieval and support drafts more relevant to the market and person asking the question.
Conversation threads and settings are kept locally in the extension. Separate histories for support answers and email drafting prevent one task from bleeding into the other, while rolling summaries preserve enough context for useful follow-up questions without sending an unlimited chat history on every turn.
A Knowledge Base That Keeps Moving
Documentation changes, so the retrieval layer cannot be a one-time import. Finny runs scheduled incremental syncs of the public support site. Article hashes and indexing state in PostgreSQL make it possible to update changed content, preserve crawl history, and avoid rebuilding the complete index every time.
The application is a TypeScript monorepo with a WXT and React extension, a Fastify backend, shared chat and identity contracts, Drizzle for database access, and Docker Compose for production. It runs behind Traefik on a Hetzner server, keeping the deployment compact while leaving each part of the system independently testable.
Model Choice Without Lock-In
Users can choose supported OpenAI or Anthropic chat models and provide their own API credentials. The extension stores those settings locally, while the backend owns the retrieval, prompt construction, and provider-specific request flow. OpenAI embeddings are used separately to maintain the shared support index.
That split is deliberate: the shared knowledge layer can stay consistent, while the person using Finny keeps control over the chat model that generates the final response. It also makes the architecture flexible enough to compare providers without rebuilding the extension around a single model.
AI Works Best Where the Work Already Happens
Finny is a practical example of AI becoming more valuable through placement and product design. The models and vector search matter, but the bigger improvement comes from reducing the distance between a question, a trustworthy answer, and the next action. By living inside the existing workflow, Finny makes support knowledge easier to use at exactly the moment it is needed.
If you are interested in using Finny, would like to see how it works, or want to explore a similar assistant for your own team, contact me using the form below. I am happy to talk through the tool and the workflow it could support.