<?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: DnyaneshU</title>
    <description>The latest articles on DEV Community by DnyaneshU (@dnyaneshu).</description>
    <link>https://dev.to/dnyaneshu</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%2F2237111%2F00de7d4b-84e9-42d9-aee0-e23157c5fe2c.jpeg</url>
      <title>DEV Community: DnyaneshU</title>
      <link>https://dev.to/dnyaneshu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dnyaneshu"/>
    <language>en</language>
    <item>
      <title>My browser and IDE won't work until I go outside, and a model on my laptop checks that I really did</title>
      <dc:creator>DnyaneshU</dc:creator>
      <pubDate>Sun, 11 Oct 2026 10:02:48 +0000</pubDate>
      <link>https://dev.to/dnyaneshu/my-browser-and-ide-wont-work-until-i-go-outside-and-a-model-on-my-laptop-checks-that-i-really-did-578j</link>
      <guid>https://dev.to/dnyaneshu/my-browser-and-ide-wont-work-until-i-go-outside-and-a-model-on-my-laptop-checks-that-i-really-did-578j</guid>
      <description>&lt;p&gt;AI was going to increase our productivity. It is also apparently going to replaces the human race before I turn 24, but let's stick to the productivity part, because that part came true.&lt;/p&gt;

&lt;p&gt;We genuinely can do ten hours of work in four now. I've watched it happen. An agent chews through a refactor that would have eaten my afternoon, and it's done before my coffee goes cold.&lt;/p&gt;

&lt;p&gt;So here's the question nobody seems to have asked: &lt;strong&gt;what happened to the other six hours?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;They did not become a walk. They did not become sunlight, or a conversation with a person, or a nap. They became &lt;em&gt;more work&lt;/em&gt;. The bar moved. Ten hours of output in four hours became the new baseline, and then we filled the remaining six with more of it. We took a productivity windfall and spent all of it on more productivity.&lt;/p&gt;

&lt;p&gt;And the cruel detail: with an agent, you're sitting &lt;em&gt;more still&lt;/em&gt; than before. You're not even typing. You're watching a model work, waiting for a diff, reviewing output. Thirty minutes can pass where the most athletic thing you did was scroll.&lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;BreakTension&lt;/strong&gt; because I was doing exactly this and my own break reminders were useless.&lt;/p&gt;

&lt;p&gt;🔗 &lt;strong&gt;&lt;a href="https://github.com/DnyaneshU/BreakTension" rel="noopener noreferrer"&gt;github.com/DnyaneshU/BreakTension&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem with every break reminder I've installed
&lt;/h2&gt;

&lt;p&gt;They're dismissible. A notification slides in, I click it away without reading it, and I keep sitting. I &lt;em&gt;knew&lt;/em&gt; I should get up. The reminder was never the missing piece.&lt;/p&gt;

&lt;p&gt;What I lacked was a reason I couldn't dismiss in a quarter of a second.&lt;/p&gt;

&lt;p&gt;So BreakTension removes the dismiss button. After 35 minutes of active screen time, &lt;strong&gt;every browser tab goes dark&lt;/strong&gt;. No "later," no X in the corner. There's a task — &lt;em&gt;touch a leaf and show two fingers&lt;/em&gt; — and a QR code.&lt;/p&gt;

&lt;p&gt;You scan it, you walk outside, you take the photo. &lt;strong&gt;Gemma, running locally on your own laptop, decides whether you actually went outside or just leaned toward the window.&lt;/strong&gt; If it passes, your browser comes back.&lt;/p&gt;

&lt;p&gt;And because the agent-driven sitting is the worst kind, there's a VS Code extension too, sharing the same timer. Switching from Chrome to your editor is not a break.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─ Chrome Extension (MV3) ──────────┐
│  lock overlay + QR                │
└──────────┬────────────────────────┘
           │
┌──────────▼────────────────────────┐     ┌─ VS Code Extension ─┐
│  Node verifier server             │◄────┤  modal reminder     │
│   owns ONE shared 35-min budget   │     └─────────────────────┘
└──────────┬────────────────────────┘
           │ localhost:11434
┌──────────▼────────────────────────┐
│  Ollama · gemma4:e4b (local)      │
└───────────────────────────────────┘
      ▲
      │ https://&amp;lt;your-lan-ip&amp;gt;:8787/capture?t=&amp;lt;token&amp;gt;
