<?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: Arihant Kaul</title>
    <description>The latest articles on DEV Community by Arihant Kaul (@arihantk15).</description>
    <link>https://dev.to/arihantk15</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%2F4099247%2F003a9cb0-c75a-4624-8943-90b74d028be3.png</url>
      <title>DEV Community: Arihant Kaul</title>
      <link>https://dev.to/arihantk15</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/arihantk15"/>
    <language>en</language>
    <item>
      <title>I'm a student building a code intelligence platform. I ran it head-to-head against two established competitors. Here's what actually happened.</title>
      <dc:creator>Arihant Kaul</dc:creator>
      <pubDate>Fri, 28 Aug 2026 16:36:11 +0000</pubDate>
      <link>https://dev.to/arihantk15/im-a-student-building-a-code-intelligence-platform-i-ran-it-head-to-head-against-two-established-45gn</link>
      <guid>https://dev.to/arihantk15/im-a-student-building-a-code-intelligence-platform-i-ran-it-head-to-head-against-two-established-45gn</guid>
      <description>&lt;p&gt;Quick intro, since this is my first post here: I'm Arihant, a student in India, building &lt;a href="https://www.aletheore.com" rel="noopener noreferrer"&gt;Aletheore&lt;/a&gt; alone, alongside two degrees. It's been public for about six weeks. This post is what it is, why it's different, and two real (not cherry-picked) head-to-heads against established competitors in the space.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it does&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Aletheore is a code intelligence platform: it parses a repository into a real dependency graph first, imports, symbols, API endpoints, blast radius, and grounds everything downstream in that graph instead of asking an LLM to guess from a diff or a vector-search snippet. Security scanning and PR review are two things built on top of that graph, not the whole story, there's also generated architecture documentation, dead-code detection, and semantic code search. If it can't point to the evidence, it says so instead of guessing. It ships as a CLI, an MCP server, a GitHub App that comments on PRs, and a live architecture dashboard. Free tier is real, not a crippled trial: &lt;code&gt;pip install aletheore&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Six weeks in, real numbers (not vanity metrics, just what &lt;code&gt;pypistats&lt;/code&gt; reports): &lt;strong&gt;9,488 downloads&lt;/strong&gt; including mirrors, 2,614 excluding them, since mid-July.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Head-to-head&lt;/strong&gt; &lt;/p&gt;

&lt;h1&gt;
  
  
  1: RepoWise
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://repowise.dev" rel="noopener noreferrer"&gt;RepoWise&lt;/a&gt; generates a wiki from a codebase and answers questions against it. I ran both tools on the same 7 real open-source corpora, across 7 languages, same questions, same ground truth, best RepoWise mode shown per corpus. Full methodology and every raw result file are public: &lt;a href="https://github.com/Aletheore/aletheore-benchmarks" rel="noopener noreferrer"&gt;aletheore-benchmarks&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Locating code, top-1 accuracy:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;corpus&lt;/th&gt;
&lt;th&gt;language&lt;/th&gt;
&lt;th&gt;Aletheore&lt;/th&gt;
&lt;th&gt;RepoWise&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;gin&lt;/td&gt;
&lt;td&gt;Go&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;80.0%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;60.0%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;serde&lt;/td&gt;
&lt;td&gt;Rust&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;53.3%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;13.3%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;gson&lt;/td&gt;
&lt;td&gt;Java&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;40.0%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;26.7%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;jekyll&lt;/td&gt;
&lt;td&gt;Ruby&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;26.7%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;13.3%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Slim&lt;/td&gt;
&lt;td&gt;PHP&lt;/td&gt;
&lt;td&gt;26.7%&lt;/td&gt;
&lt;td&gt;26.7% (tie)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;guzzle&lt;/td&gt;
&lt;td&gt;PHP&lt;/td&gt;
&lt;td&gt;20.0%&lt;/td&gt;
&lt;td&gt;20.0% (tie)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;zod&lt;/td&gt;
&lt;td&gt;TypeScript&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;20.0%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;13.3%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;5 wins, 0 losses, 2 ties.&lt;/strong&gt; Where we actually lose: jekyll top-5, 46.7% against RepoWise's 66.7%, stated here rather than left out. On natural-language "vocabulary" questions (phrased the way a person actually asks, not exact symbol names), RepoWise closes some of the gap since its wiki pages name the symbols directly, and on jekyll it overtakes us outright, 80.0% against our 66.7%. Across those ten additional cells: we lead in seven, tie in two, lose one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cost to get to a searchable index&lt;/strong&gt;, 7 corpora total: Aletheore &lt;strong&gt;$0.00&lt;/strong&gt; (local embeddings, no API key needed), RepoWise &lt;strong&gt;$1.85&lt;/strong&gt; (LLM-generated wiki pages, $0.09-$0.47 per corpus).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Speed, measured in-process&lt;/strong&gt; (the way an MCP server or a CLI call in a loop actually experiences it, not per-process CLI startup cost): Aletheore &lt;strong&gt;40.5ms mean&lt;/strong&gt;, RepoWise &lt;strong&gt;52.5ms mean&lt;/strong&gt;. We're faster.&lt;/p&gt;

