<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Dinuda Yaggahavita</title>
    <description>The latest articles on DEV Community by Dinuda Yaggahavita (@dinuda_yaggahavita_c30893).</description>
    <link>https://dev.to/dinuda_yaggahavita_c30893</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1589514%2Fcd26d21f-3d07-459c-8a23-30aaee27877b.jpg</url>
      <title>DEV Community: Dinuda Yaggahavita</title>
      <link>https://dev.to/dinuda_yaggahavita_c30893</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dinuda_yaggahavita_c30893"/>
    <language>en</language>
    <item>
      <title>What Is AI Coding Observability? Visibility Before Control</title>
      <dc:creator>Dinuda Yaggahavita</dc:creator>
      <pubDate>Tue, 21 Jul 2026 11:30:03 +0000</pubDate>
      <link>https://dev.to/dinuda_yaggahavita_c30893/what-is-ai-coding-observability-visibility-before-control-2mh4</link>
      <guid>https://dev.to/dinuda_yaggahavita_c30893/what-is-ai-coding-observability-visibility-before-control-2mh4</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/Dinuda/usejunction" rel="noopener noreferrer"&gt;Github Repo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu9egp8qtepsucthjofqs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu9egp8qtepsucthjofqs.png" alt=" " width="800" height="296"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;AI coding observability is the practice of measuring how engineering teams use AI coding tools — including adoption, cost, model usage, reliability and plan utilization — without inspecting developers’ source code or work activity.&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;That last part matters.&lt;/p&gt;

&lt;p&gt;When I say observability, I do not mean recording every prompt, reading code or producing a leaderboard of which developer used the most tokens. I mean answering much more basic questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;What tools are we paying for?&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Are people using them?&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Which models do they depend on?&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;What keeps failing?&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Are we buying capacity we do not need?&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Are local models becoming more favourable for teams&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most companies cannot answer these questions today.&lt;/p&gt;

&lt;p&gt;That is strange when you consider how quickly tools like Cursor, Claude Code, GitHub Copilot and Codex have moved from experiments into the everyday development environment.&lt;/p&gt;

&lt;p&gt;AI coding became infrastructure before most organizations realized they owned infrastructure.&lt;/p&gt;

&lt;h3&gt;
  
  
  Nobody planned the AI coding&amp;nbsp;stack
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffk5i585zmbnjqkkkjdre.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffk5i585zmbnjqkkkjdre.png" alt=" " width="800" height="296"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Very few companies deliberately designed their current AI coding setup.&lt;/p&gt;

&lt;p&gt;One developer started paying for Cursor. Another preferred Claude Code. A team bought Copilot seats through GitHub. Someone connected an API key to Cline or Continue. A few engineers began running open models locally.&lt;/p&gt;

&lt;p&gt;Each choice was reasonable on its own.&lt;/p&gt;

&lt;p&gt;Together, they created an unplanned stack of tools, models, subscriptions and accounts.&lt;/p&gt;

&lt;p&gt;Finance can see the invoices, but an invoice does not tell you whether a tool is useful. Engineering managers know what their teams say they use, but that does not show how usage changes over time. Vendor dashboards provide some answers, but only from inside their own products.&lt;/p&gt;

&lt;p&gt;Cursor knows about Cursor. GitHub knows about Copilot. Anthropic knows about traffic reaching Anthropic.&lt;/p&gt;

&lt;p&gt;The organization is left assembling the wider picture manually.&lt;/p&gt;

&lt;p&gt;This is the gap we are building &lt;a href="http://usejunction.dev" rel="noopener noreferrer"&gt;&lt;strong&gt;UseJunction&lt;/strong&gt;&lt;/a&gt; to close: one observability layer across the AI coding tools an engineering team already uses.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3y5j28i3u2yv2qif9o10.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3y5j28i3u2yv2qif9o10.png" alt=" " width="800" height="437"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The problem is larger than seat&amp;nbsp;waste
&lt;/h3&gt;

&lt;p&gt;Unused seats are the most obvious problem because they are easy to put into a spreadsheet.&lt;/p&gt;

&lt;p&gt;If a company purchased 100 seats and only 43 are active, someone can cancel the rest before renewal. Useful — but not particularly deep.&lt;/p&gt;