┌─────┴──────────┐
│  Phone browser │  live camera only, no file picker
└────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One laptop, one phone, same Wi-Fi. No datacenter, no account, no API key, &lt;strong&gt;no internet connection at any point.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The trust boundary matters: the extension never unlocks because the phone asked it to. The phone can only submit a photo against a single-use token the server minted. Only the server — which called Gemma — can emit the unlock. A forged message from a web page can't skip the capture step.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why open models aren't a cost optimization here
&lt;/h2&gt;

&lt;p&gt;This isn't a project where an open model was the cheaper option. It's one where a closed model would have been &lt;strong&gt;the wrong thing to build&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The data is the most invasive imaginable.&lt;/strong&gt; To verify a break, the system needs photographs of your hands, your street, your garden — taken at intervals that reveal precisely when you're away from your desk. Uploading that continuously, all day, to someone else's server is indefensible. Running Gemma locally isn't a privacy feature bolted on afterward. It's the only version of this idea I was willing to run on my own machine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It works where "go outside" actually takes you.&lt;/strong&gt; Basements. Trails. The dead patch behind my building. A cloud round-trip fails exactly where the product is supposed to succeed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Zero marginal cost bought a better design.&lt;/strong&gt; At ~15 breaks a day, a paid vision API would make this an expensive habit — and I'd have built a cheaper, weaker check to compensate. Because inference is free, I could afford to ask the model &lt;strong&gt;four separate questions per photo&lt;/strong&gt; instead of one.&lt;/p&gt;

&lt;p&gt;That turned out to be the difference between catching the central cheat and missing it entirely.&lt;/p&gt;

&lt;h2&gt;
  
  
  The finding that changed everything
&lt;/h2&gt;

&lt;p&gt;I assumed the hard part would be recognising "outdoors." It wasn't. The hard part was a prompt engineering failure I only caught because &lt;strong&gt;I tested the attack instead of the happy path.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The attack:&lt;/strong&gt; lean over, photograph the garden through the window, never leave the chair. If that works, BreakTension is just a slow dismissible reminder with extra steps.&lt;/p&gt;

&lt;p&gt;My first prompt asked Gemma all six questions at once — is it outdoors, is it through glass, is it a screen, was the task done, how confident are you, and why. It read beautifully.&lt;/p&gt;

&lt;p&gt;It detected the window photo &lt;strong&gt;0 times out of 5.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Asking the same model the same question &lt;em&gt;alone&lt;/em&gt;, in one short sentence:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Where is the camera standing: outdoors in the open air, or indoors
looking out through a window? Look for a window frame, glazing bars,
or reflections on glass.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3 out of 3 detections. 0 false positives&lt;/strong&gt; on genuine outdoor photos.&lt;/p&gt;

&lt;p&gt;The model could always see the window frame. My long prompt was drowning the signal.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;long combined prompt&lt;/th&gt;
&lt;th&gt;four short prompts&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Window photo detected&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0 / 5&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;3 / 3&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;False positives on real outdoor photos&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0 / 3&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Time per judgement&lt;/td&gt;
&lt;td&gt;45s+ (timed out)&lt;/td&gt;
&lt;td&gt;3–24s&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The verifier now asks four short questions in sequence — outdoors? through glass? a screen? task done? — short-circuiting on the first failure. Each prompt is kept &lt;strong&gt;under 420 characters&lt;/strong&gt;, because the thing that broke it was length.&lt;/p&gt;

&lt;p&gt;A second measurement in the same vein: &lt;code&gt;gemma4:e4b&lt;/code&gt; has a thinking mode, and leaving it on cost &lt;strong&gt;~24 seconds per judgement versus ~3 seconds off&lt;/strong&gt;, with no accuracy gain. When someone is standing in a car park waiting to be let back into their browser, that's not a tuning detail.&lt;/p&gt;

&lt;h2&gt;
  
  
  Then I tested it on real photographs
&lt;/h2&gt;

&lt;p&gt;Everything above was measured on synthetic fixtures — gradients generated by a Python script. Those prove the model discriminates. They don't prove it copes with the noise and lighting of a real camera.&lt;/p&gt;