&lt;h2&gt;
  
  
  Head-to-head #2: Graphify
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/Graphify-Labs/graphify" rel="noopener noreferrer"&gt;Graphify&lt;/a&gt; is a tree-sitter-based code-knowledge-graph tool with its own query CLI. Same discipline: I ran both tools myself on &lt;a href="https://github.com/frappe/erpnext" rel="noopener noreferrer"&gt;frappe/erpnext&lt;/a&gt; (a real ~1M-LOC Python codebase), 15 independently-written questions, one shared agent loop, one anonymized judge that never knows which tool answered.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;condition&lt;/th&gt;
&lt;th&gt;coverage&lt;/th&gt;
&lt;th&gt;tokens/query&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;baseline (grep + read + list only)&lt;/td&gt;
&lt;td&gt;92.2%&lt;/td&gt;
&lt;td&gt;11,839&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;+ Aletheore&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;100.0%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;14,893&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;+ Graphify&lt;/td&gt;
&lt;td&gt;93.3%&lt;/td&gt;
&lt;td&gt;17,921&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A pre-publication review caught that one question's ground truth was wrong, and that most of the apparent coverage gap traced to a single question where the other two tools timed out without converging. Corrected for both: Aletheore and Graphify tie on coverage, and only 2 of 15 questions actually discriminate between the tools at all. &lt;strong&gt;The repeatable, real win is token cost: 36% fewer tokens than Graphify for the same answers.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Where we lose here: setup time. Graphify builds its whole graph on ERPNext in about a minute; when I first measured it, Aletheore's equivalent took ~23. I profiled instead of hand-waving it, found dead-code detection's own reference check was 77% of total scan time (an inefficient algorithm, not the tree-sitter parsing step I'd have guessed), and fixed it: scan time went from 236 seconds to 53, a real 4.4x, verified against the actual installed PyPI release. Setup is now ~20 minutes, with the rest in a separate indexing step that's a different, still-open problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  And the part that touches PRs directly
&lt;/h2&gt;

&lt;p&gt;Aletheore's live-docs feature covers a repo with AI-written architecture pages, but pages alone don't cover every file, obviously, no doc system covers 100% of a codebase's files by page count. Measured over Flask's last 30 real commits (100 changed files): doc pages alone had something to say about only 4 of those 30 commits' full file sets. A deterministic fallback (reads the scanner's own module record: symbols, imports, importers, no LLM call) closes that to 30/30, 100/100, at $0.00 marginal cost per file. The point isn't the doc pages, it's that a PR review tool that only works when a wiki page happens to exist isn't actually reliable, so ours doesn't depend on one.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;I'll be posting more of this, real engineering, including the bugs I find in my own tool and fix in public, not a highlight reel. If you want to see it before it's public here, the &lt;a href="https://www.aletheore.com" rel="noopener noreferrer"&gt;dashboard&lt;/a&gt; has a live status page and changelog.&lt;/p&gt;

&lt;p&gt;If you try it and something's wrong, that's exactly the kind of thing I want to hear about.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