&lt;p&gt;The more interesting question is what is happening across those 43 active users.&lt;/p&gt;

&lt;p&gt;Perhaps a developer has an allocated Cursor seat but does most of their work through Claude Code. Another might regularly exhaust their included plan usage and quietly switch to an API key. A third might prefer a local model for a particular repository.&lt;/p&gt;

&lt;p&gt;A vendor dashboard can make one product appear underused while the developer is actually a heavy AI user elsewhere.&lt;/p&gt;

&lt;p&gt;That is why AI coding observability needs to cover more than licenses. At minimum, it should help an organization understand five things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Adoption: which tools are genuinely part of the development workflow&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cost: subscription, API and infrastructure spending in one place&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Model usage: which models are being used across different tools&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reliability: latency, errors, rate limits and failed requests&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Plan utilization: whether paid allowances are exhausted, balanced or wasted&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These measurements are related.&lt;/p&gt;

&lt;p&gt;A drop in usage may be an adoption problem. It may also mean a tool became slow, a plan reached its limit or developers found a better model somewhere else. Looking at one metric — or one vendor — can give you the wrong explanation.&lt;/p&gt;

&lt;h3&gt;
  
  
  A gateway is not always the right first&amp;nbsp;move
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo2eqvrdp7oe8ygbpf41h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo2eqvrdp7oe8ygbpf41h.png" alt=" " width="800" height="538"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The standard enterprise response to a fragmented stack is centralization.&lt;/p&gt;

&lt;p&gt;Route every request through one gateway. Decide which models are allowed. Block everything else. Put policy in front of the problem.&lt;/p&gt;

&lt;p&gt;There are situations where that is necessary. If source code is being sent somewhere it should not be, the company cannot wait six months for a beautiful analytics dashboard.&lt;/p&gt;

&lt;p&gt;But I do not think a gateway should be the automatic starting point.&lt;/p&gt;

&lt;p&gt;A gateway changes how developers work before the organization properly understands how they work. It can introduce latency, break features that depend on a vendor’s native API and turn the platform team into the owner of another critical service.&lt;/p&gt;

&lt;p&gt;Worse, a badly designed control layer can push usage out of sight. Developers do not stop wanting a useful tool because it disappeared from the approved list. They find another account, another API key or another route.&lt;/p&gt;

&lt;p&gt;Before inserting control into every request, I would want to know:&lt;/p&gt;

&lt;p&gt;Which workflows are important enough to protect? Which tools are redundant? Where is sensitive data actually going? What would break if we standardized too early?&lt;/p&gt;

&lt;p&gt;You need evidence to answer those questions.&lt;/p&gt;

&lt;p&gt;That is what I mean by visibility before control. It is not an argument against governance. It is an argument against governing an environment you have not yet mapped.&lt;/p&gt;

&lt;h3&gt;
  
  
  Observe the infrastructure, not the developer
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbranoqpuaonywlae3w77.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbranoqpuaonywlae3w77.png" alt=" " width="800" height="387"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is a dangerous version of this product category.&lt;/p&gt;

&lt;p&gt;Take AI usage data, attach it to individuals and pretend it measures engineering productivity.&lt;/p&gt;

&lt;p&gt;It does not.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;One developer making 500 requests is not necessarily more productive than someone making 20. They may be asking the model to repair poor generations. They may be exploring an unfamiliar codebase. They may simply work differently.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The same problem already exists with commit counts and lines of code. AI gives companies even more activity data to misuse.&lt;/p&gt;

&lt;p&gt;UseJunction is being designed around a simpler boundary: collect the operational information needed to understand the AI system, without turning it into surveillance.&lt;/p&gt;

&lt;p&gt;That means looking at information such as the tool, model, request status, latency and plan consumption. It does not require reading the developer’s source code or capturing the contents of every conversation.&lt;/p&gt;

&lt;p&gt;There will always be pressure to collect more because more data looks useful on a product roadmap. I think restraint is part of building this category correctly.&lt;/p&gt;

&lt;p&gt;If developers believe observability is secretly performance monitoring, they will avoid it. And they will be right to.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why I ended up working on&amp;nbsp;this
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdy2t8rp4xkrcsgc296m2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdy2t8rp4xkrcsgc296m2.png" alt=" " width="800" height="481"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before &lt;a href="http://usejunction.dev" rel="noopener noreferrer"&gt;UseJunction&lt;/a&gt;, I built &lt;a href="http://tallei.com" rel="noopener noreferrer"&gt;Tallei&lt;/a&gt; around a different version of the same fragmentation problem.&lt;/p&gt;