&lt;p&gt;So I ran real photos through it, including the two that matter:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Photo&lt;/th&gt;
&lt;th&gt;Expected&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;th&gt;Rejected at&lt;/th&gt;
&lt;th&gt;Time&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Hikers on rocks, backlit&lt;/td&gt;
&lt;td&gt;pass&lt;/td&gt;
&lt;td&gt;✅ all gates&lt;/td&gt;
&lt;td&gt;task only&lt;/td&gt;
&lt;td&gt;12.2s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Field and trees&lt;/td&gt;
&lt;td&gt;pass&lt;/td&gt;
&lt;td&gt;✅ all gates&lt;/td&gt;
&lt;td&gt;task only&lt;/td&gt;
&lt;td&gt;13.2s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reading under a tree&lt;/td&gt;
&lt;td&gt;pass&lt;/td&gt;
&lt;td&gt;✅ all gates&lt;/td&gt;
&lt;td&gt;task only&lt;/td&gt;
&lt;td&gt;13.0s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Interior window, trees beyond&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;reject&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;✅ &lt;strong&gt;caught&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;glass&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;28.8s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Desk, chair, lamp&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;reject&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;✅ &lt;strong&gt;caught&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;outdoor&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;3.4s&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Zero false rejections. Zero false acceptances.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The window result is worth reading closely. Gemma said the scene &lt;em&gt;was&lt;/em&gt; outdoors — and then caught that the &lt;strong&gt;camera&lt;/strong&gt; wasn't:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"The image clearly shows a window frame and glass panes. Go all the way outside."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Separating "the view is outside" from "the photographer is outside" is the entire product.&lt;/p&gt;

&lt;p&gt;And the short-circuit pays for itself: the indoor photo rejects in &lt;strong&gt;3.4 seconds&lt;/strong&gt; on one model call, the window photo in two, while only a genuinely outdoor photo costs all four. &lt;strong&gt;The most common cheat is the cheapest to catch.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The bugs I only found by actually running it
&lt;/h2&gt;

&lt;p&gt;The code was finished and verified before I loaded the extension in Chrome for the first time. Four things broke immediately:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The extension reported "verifier not running"&lt;/strong&gt; while the server sat there answering requests. An MV3 service worker can't click through a self-signed certificate warning the way a tab can — its &lt;code&gt;fetch&lt;/code&gt; just fails, silently.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It could sit "locked"&lt;/strong&gt; with no overlay on screen and a dead button.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;F5 in VS Code did nothing&lt;/strong&gt; — I'd never written a &lt;code&gt;launch.json&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The extension host timed out&lt;/strong&gt; waiting for a debugger that never attached.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Every one is an &lt;em&gt;integration&lt;/em&gt; or &lt;em&gt;packaging&lt;/em&gt; failure. Verifying the code was correct told me nothing about whether the thing was &lt;strong&gt;runnable&lt;/strong&gt;. Those are different questions, and I'd only been asking the first one.&lt;/p&gt;

&lt;p&gt;The cert fix is the interesting one. The certificate exists so the &lt;em&gt;phone&lt;/em&gt; can open its camera — &lt;code&gt;getUserMedia&lt;/code&gt; refuses a non-secure origin over the LAN. But that cert is self-signed, and local clients choked on it. The server now also listens on &lt;strong&gt;plain HTTP bound to 127.0.0.1&lt;/strong&gt;, because &lt;code&gt;localhost&lt;/code&gt; is a secure context by specification. Phone gets TLS, extensions get loopback, nothing is exposed to the network.&lt;/p&gt;

&lt;h2&gt;
  
  
  The escape hatches, and why they're limited
&lt;/h2&gt;

&lt;p&gt;A tool that locks your browser at the wrong moment gets uninstalled, and an uninstalled tool prevents exactly zero minutes of sitting. So there has to be a way out. But every way out is also a way to cheat:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Hatch&lt;/th&gt;
&lt;th&gt;Limit&lt;/th&gt;
&lt;th&gt;Why&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Snooze&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;5 min, once per break&lt;/td&gt;
&lt;td&gt;Long enough to finish a thought, too short to be an escape&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Emergency skip&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;2 per day&lt;/td&gt;
&lt;td&gt;A bad afternoon shouldn't become a bad week&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;In a meeting&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1 hour, self-expiring&lt;/td&gt;
&lt;td&gt;See below&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Quiet hours&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;configurable&lt;/td&gt;
&lt;td&gt;3am must never demand you go outside&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Skipping asks twice.&lt;/strong&gt; The second prompt names what it costs: &lt;em&gt;"This spends one of your 2 skips today, and your streak resets."&lt;/em&gt; A one-click skip would quietly undo the only claim this product makes.&lt;/p&gt;