&lt;p&gt;People were working across ChatGPT, Claude and other assistants, repeatedly moving context between them. The interesting part was not any single assistant. It was the behaviour across them: where information came from, what people repeatedly explained and how work moved between tools.&lt;/p&gt;

&lt;p&gt;AI coding has the same structural problem.&lt;/p&gt;

&lt;p&gt;The developer’s workflow does not belong to Cursor, Anthropic, OpenAI or GitHub. It runs across them.&lt;/p&gt;

&lt;p&gt;Yet almost every dashboard is designed as if its vendor represents the whole environment.&lt;/p&gt;

&lt;p&gt;That mismatch is what pulled me toward UseJunction.&lt;/p&gt;

&lt;p&gt;We are starting with observability because I do not think the first version should try to become the company’s AI police, universal router and procurement system at the same time.&lt;/p&gt;

&lt;p&gt;The first job is simpler: show engineering and platform teams what is actually happening.&lt;/p&gt;

&lt;p&gt;UseJunction is being built as an open-source, self-hostable system because some organizations will reasonably refuse to send this data to another external SaaS product. Even operational metadata can reveal meaningful information about engineering activity. Teams should be able to decide where that data lives.&lt;/p&gt;

&lt;h3&gt;
  
  
  What UseJunction should tell&amp;nbsp;you
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Imagine renewal season is approaching.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You have Cursor, Copilot and Claude subscriptions spread across several teams. Some developers also use Codex, Cline, Continue or local models. Finance wants to know what can be cancelled. Engineering does not want a cost-cutting exercise to remove tools people genuinely depend on.&lt;/p&gt;

&lt;p&gt;Today, this usually turns into a combination of vendor exports, surveys and guesswork.&lt;/p&gt;

&lt;p&gt;UseJunction should let you see the environment as one system:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Which tools are active?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Which plans are approaching their limits?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Where are paid seats sitting unused?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Which teams are seeing failures?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Are developers moving to another model when one becomes unreliable?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Are local models becoming a meaningful part of the stack?&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The answer may be that the company should standardize.&lt;/p&gt;

&lt;p&gt;It may also be that different teams genuinely need different tools.&lt;/p&gt;

&lt;p&gt;Observability should not begin with a preferred conclusion. Its job is to make the trade-offs visible.&lt;/p&gt;

&lt;h3&gt;
  
  
  Start with the boring questions
&lt;/h3&gt;

&lt;p&gt;A company does not need an elaborate AI governance programme to begin.&lt;/p&gt;

&lt;p&gt;Start with the questions that should already have answers:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;How many AI coding products are we paying for?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Who has access?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Which ones have been active recently?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What portion of each plan is being consumed?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Are API costs growing outside the subscription budget?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Which services are regularly slow or unavailable?&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Then define what you will not collect.&lt;/p&gt;

&lt;p&gt;That second step is easy to ignore, but it matters. If the system does not need source code or prompt contents to answer an operational question, do not collect them by default.&lt;/p&gt;

&lt;p&gt;Once the environment is visible, decisions become less theatrical.&lt;/p&gt;

&lt;p&gt;You can cancel genuinely unused seats. Increase capacity where developers repeatedly hit limits. Investigate unreliable providers. Decide whether a central gateway would solve a real problem. Introduce policies around specific risks instead of applying one broad restriction to every team.&lt;/p&gt;

&lt;h3&gt;
  
  
  The point is not another dashboard
&lt;/h3&gt;

&lt;p&gt;The world does not need a prettier collection of token charts.&lt;/p&gt;

&lt;p&gt;The useful outcome is being able to make decisions about AI coding infrastructure without relying on vendor claims, employee surveys or whoever has the strongest opinion in the meeting.&lt;/p&gt;

&lt;p&gt;That is the product we are trying to build with &lt;strong&gt;UseJunction&lt;/strong&gt;: an open-source observability layer for AI coding tools, models and plans.&lt;/p&gt;