&lt;p&gt;The spec originally called for detecting video calls from "active mic/camera state, not hostname sniffing." &lt;strong&gt;That turned out to be impossible&lt;/strong&gt; — no Manifest V3 API exposes a page holding a microphone stream. So it's a manual toggle, which is honest and has no false positives. Its obvious weakness is that you flip it, forget, and the product goes quiet forever. That's answered with a &lt;strong&gt;one-hour expiry&lt;/strong&gt; rather than left standing.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it deliberately doesn't do
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;It never touches your work.&lt;/strong&gt; The VS Code extension shows a modal and nothing else — no blocked saves, no intercepted edits, no closed editors. An editor holds unsaved thought, and a reminder that risks losing it is worse than no reminder.&lt;/p&gt;

&lt;p&gt;The browser overlay lives in a &lt;strong&gt;shadow root&lt;/strong&gt; and never touches the page's DOM, so form inputs, scroll position and unsaved text all survive a lock.&lt;/p&gt;

&lt;h2&gt;
  
  
  Honest limitations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;This is friction, not attestation.&lt;/strong&gt; You can stand on a balcony. The goal was never unbeatable verification — it was making cheating cost more than complying. One click became: pick up your phone, scan, walk to a door, perform a random gesture, pass four checks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemma is a 6.6 GB open-weight model, not an oracle.&lt;/strong&gt; It will sometimes reject a legitimate photo. That's why failures always explain themselves and retakes are unlimited.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test photos were stock images, not ones I took.&lt;/strong&gt; Said plainly because the distinction matters.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The points system is trivially cheatable.&lt;/strong&gt; It's local, there's no server, you could edit it in devtools. It exists so skipping &lt;em&gt;costs something visible&lt;/em&gt; — not as a deterrent.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Peer review is cut.&lt;/strong&gt; The original design had strangers approving each other's photos. It needs a backend, identity, photo storage, and &lt;em&gt;other users who exist&lt;/em&gt;. It also contradicts the only argument that makes this worth building. A private streak does the same job.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Prerequisites:&lt;/strong&gt; &lt;a href="https://ollama.com" rel="noopener noreferrer"&gt;Ollama&lt;/a&gt;, Node 20+, a phone on the same Wi-Fi.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Server (required — this is the brain)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/DnyaneshU/BreakTension.git
&lt;span class="nb"&gt;cd &lt;/span&gt;BreakTension

ollama pull gemma4:e4b      &lt;span class="c"&gt;# 6.6 GB, CPU is fine&lt;/span&gt;
npm run server              &lt;span class="c"&gt;# zero dependencies to install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You'll see:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  BreakTension server
  ├─ extension : http://localhost:8788  (loopback only)
  ├─ laptop    : https://localhost:8787
  └─ phone     : https://192.168.1.9:8787
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Leave it running. Both clients talk to it.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Chrome extension (optional)
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Open &lt;code&gt;chrome://extensions&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Toggle &lt;strong&gt;Developer mode&lt;/strong&gt; on (top right)&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Load unpacked&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Select the &lt;code&gt;extension/&lt;/code&gt; folder&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Pin the icon from the puzzle-piece menu. The popup shows your desk time and should say &lt;strong&gt;Verifier: running&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;To test it immediately:&lt;/strong&gt; open any normal website (not &lt;code&gt;chrome://&lt;/code&gt; — extensions can't inject there), then click the icon → &lt;strong&gt;Take a break now&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  3. VS Code extension (optional)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;code &lt;span class="nt"&gt;--extensionDevelopmentPath&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/full/path/to/BreakTension/vscode
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A second window opens with BreakTension loaded. Confirm with &lt;strong&gt;Ctrl+Shift+P → BreakTension&lt;/strong&gt; — three commands should appear:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Show status&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Desk time left + which clients are live&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Take a break now&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Trigger a break immediately&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Pause or resume&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Stop counting editor time&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;F5 from inside &lt;code&gt;vscode/&lt;/code&gt; also works, but the extension host starts paused waiting for the debug adapter and can time out before activating. The command above skips that handshake.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Both at once
&lt;/h3&gt;

&lt;p&gt;Run &lt;code&gt;BreakTension: Show status&lt;/code&gt; in VS Code while the Chrome extension is running. It reports &lt;strong&gt;both clients sharing one budget&lt;/strong&gt; — switching apps doesn't dodge the break.&lt;/p&gt;

&lt;h3&gt;
  
  
  Useful commands
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;node scripts/verify-image.js photo.jpg      &lt;span class="c"&gt;# judge any photo from the CLI&lt;/span&gt;
node scripts/verify-image.js &lt;span class="nt"&gt;--list-tasks&lt;/span&gt;   &lt;span class="c"&gt;# see the task pool&lt;/span&gt;
&lt;span class="nv"&gt;BT_MODEL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;llava:13b npm run server           &lt;span class="c"&gt;# swap the model&lt;/span&gt;
&lt;span class="nv"&gt;BT_PORT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;9000 npm run server                 &lt;span class="c"&gt;# change the port&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The CLI is the quickest way to see the model reason:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ node scripts/verify-image.js window.jpg
FAIL 28.8s (failed at: glass)
  outdoor=y glass=n screen=n task=n
  The image clearly shows a window frame and glass panes.
  Go all the way outside.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What I'd tell you if you build on this
&lt;/h2&gt;

&lt;p&gt;Test the attack, not the happy path. My prompt looked excellent and failed 5 times out of 5 at the one job that mattered. I only found out because I built the cheat and pointed it at my own system.&lt;/p&gt;

&lt;p&gt;And the thing nobody tells you about AI productivity: the hours it gives back don't come with instructions. If you don't decide what they're for, someone else will — and it'll be more work.&lt;/p&gt;

&lt;p&gt;I'm going outside.&lt;/p&gt;




</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
      <category>hacktoberfest</category>
    </item>
    <item>
      <title>My mother couldn't read her own blood reports. So I built an AI that never invents a number.</title>
      <dc:creator>DnyaneshU</dc:creator>
      <pubDate>Sun, 04 Oct 2026 15:48:23 +0000</pubDate>
      <link>https://dev.to/dnyaneshu/my-mother-couldnt-read-her-own-blood-reports-so-i-built-an-ai-that-never-invents-a-number-1695</link>
      <guid>https://dev.to/dnyaneshu/my-mother-couldnt-read-her-own-blood-reports-so-i-built-an-ai-that-never-invents-a-number-1695</guid>
      <description>&lt;h2&gt;
  
  
  TrueTrend: Making Medical Reports Understandable, Traceable, and Private with Open AI
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;🔗 &lt;strong&gt;Explore the product:&lt;/strong&gt; &lt;a href="https://dnyaneshu.github.io/TrueTrend/" rel="noopener noreferrer"&gt;TrueTrend&lt;/a&gt;&lt;br&gt;&lt;br&gt;
💻 &lt;strong&gt;Source code:&lt;/strong&gt; &lt;a href="https://github.com/DnyaneshU/TrueTrend" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  The Problem: Medical Reports Contain Data. Patients Need Understanding.
&lt;/h2&gt;

&lt;p&gt;Every medical test generates information. Yet for millions of patients, understanding that information remains unnecessarily difficult.&lt;/p&gt;

&lt;p&gt;Laboratory reports are often distributed as PDFs containing clinical terminology, abbreviations, numerical measurements, and reference ranges. Understanding an individual result can be challenging. Understanding how that result has changed over months or years is even harder.&lt;/p&gt;

&lt;p&gt;Consider a patient managing a chronic condition such as Type 2 diabetes.&lt;/p&gt;

&lt;p&gt;Their HbA1c results may be distributed across multiple reports, generated by different laboratories, using different layouts and sometimes different units. The patient must manually locate previous results, compare values, interpret changes, and determine what questions to raise during their next consultation.&lt;/p&gt;

&lt;p&gt;The information exists. What is missing is a reliable, accessible way to connect it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TrueTrend addresses this gap by transforming disconnected laboratory reports into a longitudinal, understandable, and verifiable health record.&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Introducing TrueTrend
&lt;/h2&gt;

&lt;p&gt;TrueTrend is a privacy-first, AI-powered medical report intelligence platform designed to help individuals understand their laboratory results and track changes over time.&lt;/p&gt;

&lt;p&gt;Built around the principle of &lt;em&gt;आरोग्य वही&lt;/em&gt; — a personal health notebook — TrueTrend brings medical reports together into a single interface where patients can explore trends, understand measurements, and access explanations in their preferred language.&lt;/p&gt;

&lt;p&gt;Rather than functioning as another generic AI health chatbot, TrueTrend focuses on three fundamental requirements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Continuity:&lt;/strong&gt; Connect laboratory results across reports and time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trust:&lt;/strong&gt; Ensure that displayed values can be traced to their original source.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Accessibility:&lt;/strong&gt; Make health information understandable through multilingual explanations and local voice assistance.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  What TrueTrend Enables
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. A Unified Health Record&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Import laboratory reports from different dates and providers into one personal health notebook.&lt;/p&gt;