&lt;p&gt;The product begins with visibility. Over time, that visibility may support routing, configuration and policy controls. But those controls should be built on evidence from the real environment — not assumptions about how developers are supposed to work.&lt;/p&gt;

&lt;p&gt;If your company already uses several AI coding tools, you already have an AI coding stack.&lt;/p&gt;

&lt;p&gt;The only question is whether you can see it.&lt;/p&gt;

&lt;p&gt;P.S. You can self host it too: &lt;a href="https://github.com/Dinuda/usejunction" rel="noopener noreferrer"&gt;Github Repo&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>I Built Tallei to Stop Repeating Myself Across AI Tools</title>
      <dc:creator>Dinuda Yaggahavita</dc:creator>
      <pubDate>Thu, 23 Apr 2026 14:36:42 +0000</pubDate>
      <link>https://dev.to/dinuda_yaggahavita_c30893/i-built-tallei-to-stop-repeating-myself-across-ai-tools-5f2d</link>
      <guid>https://dev.to/dinuda_yaggahavita_c30893/i-built-tallei-to-stop-repeating-myself-across-ai-tools-5f2d</guid>
      <description>&lt;p&gt;I built &lt;a href="https://tallei.com" rel="noopener noreferrer"&gt;Tallei&lt;/a&gt; because I was tired of repeating myself to AI.&lt;/p&gt;

&lt;p&gt;My workflow was already spread across &lt;strong&gt;multiple tools&lt;/strong&gt;. I would: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Brainstorm in Claude&lt;/li&gt;
&lt;li&gt;Generate images and graphs on ChatGPT&lt;/li&gt;
&lt;li&gt;Gather &amp;amp; analyze in Perplexity&lt;/li&gt;
&lt;li&gt;Argue with the content on Gemini 😅&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Every switch came with a cost -&amp;gt; lost context &amp;amp; time wasted.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I had to re-explain the project.&lt;br&gt;
Re-state my preferences.&lt;br&gt;
Re-summarize decisions that had already been made.&lt;br&gt;
Re-upload documents or re-copy the important parts.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The assistants were getting better. The workflow between them was getting &lt;strong&gt;worse&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;So I built Tallei — a cross-AI memory layer that sits underneath the tools I already use and helps them work from the same context. Not another chat app. Not a replacement for ChatGPT or Claude. A shared memory system that makes those tools feel less disconnected.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem was not intelligence. It was continuity.
&lt;/h2&gt;

&lt;p&gt;A lot of people talk about which model is smarter.&lt;br&gt;
That was not the pain I felt.&lt;br&gt;
The real pain was continuity.&lt;/p&gt;

&lt;p&gt;I could have a great working session in one assistant and then lose the thread completely when I moved to another. What mattered was not just text. It was the state of the work:&lt;/p&gt;

&lt;p&gt;what I was trying to do&lt;br&gt;
what had already been decided&lt;br&gt;
what documents mattered&lt;br&gt;
what constraints were important&lt;br&gt;
what kind of responses I preferred&lt;/p&gt;

&lt;p&gt;That state kept dying at the border between tools.&lt;/p&gt;

&lt;p&gt;Tallei started from a simple idea: your context should not disappear just because you switched AI assistants.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Tallei can help you
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Furnchibyudesz59c7bux.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Furnchibyudesz59c7bux.png" alt="How Tallei handles Documents and Memories" width="800" height="352"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tallei is designed to store and retrieve the parts of context that are worth carrying forward across tools.&lt;/p&gt;

&lt;p&gt;That includes things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;preferences&lt;/li&gt;
&lt;li&gt;facts&lt;/li&gt;
&lt;li&gt;decisions&lt;/li&gt;
&lt;li&gt;recent notes&lt;/li&gt;
&lt;li&gt;document-related context&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;strong&gt;goal&lt;/strong&gt; is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;reduce re-explaining&lt;br&gt;
keep projects coherent across assistants&lt;br&gt;
make handoffs between tools smoother&lt;br&gt;
let documents stay useful after the first chat window is closed&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you only use one assistant, native memory may be enough.&lt;br&gt;
But if your work spans multiple tools, you start to feel this gap very quickly.&lt;/p&gt;

&lt;h2&gt;
  
  
  The first version worked, but barely
&lt;/h2&gt;

&lt;p&gt;The first version of Tallei proved the idea, but the experience was rough.&lt;/p&gt;