&lt;p&gt;TrueTrend organizes supported test results chronologically, allowing users to review their medical history without manually navigating multiple PDF attachments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Longitudinal Health Tracking&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;View individual biomarkers across multiple tests through interactive charts.&lt;/p&gt;

&lt;p&gt;For example, a patient's HbA1c history can be displayed as a continuous trend, even when the measurements originate from different laboratories.&lt;/p&gt;

&lt;p&gt;Where conversion is supported, units are standardized to enable meaningful comparison.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Clinically Informed Change Detection&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A numerical difference does not necessarily indicate a meaningful health change.&lt;/p&gt;

&lt;p&gt;TrueTrend evaluates supported measurements against documented analytical variation thresholds and distinguishes between:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Real Increase:&lt;/strong&gt; A change exceeding the applicable variation threshold.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Normal Variation:&lt;/strong&gt; A difference within the expected variation range.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Not Compared:&lt;/strong&gt; A reliable comparison cannot be established.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When laboratory methods, units, or available evidence do not support a dependable comparison, the platform avoids presenting an unsupported conclusion.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multilingual Voice Assistance&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;TrueTrend provides concise explanations in English and Marathi, including locally generated Marathi speech.&lt;/p&gt;

&lt;p&gt;Users can ask questions such as:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;माझी साखर वाढली आहे का?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Has my blood sugar increased?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The application responds using the patient's recorded results and identifies the relevant measurements and dates.&lt;/p&gt;

&lt;p&gt;This makes the platform more accessible to users who are less comfortable interpreting medical terminology or reading lengthy reports.&lt;/p&gt;


&lt;h2&gt;
  
  
  Our Core Differentiator: Every Number Must Be Verifiable
&lt;/h2&gt;

&lt;p&gt;In healthcare applications, a confident but incorrect answer is not merely a technical defect. It can undermine user trust and lead to misunderstanding.&lt;/p&gt;

&lt;p&gt;TrueTrend is built around a strict design principle:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The AI must never present a numerical medical result that cannot be verified against its original source.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Language models are useful for interpreting documents and understanding questions, but they can occasionally misread values, confuse table columns, or generate information that was never present in the source.&lt;/p&gt;

&lt;p&gt;TrueTrend separates AI interpretation from numerical verification.&lt;/p&gt;
&lt;h3&gt;
  
  
  How the verification architecture works
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;The AI identifies candidate test names, values, dates, and units from the report.&lt;/li&gt;
&lt;li&gt;The application independently extracts the underlying PDF text and document structure.&lt;/li&gt;
&lt;li&gt;Each proposed result is checked against the source, including its associated test name and unit.&lt;/li&gt;
&lt;li&gt;Unverified values are flagged for human review.&lt;/li&gt;
&lt;li&gt;Only verified values are eligible for charts, spoken responses, and trend analysis.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Users can select a plotted result and navigate directly to the corresponding page of the original report, where the source value is highlighted.&lt;/p&gt;

&lt;p&gt;This creates a transparent relationship between the original medical document and the information presented by the application.&lt;/p&gt;
&lt;h3&gt;
  
  
  Initial Verification Results
&lt;/h3&gt;

&lt;p&gt;In our current sample evaluation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;34 of 34 extracted values were confirmed against their source documents.&lt;/li&gt;
&lt;li&gt;Eight deliberately introduced incorrect values were detected.&lt;/li&gt;
&lt;li&gt;The application includes 603 automated tests, with no network access required by the test suite.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are initial engineering validation results, not clinical validation or a guarantee of accuracy across all laboratory formats.&lt;/p&gt;


&lt;h2&gt;
  
  
  Beyond Comparison: Distinguishing Meaningful Change from Measurement Noise
&lt;/h2&gt;

&lt;p&gt;One of the central challenges in longitudinal health tracking is determining whether a difference between two measurements is meaningful.&lt;/p&gt;

&lt;p&gt;Biological variation, laboratory measurement uncertainty, and testing conditions can cause values to fluctuate even when a patient's underlying condition has not materially changed.&lt;/p&gt;

&lt;p&gt;A system that treats every numerical movement as a meaningful trend risks producing unnecessary concern and gradually eroding user confidence.&lt;/p&gt;

&lt;p&gt;TrueTrend incorporates documented variation thresholds for supported tests and adopts a conservative comparison strategy.&lt;/p&gt;

&lt;p&gt;Every supported threshold is linked to its research source within the codebase. When adequate evidence is unavailable, the application declines to classify the change.&lt;/p&gt;

&lt;p&gt;The objective is not to generate more alerts. It is to provide fewer, more defensible interpretations.&lt;/p&gt;


&lt;h2&gt;
  
  
  Privacy by Architecture, Not Just Policy
&lt;/h2&gt;

&lt;p&gt;Medical records are among the most sensitive categories of personal information.&lt;/p&gt;

&lt;p&gt;Traditional cloud-based AI workflows can require users to transmit documents to external servers for processing. TrueTrend takes a different approach.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The application is designed to run locally on the user's computer.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Its open-weight AI model, Google Gemma 4, runs through Ollama. Report processing, storage, and analysis take place on the local machine.&lt;/p&gt;

&lt;p&gt;This architecture provides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No mandatory cloud account.&lt;/li&gt;
&lt;li&gt;No external medical-report upload.&lt;/li&gt;
&lt;li&gt;Local processing and storage.&lt;/li&gt;
&lt;li&gt;Offline operation after the required model and voice assets have been installed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Privacy is therefore not dependent solely on a promise in a policy document. It is supported by the system's architecture.&lt;/p&gt;

&lt;p&gt;The application does not require users to surrender control of their medical documents to access its core functionality.&lt;/p&gt;


&lt;h2&gt;
  
  
  Product Demonstration
&lt;/h2&gt;

&lt;p&gt;🔗 &lt;strong&gt;Product website:&lt;/strong&gt; &lt;a href="https://dnyaneshu.github.io/TrueTrend/" rel="noopener noreferrer"&gt;https://dnyaneshu.github.io/TrueTrend/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The product page provides screenshots, an overview of the workflow, and the underlying implementation.&lt;/p&gt;
&lt;h3&gt;
  
  
  Run TrueTrend Locally
&lt;/h3&gt;

&lt;p&gt;The repository includes four synthetic sample reports representing multiple laboratories and document layouts. These allow users and reviewers to explore the application without uploading real patient information.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/DnyaneshU/TrueTrend
&lt;span class="nb"&gt;cd &lt;/span&gt;TrueTrend

pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="s2"&gt;".[voice]"&lt;/span&gt;

ollama pull gemma4:e4b
truetrend-voice &lt;span class="nb"&gt;install

&lt;/span&gt;truetrend-serve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://127.0.0.1:8000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create a local account and import the sample PDFs from the &lt;code&gt;samples/&lt;/code&gt; directory.&lt;/p&gt;

&lt;p&gt;Processing time is approximately 30 seconds per page on the tested setup, subject to hardware and document complexity.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why We Do Not Offer a Hosted Medical-Report Demo
&lt;/h3&gt;

&lt;p&gt;A conventional hosted demonstration would require users to upload medical documents to an externally managed server.&lt;/p&gt;

&lt;p&gt;That would conflict with one of TrueTrend's central product commitments.&lt;/p&gt;

&lt;p&gt;Instead, we provide a product walkthrough and a reproducible local installation. This allows users to evaluate the application while keeping their medical information under their own control.&lt;/p&gt;




&lt;h2&gt;
  
  
  Technology and Architecture
&lt;/h2&gt;

&lt;p&gt;TrueTrend combines open-weight AI with deterministic document-processing and verification components.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;th&gt;Role&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Google Gemma 4 via Ollama&lt;/td&gt;
&lt;td&gt;Document interpretation and question understanding&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Piper&lt;/td&gt;
&lt;td&gt;Local Marathi text-to-speech&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PyMuPDF&lt;/td&gt;
&lt;td&gt;PDF text extraction, source verification, and value highlighting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FastAPI&lt;/td&gt;
&lt;td&gt;Application backend and API&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTML, CSS, JavaScript&lt;/td&gt;
&lt;td&gt;Lightweight frontend&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The implementation deliberately avoids a frontend build pipeline, keeping the application straightforward to install and inspect.&lt;/p&gt;

&lt;h3&gt;
  
  
  An Engineering Challenge: Understanding Laboratory Tables
&lt;/h3&gt;

&lt;p&gt;The most difficult part of the implementation was not simply extracting text from a PDF. It was preserving the relationship between values and their corresponding test names.&lt;/p&gt;