&lt;p&gt;I had the basics in place:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a backend&lt;/li&gt;
&lt;li&gt;authentication&lt;/li&gt;
&lt;li&gt;memory save and recall&lt;/li&gt;
&lt;li&gt;an MCP server&lt;/li&gt;
&lt;li&gt;a dashboard&lt;/li&gt;
&lt;li&gt;integrations for multiple assistants&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Technically, it worked.&lt;br&gt;
But when I tested recall properly, it took over &lt;code&gt;**30 seconds**&lt;/code&gt; in the early version.&lt;/p&gt;

&lt;p&gt;That is unusable for a product like this.&lt;br&gt;
Memory cannot feel like a background report. It has to feel &lt;strong&gt;immediate&lt;/strong&gt;. If recalling context takes that long, the user would rather just manually explain things again.&lt;/p&gt;

&lt;p&gt;That was the first big product lesson: this could not just be “smart.” It had to be fast enough to disappear into the workflow.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. My first big mistake: I optimized for speed and made it worse
&lt;/h3&gt;

&lt;p&gt;When I started fixing latency, I made a mistake that taught me a lot about memory products.&lt;br&gt;
I got recall much faster.&lt;br&gt;
But I also made it less trustworthy.&lt;/p&gt;

&lt;p&gt;The faster version sometimes returned the wrong memory first, especially on new or slightly different queries. The system looked impressive on latency, but it was no longer reliable. And for a memory system, that is deadly.&lt;/p&gt;

&lt;p&gt;A fast wrong answer is worse than a slower correct one.&lt;br&gt;
Because once the user stops trusting recall, the whole product starts falling apart. They hesitate. They second-guess what is injected. They stop depending on the system.&lt;/p&gt;

&lt;p&gt;That was the moment I stopped thinking only about speed and started thinking more clearly about trust.&lt;br&gt;
The recall system that actually worked&lt;br&gt;
The version that finally felt right was simpler.&lt;/p&gt;

&lt;p&gt;Instead of trying to be overly clever, I rebuilt recall around a few practical buckets of context:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc3jedu5rrzqflj80i0ab.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc3jedu5rrzqflj80i0ab.png" alt="Tallei Memory Buckets" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;preferences&lt;br&gt;
long-term memory like facts and decisions&lt;br&gt;
short-term memory like recent notes and events&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That structure worked better because it reflected how context is actually in our brains.&lt;/p&gt;

&lt;p&gt;Some things should almost always be available, like preferences.&lt;br&gt;
Some things matter over time, like key decisions.&lt;br&gt;
Some things are recent and situational, like what happened in the last few days or weeks.&lt;/p&gt;

&lt;p&gt;The goal was not to create the most complicated retrieval system possible. The goal was to reliably bring the right categories of context into the conversation without flooding it.&lt;/p&gt;

&lt;p&gt;That made Tallei feel much more stable.&lt;/p&gt;

&lt;p&gt;It also led to a much better outcome on performance, while keeping accuracy intact. The “dump-all when it fits, retrieve selectively when it does not” model ended up being much more practical than forcing heavy retrieval logic on every request.&lt;/p&gt;

&lt;h2&gt;
  
  
  Documents were one of the hardest parts
&lt;/h2&gt;

&lt;p&gt;One of the biggest things I realized while building Tallei was that memory is not just about facts like “I prefer concise answers.”&lt;/p&gt;

&lt;p&gt;Documents matter a lot more than that.&lt;/p&gt;

&lt;p&gt;People want assistants to remember:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;the PDF they uploaded&lt;/li&gt;
&lt;li&gt;the contract they reviewed&lt;/li&gt;
&lt;li&gt;the research they already summarized&lt;/li&gt;
&lt;li&gt;the notes from a brainstorm&lt;/li&gt;
&lt;li&gt;the key takeaways from a long session&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That is where a lot of the handoff pain really lives.&lt;/p&gt;

&lt;p&gt;So Tallei handles documents in two ways:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;01. Document notes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;These are lighter-weight summaries, key points, or takeaways.&lt;br&gt;
They are useful when you want the important context from a document without dragging the whole document into every conversation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;02. Document blobs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;These are for the full source material when you need more complete archival context.&lt;/p&gt;