&lt;p&gt;PDF documents often represent tables as positioned text rather than structured rows and columns.&lt;/p&gt;

&lt;p&gt;For example, a test named &lt;em&gt;Vitamin D, 25 Hydroxy&lt;/em&gt; may contain the number 25 as part of the test name itself.&lt;/p&gt;

&lt;p&gt;A naïve line-by-line extraction process can confuse that number with the actual result.&lt;/p&gt;

&lt;p&gt;TrueTrend therefore reconstructs document content into table-like structures before attempting verification.&lt;/p&gt;

&lt;p&gt;This structural processing is essential to maintaining the reliability of the numerical verification layer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why We Constrained AI-Generated Explanations
&lt;/h3&gt;

&lt;p&gt;During development, unrestricted AI rewriting of Marathi explanations introduced risks such as changing numerical associations, adding unsupported qualifiers, or reversing the intended direction of a statement.&lt;/p&gt;

&lt;p&gt;The generative rewriting feature was removed.&lt;/p&gt;

&lt;p&gt;TrueTrend instead uses controlled, data-grounded sentence generation for its core health summaries.&lt;/p&gt;

&lt;p&gt;The design prioritizes factual consistency over conversational fluency.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Open Innovation Matters
&lt;/h2&gt;

&lt;p&gt;Open innovation is particularly important when developing AI products for sensitive domains.&lt;/p&gt;

&lt;p&gt;For TrueTrend, open-weight models and inspectable software provide four essential advantages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Data Sovereignty&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Users can process sensitive health documents locally without requiring an external AI service to receive their reports.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Inspectability&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Developers can examine the complete pipeline between document extraction, AI interpretation, verification, and user-facing output.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Auditable Reasoning&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Clinical variation thresholds are linked to their research sources, allowing reviewers to inspect the basis for supported comparisons.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Accessibility Without Continuous Connectivity&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once the required components are installed, the core application can operate without an internet connection.&lt;/p&gt;

&lt;p&gt;Open AI is not merely a cost-saving decision for TrueTrend. It enables a product architecture built around privacy, transparency, and user control.&lt;/p&gt;




&lt;h2&gt;
  
  
  Responsible Use and Current Limitations
&lt;/h2&gt;

&lt;p&gt;TrueTrend is designed as a medical information organization and interpretation aid, not a diagnostic system or replacement for professional medical advice.&lt;/p&gt;

&lt;p&gt;Its current scope includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Support for 15 common laboratory tests.&lt;/li&gt;
&lt;li&gt;Comparison against the laboratory's own printed reference range.&lt;/li&gt;
&lt;li&gt;Supported longitudinal trend analysis.&lt;/li&gt;
&lt;li&gt;Conservative change classification.&lt;/li&gt;
&lt;li&gt;English and Marathi explanations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Unsupported tests are excluded rather than interpreted through assumptions.&lt;/p&gt;

&lt;p&gt;Photographs and scanned reports require additional human verification because the source-text verification process cannot establish the same level of certainty as supported text-based PDFs.&lt;/p&gt;

&lt;p&gt;Users should consult qualified healthcare professionals for diagnosis, treatment decisions, and interpretation of clinically significant results.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Vision
&lt;/h2&gt;

&lt;p&gt;Medical information should not become less accessible simply because it is distributed across different laboratories, technical formats, languages, or digital platforms.&lt;/p&gt;

&lt;p&gt;TrueTrend is an effort to make personal health records more understandable without compromising the accuracy, privacy, and traceability that sensitive information demands.&lt;/p&gt;

&lt;p&gt;Our long-term direction is to make trustworthy, local-first health intelligence accessible to individuals who need it most, particularly those managing long-term conditions and navigating medical information across language barriers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TrueTrend: Your health history, connected. Your information, in your control.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Project and Open-Source Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Product:&lt;/strong&gt; &lt;a href="https://dnyaneshu.github.io/TrueTrend/" rel="noopener noreferrer"&gt;https://dnyaneshu.github.io/TrueTrend/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/DnyaneshU/TrueTrend" rel="noopener noreferrer"&gt;https://github.com/DnyaneshU/TrueTrend&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Challenge:&lt;/strong&gt; &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge — Build for a Friend&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We welcome feedback, technical review, and contributions from developers, healthcare professionals, and accessibility advocates interested in building more trustworthy open-source health technology.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>gemmachallenge</category>
      <category>weekendchallenge</category>
    </item>
  </channel>
</rss>