&lt;p&gt;On top of that, each document gets a &lt;a class="mentioned-user" href="https://dev.to/doc"&gt;@doc&lt;/a&gt;: reference, and documents can be grouped into lots with &lt;a class="mentioned-user" href="https://dev.to/lot"&gt;@lot&lt;/a&gt;: references. That makes it easier to organize related material and carry it forward in a structured way instead of treating every file like an isolated upload.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;03. Document lots&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;These are multiple documents referenced and usually used together. This was really useful since people usually reference an average 2 documents per AI query, and running and finding 2 are costly and takes up memory. We need to make sure to not overbloat the context.&lt;/p&gt;

&lt;p&gt;This was important for the product because real work is rarely just one memory at a time. It is often a set of connected documents, notes, and decisions.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Another mistake: I built things because they sounded smart
&lt;/h3&gt;

&lt;p&gt;At one point, I built a graph layer to map entities and relationships across memories.&lt;br&gt;
It sounded like exactly the kind of thing a memory product should have.&lt;/p&gt;

&lt;p&gt;In practice, it added complexity without enough value.&lt;/p&gt;

&lt;p&gt;It made the system heavier, introduced messy entity labeling problems, and did not improve the actual user experience enough to justify keeping it. So I removed it.&lt;/p&gt;

&lt;p&gt;That was another important lesson from building Tallei:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;not every advanced feature belongs in the product just because it sounds intelligent.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Sometimes the better product decision is to remove complexity and focus on what actually helps users keep their thread across tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I think this matters
&lt;/h2&gt;

&lt;p&gt;We are not another all-AI chat router interface✌️.&lt;/p&gt;

&lt;p&gt;That means the moment your workflow becomes multi-tool, you start feeling the missing layer.&lt;/p&gt;

&lt;p&gt;That missing layer is what I wanted Tallei to address.&lt;/p&gt;

&lt;p&gt;Not by replacing the assistants, but by helping them feel connected, and not distrupting your flow.&lt;/p&gt;

&lt;p&gt;I do not think the future of AI work is one assistant doing everything. I think a lot of real workflows will stay spread across multiple systems, each better at different moments. If that is true, then shared context becomes important infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Open source matters here too
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/Dinuda/tallei-ai" rel="noopener noreferrer"&gt;Tallei Github Repo&lt;/a&gt;&lt;br&gt;
&lt;a href="https://tallei.com" rel="noopener noreferrer"&gt;Tallei&lt;/a&gt; is also open source, which was important to me from the start.&lt;/p&gt;

&lt;p&gt;If you are building a memory product — something that stores preferences, facts, notes, and document context — people should be able to inspect how it works. Open source helps make the architecture, trade-offs, and implementation more transparent.&lt;/p&gt;

&lt;p&gt;It also makes it easier for others to understand that this is not just a vague AI promise. It is an actual system with real product decisions behind it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who this is for
&lt;/h2&gt;

&lt;p&gt;Tallei is for people whose AI workflow already spans more than one tool.&lt;/p&gt;

&lt;p&gt;That could be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;founders moving between strategy, research, and execution&lt;/li&gt;
&lt;li&gt;developers using different assistants for architecture, debugging, and building&lt;/li&gt;
&lt;li&gt;writers switching between ideation, editing, and fact-checking&lt;/li&gt;
&lt;li&gt;researchers comparing outputs across models&lt;/li&gt;
&lt;li&gt;anyone tired of pasting the same context over and over again&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If that sounds familiar, then you probably already understand the problem Tallei is trying to solve.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final thought
&lt;/h2&gt;

&lt;p&gt;I did not build Tallei because I thought the world needed one more AI product.&lt;/p&gt;

&lt;p&gt;I built it because I personally felt the pain of context breaking between assistants, over and over again.&lt;/p&gt;

&lt;p&gt;The core idea stayed simple the whole way through:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;your context should survive the handoff within your AI tools&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That means preferences should carry over.&lt;br&gt;
Documents should stay useful.&lt;br&gt;
Important decisions should not disappear.&lt;br&gt;
And switching tools should not mean starting from zero.&lt;/p&gt;

&lt;p&gt;That is what Tallei is built for.&lt;/p&gt;

</description>
      <category>claude</category>
      <category>chatgpt</category>
      <category>gemini</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
