<?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: Vyldor</title>
    <description>The latest articles on DEV Community by Vyldor (@vyldor).</description>
    <link>https://dev.to/vyldor</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%2F3964959%2F3d4fe43f-2185-4813-893d-5e13a49bc5f4.png</url>
      <title>DEV Community: Vyldor</title>
      <link>https://dev.to/vyldor</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vyldor"/>
    <language>en</language>
    <item>
      <title>I published the experiment that could kill my own product</title>
      <dc:creator>Vyldor</dc:creator>
      <pubDate>Wed, 19 Aug 2026 11:09:34 +0000</pubDate>
      <link>https://dev.to/vyldor/i-published-the-experiment-that-could-kill-my-own-product-1pg2</link>
      <guid>https://dev.to/vyldor/i-published-the-experiment-that-could-kill-my-own-product-1pg2</guid>
      <description>&lt;p&gt;Three days ago I deleted the main feature of my product because 8.6 mm of buckle cavity could not hold an earpiece. What replaced it is a belt that measures your waist circumference from the tension in its own strap.&lt;/p&gt;

&lt;p&gt;That claim rests on one assumption I have not tested: &lt;strong&gt;that strap tension carries a signal you can actually recover&lt;/strong&gt; — through clothing, while walking, at different fits and temperatures.&lt;/p&gt;

&lt;p&gt;If it doesn't, circumference and respiration both fall at once and I start over.&lt;/p&gt;

&lt;p&gt;So rather than write another paragraph asserting it works, I published the experiment that could kill it. Parts list, wiring, firmware, analysis. About €20.&lt;/p&gt;

&lt;h2&gt;
  
  
  The trap that eats this test
&lt;/h2&gt;

&lt;p&gt;The obvious build is: strain gauge → HX711 → microcontroller. Buy the parts, glue the gauge to the belt, read the value.&lt;/p&gt;

&lt;p&gt;That gives you &lt;code&gt;8388607&lt;/code&gt;. Every time. Forever.&lt;/p&gt;

&lt;p&gt;The HX711 is not an ohmmeter. It is a differential ADC designed for a &lt;strong&gt;Wheatstone bridge&lt;/strong&gt; — it measures the imbalance between two voltage dividers. Hand it a single resistor and its input sits at a rail, and you get the 24-bit maximum.&lt;/p&gt;

&lt;p&gt;Search that number and you'll find forum threads of people debugging their code for an evening. The bug is not in the code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why a half bridge, not a quarter
&lt;/h2&gt;

&lt;p&gt;You can complete the bridge with three fixed resistors and one gauge. Don't — not for something worn on a body.&lt;/p&gt;

&lt;p&gt;A foil strain gauge responds to temperature almost as much as it responds to strain. Put it against a torso and it goes from 20 °C to about 32 °C over the first twenty minutes. That drift is larger than the breathing signal you are trying to see. Your beautiful trace will be a slow ramp with noise on it.&lt;/p&gt;

&lt;p&gt;The fix costs one extra gauge:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;        E+  (~4.3 V from the HX711)
         │
    ┌────┴────┐
    │         │
 R_active   R1 350Ω 0.1%
    │         │
    ├── A+    ├── A-      ← the measured difference
    │         │
 R_dummy    R2 350Ω 0.1%
    │         │
    └────┬────┘
         │
        E-
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;R_active&lt;/code&gt; is bonded to the strap and stretches with it. &lt;code&gt;R_dummy&lt;/code&gt; is bonded to &lt;strong&gt;an offcut of the same leather, right next to it, carrying no load.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Both gauges sit in the same leg, at the same temperature. Thermal drift moves them together and cancels in the difference. Mechanical strain moves only one, and survives.&lt;/p&gt;

&lt;p&gt;Use metal-film resistors for R1/R2, not carbon. Carbon's tempco is large enough to reintroduce exactly the drift you just removed.&lt;/p&gt;

&lt;h2&gt;
  
  
  The firmware is deliberately not a library
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="kt"&gt;long&lt;/span&gt; &lt;span class="nf"&gt;readRaw&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;ready&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;delay&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="kt"&gt;long&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="n"&gt;noInterrupts&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;            &lt;span class="c1"&gt;// an interrupted 24-bit shift-in is garbage&lt;/span&gt;
  &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;24&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;digitalWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;PIN_SCK&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;HIGH&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="n"&gt;delayMicroseconds&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;digitalRead&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;PIN_DT&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;digitalWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;PIN_SCK&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;LOW&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="n"&gt;delayMicroseconds&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;24&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;   &lt;span class="c1"&gt;// 25 pulses = channel A, gain 128&lt;/span&gt;
    &lt;span class="n"&gt;digitalWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;PIN_SCK&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;HIGH&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="n"&gt;delayMicroseconds&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;digitalWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;PIN_SCK&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;LOW&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="n"&gt;delayMicroseconds&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="n"&gt;interrupts&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="mh"&gt;0x800000L&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="o"&gt;|=&lt;/span&gt; &lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="mh"&gt;0xFFFFFFL&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;   &lt;span class="c1"&gt;// sign-extend&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;HX711 libraries differ in whether they block, how they handle the rate pin, and whether they quietly drop samples. This experiment is worthless if samples are unevenly spaced, because the whole analysis is frequency-domain. Bit-banging it means the timing is visible and checkable in the output.&lt;/p&gt;

&lt;p&gt;It also refuses to start quietly when the bridge is wrong:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="kt"&gt;long&lt;/span&gt; &lt;span class="n"&gt;probe&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;readRaw&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;probe&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;8388600L&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="n"&gt;probe&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;8388600L&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"# ERROR: HX711 saturated. You almost certainly have a single "&lt;/span&gt;
                 &lt;span class="s"&gt;"gauge on the input instead of a bridge."&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Making the answer not depend on hope
&lt;/h2&gt;

&lt;p&gt;The analysis prints a verdict against a gate written down &lt;em&gt;before&lt;/em&gt; any data existed:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;GO:&lt;/strong&gt; a 1 cm change in circumference is distinguishable from walking noise, and breathing rate is recoverable from the same signal.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Breathing is found by direct DFT over 0.10–0.60 Hz (6–36 breaths/min) after removing a linear trend — the trend being the thermal drift and creep the dummy gauge didn't fully cancel. A peak only counts if it stands above a quarter of that block's own standard deviation.&lt;/p&gt;

&lt;p&gt;Circumference is scaled against a &lt;strong&gt;tape measure&lt;/strong&gt;. That matters more than any of the electronics. Without a tape measure you have proven that something changed, not that circumference did. The script refuses to return GO without it.&lt;/p&gt;

&lt;p&gt;Walking is the noise floor, because walking is what the sensor will spend its life doing.&lt;/p&gt;

&lt;p&gt;I validated the analysis on synthetic data with a known 15 breaths/min buried in walking noise before trusting it on anything real.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why publish the thing that could kill it
&lt;/h2&gt;

&lt;p&gt;Because the alternative is asking people to believe a render.&lt;/p&gt;

&lt;p&gt;Everything is here, and it is the same repository as the ten earpiece shape studies that failed:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/vojtisprime11/vyldor-specs/tree/main/hardware/p1-strain-gauge" rel="noopener noreferrer"&gt;https://github.com/vojtisprime11/vyldor-specs/tree/main/hardware/p1-strain-gauge&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you have built strain-gauge instrumentation on soft, moving, human-shaped things and I've made an obvious mistake, I would genuinely rather hear it now than after I've spent someone's money. I'm 16 and I have never built hardware — that's exactly why the test is written down where you can check it.&lt;/p&gt;




&lt;h2&gt;
  
  
  One more thing
&lt;/h2&gt;

&lt;p&gt;I am looking for &lt;strong&gt;one person who has actually built hardware&lt;/strong&gt; — as a co-founder, as an advisor with an hour a month, or as a paid contractor once there is money to pay with.&lt;/p&gt;

&lt;p&gt;I can do the software, the companion app and the parametric CAD, and I have shipped all of it where you can inspect it. What I have never done is take a physical object from a model to something manufactured. Sensing and signal recovery on a soft, moving, human-shaped thing is exactly the part I am least qualified to get right alone.&lt;/p&gt;

&lt;p&gt;If that is your work, I would like to hear from you: &lt;strong&gt;&lt;a href="mailto:vyldorhq@gmail.com"&gt;vyldorhq@gmail.com&lt;/a&gt;&lt;/strong&gt;. A link to one thing you have built beats a CV.&lt;/p&gt;

&lt;p&gt;And if you only want to tell me the bridge is wrong, that is worth as much to me right now.&lt;/p&gt;

</description>
      <category>embedded</category>
      <category>hardware</category>
      <category>electronics</category>
      <category>showdev</category>
    </item>
    <item>
      <title>I deleted my product's main feature over 8.6 mm</title>
      <dc:creator>Vyldor</dc:creator>
      <pubDate>Mon, 17 Aug 2026 11:28:58 +0000</pubDate>
      <link>https://dev.to/vyldor/i-deleted-my-products-main-feature-over-86-mm-1j35</link>
      <guid>https://dev.to/vyldor/i-deleted-my-products-main-feature-over-86-mm-1j35</guid>
      <description>&lt;p&gt;I'm 16, I've been designing a leather belt that works as a screen-free interface to a phone, and until today its central interaction was pulling a small audio module out of the buckle to start a voice session.&lt;/p&gt;

&lt;p&gt;It's gone. The reason is one number, and I want to write down how I got it wrong for so long.&lt;/p&gt;

&lt;h2&gt;
  
  
  The number
&lt;/h2&gt;

&lt;p&gt;The cavity in the buckle has &lt;strong&gt;8.6 mm&lt;/strong&gt; of usable depth. That is not a target — it's what's left after the walls:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bay depth        9.2 mm
wall  x2        -0.6 mm   (0.30 each side)
                -------
usable           8.6 mm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now put an earpiece in it. A comfortable in-ear aims its acoustic nozzle into the concha at roughly &lt;strong&gt;55°&lt;/strong&gt;. A nozzle of length &lt;code&gt;L&lt;/code&gt; leaving the body at angle &lt;code&gt;A&lt;/code&gt; projects &lt;code&gt;L·sin(A)&lt;/code&gt; out of the back of the body. So the total depth the part needs is the body thickness plus that projection:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;total = body + L·sin(55°)
      = body + 0.819·L
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Give the tip the ~4.5 mm it needs to reach and seal, and you've spent 3.7 mm before the body starts. Solve &lt;code&gt;8.6 = body + 3.7&lt;/code&gt; and you get &lt;strong&gt;4.9 mm of body&lt;/strong&gt; — and that's the generous version, ignoring the crown, the flange, and the fact that the nozzle needs wall thickness too. Run it honestly and you land near 2 mm.&lt;/p&gt;

&lt;p&gt;There is no 2 mm earpiece. There is no 2 mm anything that contains a driver, a cell, a microphone, an antenna and an SoC.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ten shapes
&lt;/h2&gt;

&lt;p&gt;I didn't accept this for a long time. I built ten of them, parametrically, each one measured by the same script that generated it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tipless concha rest&lt;/strong&gt; — fitted easily. Didn't seal. An earpiece that doesn't seal is a speaker you wear, and nobody wants that at this price.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Collapsing silicone tip&lt;/strong&gt; — fitted. But it sits at &lt;strong&gt;73% axial compression&lt;/strong&gt; every single time it docks, for hours a day, for years. I have no data saying silicone survives that, and neither does anyone else.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flat stem&lt;/strong&gt; — fitted, and looked like an AirPod someone had stepped on.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open-ear cuff&lt;/strong&gt; — 19.2 × 27.1 mm, clipping the ear rim. When I finally rendered it against an anatomically-scaled ear instead of in isolation, the arc was too open and the pod hung unsupported. It floated.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Turned aluminium disc&lt;/strong&gt; — the last one, and the good one. 19.5 × 16.6 × &lt;strong&gt;8.23 mm&lt;/strong&gt;, a concha lock, a fingernail scallop for extraction. It fitted the 8.6 mm bay with &lt;strong&gt;0.37 mm&lt;/strong&gt; to spare and every measured assertion passed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And it was a piece of jewellery that plays music. Not an earbud. I'd have to convince someone to put a metal disc the size of a 2-euro coin in their ear, and the honest answer to "would you wear this?" was no.&lt;/p&gt;

&lt;h2&gt;
  
  
  The check that lied to me
&lt;/h2&gt;

&lt;p&gt;Here's the part that's actually useful to anyone building hardware.&lt;/p&gt;

&lt;p&gt;For several iterations my fit check passed a part that was &lt;strong&gt;13.5 mm deep&lt;/strong&gt; against an &lt;strong&gt;8.6 mm&lt;/strong&gt; bay. It passed because I had written the assertion against the rigid nozzle only — the parameter I was thinking about — rather than against the bounding box of the geometry that actually got built.&lt;/p&gt;

&lt;p&gt;Parameter arithmetic is not a measurement. The fix was to stop asserting against inputs and start asserting against the mesh:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;bbox&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;measure_world_bbox&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;EARPIECE&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;assert&lt;/span&gt; &lt;span class="n"&gt;bbox&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;z&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="n"&gt;BAY_USABLE_DEPTH&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;bbox&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;z&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; mm part in a &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;BAY_USABLE_DEPTH&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; mm bay&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The moment that went in, three "working" designs failed instantly.&lt;/p&gt;

&lt;p&gt;There's a related one I got backwards. I put the retention grooves on the module and the rails in the buckle wall — which cannot work, because a rail standing 0.6 mm proud of the cavity wall occupies x 9.9–10.5 from the centreline, while an 18 mm module only reaches x 9.0. They never touch. Lugs go on the module, grooves in the wall. Obvious in hindsight; invisible until something measured it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the belt does now
&lt;/h2&gt;

&lt;p&gt;Audio is out of v1 entirely. What's left is the thing the shape is uniquely good at, and which I'd been walking past the whole time:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It measures your waist.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The strap is under tension, the tension is a function of circumference, and a strain gauge in the buckle's load-bearing flexure reads it. That sensor is under 0.3 mm thick, costs pennies, and lives in a part that already exists — it adds no hardware envelope at all.&lt;/p&gt;

&lt;p&gt;From that one signal you also get respiration, meal detection, sitting versus standing, and coughing. A watch cannot do any of this. Not because the watch lacks sensors, but because a watch is not &lt;em&gt;tight around your middle&lt;/em&gt;. Circumference is the number people actually track when their body is changing, more closely than weight, and nothing measures it continuously today.&lt;/p&gt;

&lt;p&gt;Removing the cavity also freed the buckle. It was 11.8 mm thick because a bay needed to be inside it. It's purely mechanical again, and the target is 7–8 mm.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'm not claiming
&lt;/h2&gt;

&lt;p&gt;None of this is built. It's a design-intent model with measured assertions, not a prototype.&lt;/p&gt;

&lt;p&gt;The whole v0.8 thesis rests on one unverified assumption: &lt;strong&gt;that there is a readable signal in strap tension&lt;/strong&gt;, through clothing, while walking. If there isn't, circumference and respiration both fall at once and I have to start over.&lt;/p&gt;

&lt;p&gt;That test is one strain gauge, an amplifier, an ADC and an afternoon. It's the next thing I'm doing, and it's the cheapest possible way to find out I'm wrong.&lt;/p&gt;

&lt;p&gt;Everything — including the shape studies that failed and the assertions that caught them — is at &lt;a href="https://vyldor.com" rel="noopener noreferrer"&gt;vyldor.com&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>hardware</category>
      <category>design</category>
      <category>engineering</category>
      <category>showdev</category>
    </item>
    <item>
      <title>I'm 16. I have never built hardware. So I published the parts I got wrong.</title>
      <dc:creator>Vyldor</dc:creator>
      <pubDate>Thu, 13 Aug 2026 19:02:40 +0000</pubDate>
      <link>https://dev.to/vyldor/im-16-i-have-never-built-hardware-so-i-published-the-parts-i-got-wrong-4h3m</link>
      <guid>https://dev.to/vyldor/im-16-i-have-never-built-hardware-so-i-published-the-parts-i-got-wrong-4h3m</guid>
      <description>&lt;p&gt;Draft validation for the Vyldor founder story.&lt;/p&gt;

</description>
      <category>hardware</category>
      <category>wearables</category>
      <category>ai</category>
      <category>productdesign</category>
    </item>
    <item>
      <title>Why standalone AI gadgets failed — and why Vyldor stays an interface</title>
      <dc:creator>Vyldor</dc:creator>
      <pubDate>Thu, 13 Aug 2026 12:06:28 +0000</pubDate>
      <link>https://dev.to/vyldor/why-every-standalone-ai-gadget-failed-and-how-we-built-a-screenless-belt-that-replaces-the-4nmb</link>
      <guid>https://dev.to/vyldor/why-every-standalone-ai-gadget-failed-and-how-we-built-a-screenless-belt-that-replaces-the-4nmb</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Update, 17 August 2026 — this post is superseded.&lt;/strong&gt;&lt;br&gt;
The audio module described here was removed from the product. The buckle cavity has&lt;br&gt;
8.6 mm of usable depth, and an acoustic nozzle aimed into the ear eats most of it&lt;br&gt;
before the body of the part begins — every shape that fitted stopped being an&lt;br&gt;
earpiece. The belt now measures waist circumference from the tension in its own&lt;br&gt;
strap. The full arithmetic is here:&lt;br&gt;
&lt;a href="https://dev.to/vyldor/i-deleted-my-products-main-feature-over-86-mm-1j35"&gt;I deleted my product's main feature over 8.6 mm&lt;/a&gt;.&lt;br&gt;
This post is left up unedited below as a record of what was true when it was written.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Current status (13 August 2026):&lt;/strong&gt; Vyldor is a design concept. No physical hardware has been built, manufactured, worn or tested. Nothing is for sale, and every product image is a render.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you designed a screenless wearable in 2024 you had three products to point at. In 2026 you can buy none of them.&lt;/p&gt;

&lt;p&gt;Humane's AI Pin was a $499 screenless device from two former Apple designers. HP acquired most of Humane's assets in February 2025 for a reported $116m, against the roughly $230m the company had raised. Sales stopped immediately and the servers were switched off at the end of that month. Devices people had paid for stopped answering, and customer data was deleted.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://techcrunch.com/2025/02/18/humanes-ai-pin-is-dead-as-hp-buys-startup-for-116m/" rel="noopener noreferrer"&gt;TechCrunch's report&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Limitless Pendant was the one that actually worked. A $99 clip that listened to your conversations and turned them into searchable notes, from a team that had raised about $33m. Meta acquired the company in December 2025, pulled the hardware from sale and moved the team into Reality Labs. Existing owners kept working software. Nobody new could buy one.&lt;/p&gt;

&lt;p&gt;Rabbit's R1 is still sold, and its reception is its own argument. Tom's Guide titled its review "Avoid this AI gadget". The recurring complaints were that it was slow, that battery life was poor, and that a phone already did the same things with less friction.&lt;/p&gt;

&lt;h2&gt;
  
  
  This is not three unlucky companies
&lt;/h2&gt;

&lt;p&gt;Every one of them tried to be a second device with its own brain, its own connection and its own subscription. That sets a bar that is almost impossible to clear: it has to be better at answering you than the £900 computer already in your pocket, while having a smaller battery, a worse radio and no app ecosystem.&lt;/p&gt;

&lt;p&gt;It also means the company has to stay alive for the product to keep working. That is the part that should worry anyone buying one. When Humane's servers went dark, the object did not degrade to a simpler version of itself. It stopped being anything.&lt;/p&gt;

&lt;p&gt;Reviewers kept reaching the same sentence from different directions: your phone already does this. That was treated as a criticism of the execution. We think it was a description of the category.&lt;/p&gt;

&lt;h2&gt;
  
  
  So we did not build a second brain
&lt;/h2&gt;

&lt;p&gt;Vyldor is a leather belt that works as an interface to the phone you already own. It has no processor deciding what you meant, no SIM, no subscription and no cloud of its own. The phone does the assistant, the routing and the connection. The belt does the part a phone is genuinely bad at: reaching you without demanding your eyes.&lt;/p&gt;

&lt;p&gt;That sounds like a smaller ambition, and it is. It is also the only version that survives us. If this project fails — and most do — the belt still holds your trousers up, because the leather carries the entire mechanical load and no wire is ever part of that path. The haptics and the button talk to the phone over standard Bluetooth, so they keep working with no signal and no server. There is nothing for us to switch off that would turn it into a brick.&lt;/p&gt;

&lt;p&gt;The earpiece in the buckle follows from the same reasoning. It is not a proprietary audio protocol; it is a Bluetooth earpiece that happens to live in a buckle and charge there. If our software disappeared it would still be an earpiece.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we are not claiming
&lt;/h2&gt;

&lt;p&gt;We have built nothing. There is no hardware, no price and no ship date, and every image on this site is a render from one parametric 3D model. So this is not a track record beating theirs — they shipped and we have not. It is a design position, and it is fair to hold us to it later.&lt;/p&gt;

&lt;p&gt;There are real risks in ours that theirs did not have. Whether people can reliably tell a left tap from a right one through clothing is unproven and is the cheapest test that could kill the idea. A belt is a size problem in a way a pendant is not. And a mono earpiece in a 7 mm body is voice-grade, not hi-fi, which we say plainly rather than implying otherwise.&lt;/p&gt;

&lt;p&gt;But the failure mode is different, and that is the point worth taking from three dead products. Ask of any device you are thinking of buying: if the company behind it disappeared tomorrow, what would be left in your hand? For the Pin, the honest answer turned out to be nothing.&lt;/p&gt;

</description>
      <category>wearables</category>
      <category>hardware</category>
      <category>ai</category>
      <category>productdesign</category>
    </item>
    <item>
      <title>Why Smart Belts Are the Most Underrated Wearable Form-Factor of 2026</title>
      <dc:creator>Vyldor</dc:creator>
      <pubDate>Wed, 12 Aug 2026 10:12:03 +0000</pubDate>
      <link>https://dev.to/vyldor/why-smart-belts-are-the-most-underrated-wearable-form-factor-of-2026-2k85</link>
      <guid>https://dev.to/vyldor/why-smart-belts-are-the-most-underrated-wearable-form-factor-of-2026-2k85</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Update, 17 August 2026 — this post is superseded.&lt;/strong&gt;&lt;br&gt;
The audio module described here was removed from the product. The buckle cavity has&lt;br&gt;
8.6 mm of usable depth, and an acoustic nozzle aimed into the ear eats most of it&lt;br&gt;
before the body of the part begins — every shape that fitted stopped being an&lt;br&gt;
earpiece. The belt now measures waist circumference from the tension in its own&lt;br&gt;
strap. The full arithmetic is here:&lt;br&gt;
&lt;a href="https://dev.to/vyldor/i-deleted-my-products-main-feature-over-86-mm-1j35"&gt;I deleted my product's main feature over 8.6 mm&lt;/a&gt;.&lt;br&gt;
This post is left up unedited below as a record of what was true when it was written.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;For the last decade, smart wearables have been dominated by a single design assumption: if it is smart, it belongs on your wrist.&lt;/p&gt;

&lt;p&gt;Smartwatches are great for fitness tracking, but they come with trade-offs. The small screens cause constant micro-distractions, ground planes for antennas are cramped, and wrist motion introduces massive noise for biometric sensors.&lt;/p&gt;

&lt;p&gt;Recently, a new category of screenless hardware has been emerging. Among these, &lt;strong&gt;Vyldor&lt;/strong&gt; — a smart leather belt concept — stands out as one of the most mechanically elegant solutions to smartphone fatigue.&lt;/p&gt;

&lt;p&gt;Here is an engineering breakdown of why the smart belt form-factor solves problems that smartwatches simply cannot.&lt;/p&gt;




&lt;h1&gt;
  
  
  1. The Geometry of a Smart Belt
&lt;/h1&gt;

&lt;p&gt;Unlike a watch or a chest pin, a leather belt surrounds the waist. This simple physical trait unlocks three major engineering benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;1-Metre Woven Loop Antenna:&lt;/strong&gt; Cramped wrist devices struggle with Bluetooth range. A smart belt allows weaving conductive thread through a 37mm leather strap to create a 1-metre loop aerial, giving it exceptional RF stability.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Centre of Mass Biometrics:&lt;/strong&gt; Sensors placed at the body's centre of mass read clean physical movement. While wrist trackers struggle with arm-swing noise during gait analysis, a 6-axis sensor in a belt buckle can authenticate a user's gait within 20 steps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Constant Pressure Points:&lt;/strong&gt; The belt sits snugly against hip bones, making it ideal for tactile and haptic feedback.&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  2. Key Interface Innovations in Vyldor
&lt;/h1&gt;

&lt;p&gt;Rather than acting as a standalone computer, Vyldor acts as an ergonomic physical interface for the phone already in your pocket.&lt;/p&gt;

&lt;h3&gt;
  
  
  🎧 Pull-to-Talk Buckle Earpiece
&lt;/h3&gt;

&lt;p&gt;Inside Vyldor's 11.8mm aluminium buckle, a mono audio earpiece is docked magnetically. Pulling the earpiece out opens a direct voice stream; docking it back ends the session and charges the battery. This eliminates the privacy nightmare of always-on microphones.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧭 Tactile Hip Navigation
&lt;/h3&gt;

&lt;p&gt;Vyldor uses two soft haptic actuators resting against the hip bones. When navigating a city on foot or bike, a gentle tap on the left hip signals a left turn, and a tap on the right hip signals a right turn. No looking down at screens required.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔑 Body-Coupled Touch Authentication
&lt;/h3&gt;

&lt;p&gt;Using Body-Coupled Signalling (BCS), a microamp signal passes safely through the wearer's skin. Touching a laptop, a door handle, or a terminal transmits authentication tokens automatically.&lt;/p&gt;




&lt;h1&gt;
  
  
  3. Transparent Development Model
&lt;/h1&gt;

&lt;p&gt;What makes the Vyldor project particularly interesting to follow is its transparent engineering approach. &lt;/p&gt;

&lt;p&gt;The team explicitly publishes what is not built yet. There is no physical prototype for sale; every image on their site is rendered live from one parametric CAD model. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Official Web &amp;amp; 3D Model: &lt;a href="https://vyldor.com" rel="noopener noreferrer"&gt;https://vyldor.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Product Features: &lt;a href="https://vyldor.com/features" rel="noopener noreferrer"&gt;https://vyldor.com/features&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Engineering Journal: &lt;a href="https://vyldor.com/journal" rel="noopener noreferrer"&gt;https://vyldor.com/journal&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Open Hardware Specs: &lt;a href="https://github.com/vojtisprime11/vyldor-specs" rel="noopener noreferrer"&gt;https://github.com/vojtisprime11/vyldor-specs&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;As screen distraction becomes an increasing concern, screenless interfaces like smart belts prove that technology does not always need to be in front of our eyes to be useful. &lt;/p&gt;

&lt;p&gt;Will the smart belt become the next major wearable category? The engineering behind Vyldor certainly makes a compelling case.&lt;/p&gt;

</description>
      <category>hardware</category>
      <category>wearables</category>
      <category>tech</category>
      <category>innovation</category>
    </item>
    <item>
      <title>[Superseded] Designing a Screenless Smart Leather Belt: Earpiece in Buckle &amp; Haptic Hip Navigation</title>
      <dc:creator>Vyldor</dc:creator>
      <pubDate>Wed, 12 Aug 2026 10:11:23 +0000</pubDate>
      <link>https://dev.to/vyldor/designing-a-screenless-smart-leather-belt-earpiece-in-buckle-haptic-hip-navigation-27lm</link>
      <guid>https://dev.to/vyldor/designing-a-screenless-smart-leather-belt-earpiece-in-buckle-haptic-hip-navigation-27lm</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Update, 17 August 2026 — this post is superseded.&lt;/strong&gt;&lt;br&gt;
The audio module described here was removed from the product. The buckle cavity has&lt;br&gt;
8.6 mm of usable depth, and an acoustic nozzle aimed into the ear eats most of it&lt;br&gt;
before the body of the part begins — every shape that fitted stopped being an&lt;br&gt;
earpiece. The belt now measures waist circumference from the tension in its own&lt;br&gt;
strap. The full arithmetic is here:&lt;br&gt;
&lt;a href="https://dev.to/vyldor/i-deleted-my-products-main-feature-over-86-mm-1j35"&gt;I deleted my product's main feature over 8.6 mm&lt;/a&gt;.&lt;br&gt;
This post is left up unedited below as a record of what was true when it was written.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;We glance at our smartphone screens over 100 times a day. Most of the time, it's for something trivial: confirming a navigation turn, taking a 10-second call, or authenticating a device.&lt;/p&gt;

&lt;p&gt;Smartwatches tried to solve screen fatigue, but they just put a smaller screen on your wrist.&lt;/p&gt;

&lt;p&gt;I'm building Vyldor — a screenless smart leather belt designed as a physical interface for the smartphone already in your pocket. &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%2Fyksjvx4fhqvf2q96j4fd.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%2Fyksjvx4fhqvf2q96j4fd.png" alt="Vyldor Smart Leather Belt Concept" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Why a Belt?
&lt;/h1&gt;

&lt;p&gt;A belt is something millions of people wear every single day. Unlike wrists or pins, your waist offers unique physical advantages for hardware design:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;It stays at your body's centre of mass.&lt;/li&gt;
&lt;li&gt;It maintains constant pressure against your hip bones.&lt;/li&gt;
&lt;li&gt;It has enough surface area for a 1-metre loop antenna.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Here is how Vyldor turns a traditional leather belt into a screen-free phone controller:&lt;/p&gt;




&lt;h2&gt;
  
  
  🎧 1. Pull-to-Talk Earpiece in the Buckle
&lt;/h2&gt;

&lt;p&gt;Inside the 11.8mm CNC-machined aluminium buckle cavity sits a mono audio earpiece. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Draw to speak: Pulling the earpiece out automatically opens a voice session with your phone. No wake-word ("Hey Siri") and no always-on listening microphone.&lt;/li&gt;
&lt;li&gt;Dock to end: Snapping the earpiece back into the buckle instantly closes the call and begins magnetic charging.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧭 2. Haptic Hip Navigation
&lt;/h2&gt;

&lt;p&gt;Instead of looking down at a map while walking, running, or cycling:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Left Hip Tap: Vibration tap on your left hip bone means turn left.&lt;/li&gt;
&lt;li&gt;Right Hip Tap: Vibration tap on your right hip bone means turn right.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You navigate complex city streets purely through tactile feedback against your waist.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔑 3. Your Body is the Key (Body-Coupled Signalling)
&lt;/h2&gt;

&lt;p&gt;Vyldor uses Body-Coupled Signalling (BCS) to transmit a harmless microamp signal through your skin using soft contact pads on the inside of the strap.&lt;/p&gt;

&lt;p&gt;When you touch your laptop trackpad, a smart door handle, or a payment terminal, your body transmits the authentication token instantly. No fingerprint scans, no passwords, no keycards.&lt;/p&gt;




&lt;h2&gt;
  
  
  👣 4. Your Walk is the Password (Gait Authentication)
&lt;/h2&gt;

&lt;p&gt;Wrist wearables struggle with biometric tracking because arm movement creates massive noise. &lt;/p&gt;

&lt;p&gt;Vyldor embeds a 6-axis IMU directly at your body's centre of mass. Within 20 steps, the sensor reads your unique gait dynamics to verify that it is actually you wearing the belt.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡ 5. 1-Metre Woven Loop Antenna
&lt;/h2&gt;

&lt;p&gt;Wrist wearables have cramped ground planes that throttle Bluetooth signal strength. &lt;/p&gt;

&lt;p&gt;By weaving conductive thread directly inside the 37mm full-grain leather strap, Vyldor creates a 1-metre loop antenna around your waist, dramatically improving Bluetooth stability and range.&lt;/p&gt;




&lt;h1&gt;
  
  
  Complete Engineering Transparency
&lt;/h1&gt;

&lt;p&gt;Vyldor is currently an early-stage parametric design concept. &lt;/p&gt;

&lt;p&gt;We built no physical hardware yet, there is no price, and no release date. Every visual asset on our site is rendered live from a single CAD model, and we publish what is NOT built on our status page.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Interactive 3D Viewer &amp;amp; Site: &lt;a href="https://vyldor.com" rel="noopener noreferrer"&gt;https://vyldor.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Feature Breakdown: &lt;a href="https://vyldor.com/features" rel="noopener noreferrer"&gt;https://vyldor.com/features&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Engineering Notes: &lt;a href="https://vyldor.com/journal" rel="noopener noreferrer"&gt;https://vyldor.com/journal&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What do you think of using a belt as a phone interface instead of a wrist screen? I'd love to hear your thoughts in the comments!&lt;/p&gt;

</description>
      <category>hardware</category>
      <category>wearables</category>
      <category>iot</category>
      <category>productdesign</category>
    </item>
    <item>
      <title>Vyldor: a screenless smart belt design concept</title>
      <dc:creator>Vyldor</dc:creator>
      <pubDate>Wed, 12 Aug 2026 08:09:41 +0000</pubDate>
      <link>https://dev.to/vyldor/one-and-the-only-smart-belt-in-the-world-49jd</link>
      <guid>https://dev.to/vyldor/one-and-the-only-smart-belt-in-the-world-49jd</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/vyldor/why-smart-belts-are-the-most-underrated-wearable-form-factor-of-2026-m1i" class="crayons-story__hidden-navigation-link"&gt;Why Smart Belts Are the Most Underrated Wearable Form-Factor of 2026&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/vyldor" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F3964959%2F3d4fe43f-2185-4813-893d-5e13a49bc5f4.png" alt="vyldor profile" class="crayons-avatar__image" width="800" height="800"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/vyldor" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Vyldor
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Vyldor
                
                
              
              &lt;div id="story-author-preview-content-4375851" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/vyldor" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F3964959%2F3d4fe43f-2185-4813-893d-5e13a49bc5f4.png" class="crayons-avatar__image" alt="" width="800" height="800"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Vyldor&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/vyldor/why-smart-belts-are-the-most-underrated-wearable-form-factor-of-2026-m1i" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Aug 12&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/vyldor/why-smart-belts-are-the-most-underrated-wearable-form-factor-of-2026-m1i" id="article-link-4375851"&gt;
          Why Smart Belts Are the Most Underrated Wearable Form-Factor of 2026
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/hardware"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;hardware&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tech"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tech&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/innovation"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;innovation&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/vyldor/why-smart-belts-are-the-most-underrated-wearable-form-factor-of-2026-m1i" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/vyldor/why-smart-belts-are-the-most-underrated-wearable-form-factor-of-2026-m1i#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Why Smart Belts Are the Most Underrated Wearable Form-Factor of 2026</title>
      <dc:creator>Vyldor</dc:creator>
      <pubDate>Wed, 12 Aug 2026 08:08:15 +0000</pubDate>
      <link>https://dev.to/vyldor/why-smart-belts-are-the-most-underrated-wearable-form-factor-of-2026-m1i</link>
      <guid>https://dev.to/vyldor/why-smart-belts-are-the-most-underrated-wearable-form-factor-of-2026-m1i</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Update, 17 August 2026 — this post is superseded.&lt;/strong&gt;&lt;br&gt;
The audio module described here was removed from the product. The buckle cavity has&lt;br&gt;
8.6 mm of usable depth, and an acoustic nozzle aimed into the ear eats most of it&lt;br&gt;
before the body of the part begins — every shape that fitted stopped being an&lt;br&gt;
earpiece. The belt now measures waist circumference from the tension in its own&lt;br&gt;
strap. The full arithmetic is here:&lt;br&gt;
&lt;a href="https://dev.to/vyldor/i-deleted-my-products-main-feature-over-86-mm-1j35"&gt;I deleted my product's main feature over 8.6 mm&lt;/a&gt;.&lt;br&gt;
This post is left up unedited below as a record of what was true when it was written.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;For the last decade, smart wearables have been dominated by a single design assumption: if it is smart, it belongs on your wrist.&lt;/p&gt;

&lt;p&gt;Smartwatches are great for fitness tracking, but they come with trade-offs. The small screens cause constant micro-distractions, ground planes for antennas are cramped, and wrist motion introduces massive noise for biometric sensors.&lt;/p&gt;

&lt;p&gt;Recently, a new category of screenless hardware has been emerging. Among these, &lt;strong&gt;Vyldor&lt;/strong&gt; — a smart leather belt concept — stands out as one of the most mechanically elegant solutions to smartphone fatigue.&lt;/p&gt;

&lt;p&gt;Here is an engineering breakdown of why the smart belt form-factor solves problems that smartwatches simply cannot.&lt;/p&gt;




&lt;h1&gt;
  
  
  1. The Geometry of a Smart Belt
&lt;/h1&gt;

&lt;p&gt;Unlike a watch or a chest pin, a leather belt surrounds the waist. This simple physical trait unlocks three major engineering benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;1-Metre Woven Loop Antenna:&lt;/strong&gt; Cramped wrist devices struggle with Bluetooth range. A smart belt allows weaving conductive thread through a 37mm leather strap to create a 1-metre loop aerial, giving it exceptional RF stability.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Centre of Mass Biometrics:&lt;/strong&gt; Sensors placed at the body's centre of mass read clean physical movement. While wrist trackers struggle with arm-swing noise during gait analysis, a 6-axis sensor in a belt buckle can authenticate a user's gait within 20 steps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Constant Pressure Points:&lt;/strong&gt; The belt sits snugly against hip bones, making it ideal for tactile and haptic feedback.&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  2. Key Interface Innovations in Vyldor
&lt;/h1&gt;

&lt;p&gt;Rather than acting as a standalone computer, Vyldor acts as an ergonomic physical interface for the phone already in your pocket.&lt;/p&gt;

&lt;h3&gt;
  
  
  🎧 Pull-to-Talk Buckle Earpiece
&lt;/h3&gt;

&lt;p&gt;Inside Vyldor's 11.8mm aluminium buckle, a mono audio earpiece is docked magnetically. Pulling the earpiece out opens a direct voice stream; docking it back ends the session and charges the battery. This eliminates the privacy nightmare of always-on microphones.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧭 Tactile Hip Navigation
&lt;/h3&gt;

&lt;p&gt;Vyldor uses two soft haptic actuators resting against the hip bones. When navigating a city on foot or bike, a gentle tap on the left hip signals a left turn, and a tap on the right hip signals a right turn. No looking down at screens required.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔑 Body-Coupled Touch Authentication
&lt;/h3&gt;

&lt;p&gt;Using Body-Coupled Signalling (BCS), a microamp signal passes safely through the wearer's skin. Touching a laptop, a door handle, or a terminal transmits authentication tokens automatically.&lt;/p&gt;




&lt;h1&gt;
  
  
  3. Transparent Development Model
&lt;/h1&gt;

&lt;p&gt;What makes the Vyldor project particularly interesting to follow is its transparent engineering approach. &lt;/p&gt;

&lt;p&gt;The team explicitly publishes what is not built yet. There is no physical prototype for sale; every image on their site is rendered live from one parametric CAD model. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Official Web &amp;amp; 3D Model:&lt;/strong&gt; &lt;a href="https://vyldor.com" rel="noopener noreferrer"&gt;https://vyldor.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Product Features:&lt;/strong&gt; &lt;a href="https://vyldor.com/features" rel="noopener noreferrer"&gt;https://vyldor.com/features&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Engineering Journal:&lt;/strong&gt; &lt;a href="https://vyldor.com/journal" rel="noopener noreferrer"&gt;https://vyldor.com/journal&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;As screen distraction becomes an increasing concern, screenless interfaces like smart belts prove that technology does not always need to be in front of our eyes to be useful. &lt;/p&gt;

&lt;p&gt;Will the smart belt become the next major wearable category? The engineering behind Vyldor certainly makes a compelling case.&lt;/p&gt;

</description>
      <category>hardware</category>
      <category>tech</category>
      <category>innovation</category>
      <category>ai</category>
    </item>
    <item>
      <title>[Superseded] I'm Building a Smart Leather Belt That Replaces Your Phone Screen with Hip Taps and a Buckle Earpiece</title>
      <dc:creator>Vyldor</dc:creator>
      <pubDate>Wed, 12 Aug 2026 07:34:48 +0000</pubDate>
      <link>https://dev.to/vyldor/im-building-a-smart-leather-belt-that-replaces-your-phone-screen-with-hip-taps-and-a-buckle-1a3m</link>
      <guid>https://dev.to/vyldor/im-building-a-smart-leather-belt-that-replaces-your-phone-screen-with-hip-taps-and-a-buckle-1a3m</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Update, 17 August 2026 — this post is superseded.&lt;/strong&gt;&lt;br&gt;
The audio module described here was removed from the product. The buckle cavity has&lt;br&gt;
8.6 mm of usable depth, and an acoustic nozzle aimed into the ear eats most of it&lt;br&gt;
before the body of the part begins — every shape that fitted stopped being an&lt;br&gt;
earpiece. The belt now measures waist circumference from the tension in its own&lt;br&gt;
strap. The full arithmetic is here:&lt;br&gt;
&lt;a href="https://dev.to/vyldor/i-deleted-my-products-main-feature-over-86-mm-1j35"&gt;I deleted my product's main feature over 8.6 mm&lt;/a&gt;.&lt;br&gt;
This post is left up unedited below as a record of what was true when it was written.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;We glance at our smartphone screens over 100 times a day. Most of the time, it's for something trivial: confirming a navigation turn, taking a 10-second call, or authenticating a device.&lt;br&gt;
Smartwatches tried to solve screen fatigue, but they just put a smaller screen on your wrist.&lt;br&gt;
I'm building &lt;strong&gt;Vyldor&lt;/strong&gt; — a screenless smart leather belt designed as a physical interface for the smartphone already in your pocket. &lt;/p&gt;

&lt;h2&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%2Fyksjvx4fhqvf2q96j4fd.png" alt="Vyldor Smart Leather Belt Concept" width="800" height="420"&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Why a Belt?
&lt;/h2&gt;

&lt;p&gt;A belt is something millions of people wear every single day. Unlike wrists or pins, your waist offers unique physical advantages for hardware design:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;It stays at your body's centre of mass.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;It maintains constant pressure against your hip bones.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It has enough surface area for a 1-metre loop antenna.&lt;/strong&gt;
Here is how Vyldor turns a traditional leather belt into a screen-free phone controller:
---
## 🎧 1. Pull-to-Talk Earpiece in the Buckle
Inside the 11.8mm CNC-machined aluminium buckle cavity sits a mono audio earpiece. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Draw to speak:&lt;/strong&gt; Pulling the earpiece out automatically opens a voice session with your phone. No wake-word ("Hey Siri") and no always-on listening microphone.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  - &lt;strong&gt;Dock to end:&lt;/strong&gt; Snapping the earpiece back into the buckle instantly closes the hovor and begins magnetic charging.
&lt;/h2&gt;

&lt;h2&gt;
  
  
  🧭 2. Haptic Hip Navigation
&lt;/h2&gt;

&lt;p&gt;Instead of looking down at a map while walking, running, or cycling:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Left Hip Tap:&lt;/strong&gt; Vibrate tap on your left hip bone means turn left.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Right Hip Tap:&lt;/strong&gt; Vibrate tap on your right hip bone means turn right.
You navigate complex city streets purely through tactile feedback against your waist.
---
## 🔑 3. Your Body is the Key (Body-Coupled Signalling)
Vyldor uses Body-Coupled Signalling (BCS) to transmit a harmless, microamp signal through your skin using soft contact pads on the inside of the strap.
When you touch your laptop trackpad, a smart door handle, or a payment terminal, your body transmits the authentication token instantly. No fingerprint scans, no passwords, no keycards.
---
## 👣 4. Your Walk is the Password (Gait Authentication)
Wrist wearables struggle with biometric tracking because arm movement creates massive noise. 
Vyldor embeds a 6-axis IMU directly at your body's centre of mass. Within &lt;strong&gt;20 steps&lt;/strong&gt;, the sensor reads your unique gait dynamics to verify that it is actually you wearing the belt.
---
## ⚡ 5. 1-Metre Woven Loop Antenna
Wrist wearables have cramped ground planes that throttle Bluetooth signal strength. 
By weaving conductive thread directly inside the 37mm full-grain leather strap, Vyldor creates a &lt;strong&gt;1-metre loop antenna&lt;/strong&gt; around your waist, dramatically improving Bluetooth stability and range.
---
## 🛠️ Complete Engineering Transparency
Vyldor is currently an early-stage parametric design concept. 
We built no physical hardware yet, there is no price, and no release date. Every visual asset on our site is rendered live from a single CAD model, and we publish what is NOT built on our status page.&lt;/li&gt;
&lt;li&gt;🌐 &lt;strong&gt;Interactive 3D Viewer &amp;amp; Site:&lt;/strong&gt; &lt;a href="https://vyldor.com" rel="noopener noreferrer"&gt;vyldor.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;⚙️ &lt;strong&gt;Feature Breakdown:&lt;/strong&gt; &lt;a href="https://vyldor.com/features" rel="noopener noreferrer"&gt;vyldor.com/features&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📑 &lt;strong&gt;Engineering Notes:&lt;/strong&gt; &lt;a href="https://vyldor.com/journal" rel="noopener noreferrer"&gt;vyldor.com/journal&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>hardware</category>
      <category>ai</category>
      <category>wearables</category>
      <category>design</category>
    </item>
    <item>
      <title>I Added AI Auto-Fix to My Breaking Change Detector — Here's How /fix Works</title>
      <dc:creator>Vyldor</dc:creator>
      <pubDate>Fri, 05 Jun 2026 13:59:55 +0000</pubDate>
      <link>https://dev.to/vyldor/i-added-ai-auto-fix-to-my-breaking-change-detector-heres-how-fix-works-1h34</link>
      <guid>https://dev.to/vyldor/i-added-ai-auto-fix-to-my-breaking-change-detector-heres-how-fix-works-1h34</guid>
      <description>&lt;p&gt;Last week I shipped a feature I've been wanting for months: type /fix in a GitHub PR comment and get a fix PR generated automatically.&lt;/p&gt;

&lt;p&gt;Context&lt;br&gt;
BreakShield CI is a GitHub App I built that detects breaking API changes in PRs using AST analysis. It catches removed fields, changed types, deleted endpoints — the stuff that slips through code review and breaks production.&lt;/p&gt;

&lt;p&gt;But detection without a fix is just a fancy error message. So I added /fix.&lt;/p&gt;

&lt;p&gt;How /fix works&lt;br&gt;
When you comment /fix on a PR that has breaking changes:&lt;/p&gt;

&lt;p&gt;BreakShield reacts with 👀 (acknowledged)&lt;br&gt;
Fetches the affected file from the PR head&lt;br&gt;
Sends it to your configured AI provider with:&lt;br&gt;
The file content&lt;br&gt;
What field/type was removed or changed&lt;br&gt;
The before/after schema&lt;br&gt;
AI generates the fixed file&lt;br&gt;
BreakShield creates a new branch, commits the fix, opens a PR&lt;br&gt;
Reacts with 🚀 (done)&lt;br&gt;
Multi-provider support&lt;br&gt;
You pick the AI:&lt;/p&gt;

&lt;p&gt;Provider    Free?   Best model&lt;br&gt;
Gemini          ✅ 2.5 Flash&lt;br&gt;
OpenAI          ❌ GPT-5.4 mini&lt;br&gt;
Claude          ❌ Haiku 4.5&lt;br&gt;
Groq            ✅ Llama 3.3 70B&lt;br&gt;
Perplexity  ❌ Sonar Pro&lt;br&gt;
Configure in the dashboard. BYOK — your key, your model, your choice.&lt;/p&gt;

&lt;p&gt;Why not just use AI for detection too?&lt;br&gt;
Because LLMs hallucinate. AST analysis doesn't.&lt;/p&gt;

&lt;p&gt;Detection needs to be precise. 92% confidence means "I found this in the syntax tree, it's definitely gone." Not "I think maybe something changed."&lt;/p&gt;

&lt;p&gt;AI is great for generating fixes. Terrible for detection where false positives erode trust.&lt;/p&gt;

&lt;p&gt;Try it&lt;br&gt;
Install: &lt;a href="https://github.com/apps/breakshield-ci" rel="noopener noreferrer"&gt;https://github.com/apps/breakshield-ci&lt;/a&gt;&lt;br&gt;
Add an API key in settings (Groq is free)&lt;br&gt;
Open a PR that removes a field from a TypeScript interface&lt;br&gt;
Wait for BreakShield's comment&lt;br&gt;
Reply with /fix&lt;br&gt;
Watch the magic&lt;br&gt;
Source: &lt;a href="https://github.com/vojtisprime11/BreakShield" rel="noopener noreferrer"&gt;https://github.com/vojtisprime11/BreakShield&lt;/a&gt;&lt;/p&gt;

</description>
      <category>github</category>
      <category>ai</category>
      <category>opensource</category>
      <category>typescript</category>
    </item>
    <item>
      <title>Free and open-source GitHub App for TypeScript teams. Detects breaking API changes in PRs using AST analysis and offers AI auto-fix with /fix command. Just shipped multi-provider support (Gemini, OpenAI, Claude, Groq). Would love feedback from anyone worki</title>
      <dc:creator>Vyldor</dc:creator>
      <pubDate>Thu, 04 Jun 2026 19:41:31 +0000</pubDate>
      <link>https://dev.to/vyldor/free-and-open-source-github-app-for-typescript-teams-detects-breaking-api-changes-in-prs-using-ast-21eg</link>
      <guid>https://dev.to/vyldor/free-and-open-source-github-app-for-typescript-teams-detects-breaking-api-changes-in-prs-using-ast-21eg</guid>
      <description>&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://dev.to/vyldor/you-shouldnt-need-a-production-incident-to-find-breaking-api-changes-4e70" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" 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%2Fobn0t5slf9xae2wkelbk.png" height="418" class="m-0" width="800"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://dev.to/vyldor/you-shouldnt-need-a-production-incident-to-find-breaking-api-changes-4e70" rel="noopener noreferrer" class="c-link"&gt;
            You Shouldn't Need a Production Incident to Find Breaking API Changes - DEV Community
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            You open Slack on Monday morning. There's a thread with 43 replies. Someone merged a PR on Friday. A...
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" 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%2F8j7kvp660rqzt99zui8e.png" width="300" height="299"&gt;
          dev.to
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
      <category>ai</category>
      <category>opensource</category>
      <category>showdev</category>
      <category>typescript</category>
    </item>
    <item>
      <title>You Shouldn't Need a Production Incident to Find Breaking API Changes</title>
      <dc:creator>Vyldor</dc:creator>
      <pubDate>Thu, 04 Jun 2026 19:39:35 +0000</pubDate>
      <link>https://dev.to/vyldor/you-shouldnt-need-a-production-incident-to-find-breaking-api-changes-4e70</link>
      <guid>https://dev.to/vyldor/you-shouldnt-need-a-production-incident-to-find-breaking-api-changes-4e70</guid>
      <description>&lt;p&gt;You open Slack on Monday morning. There's a thread with 43 replies. Someone merged a PR on Friday. A field got removed from an API response. Three services are broken. Customers are affected. Nobody caught it in review.&lt;/p&gt;

&lt;p&gt;It didn't have to happen.&lt;/p&gt;

&lt;p&gt;The Problem Nobody Talks About&lt;br&gt;
Code review catches logic bugs, style issues, missing tests. But it almost never catches API contract violations.&lt;/p&gt;

&lt;p&gt;A required field disappears from a response type&lt;br&gt;
A parameter type changes from string to number&lt;br&gt;
An endpoint gets deleted&lt;br&gt;
A new required field appears in a request body&lt;br&gt;
These are invisible in a diff. The TypeScript compiler won't warn you. Your tests pass because they mock the old contract. ESLint doesn't care.&lt;/p&gt;

&lt;p&gt;And then production cares. A lot.&lt;/p&gt;

&lt;p&gt;What If Your CI Caught It First?&lt;br&gt;
I built BreakShield CI — a GitHub App that analyzes every PR for breaking API changes.&lt;/p&gt;

&lt;p&gt;Not with an LLM. Not with vibes. With AST analysis.&lt;/p&gt;

&lt;p&gt;It parses your TypeScript code, diffs the abstract syntax tree between base and head, and flags exactly what changed, where it's used, and how dangerous it is.&lt;/p&gt;

&lt;p&gt;What It Detects&lt;br&gt;
Change type Example&lt;br&gt;
Removed field   UserResponse.email deleted&lt;br&gt;
Changed type    id: number → id: string&lt;br&gt;
Removed endpoint    GET /api/users/:id gone&lt;br&gt;
Added required field    New organizationId required in request&lt;br&gt;
Changed return type Function returns Promise instead of Promise&lt;br&gt;
Removed interface   PaymentMethod type deleted entirely&lt;br&gt;
Every finding comes with:&lt;/p&gt;

&lt;p&gt;Confidence score (80%+ = AST-verified, no guessing)&lt;br&gt;
Consumer search — which files in your repo actually use that field&lt;br&gt;
Risk level — CRITICAL / HIGH / MEDIUM / LOW / SAFE&lt;br&gt;
Before/after — what it was, what it is now&lt;br&gt;
AI Auto-Fix. In the PR.&lt;br&gt;
Detection is only half the story. You also need a fix.&lt;/p&gt;

&lt;p&gt;BreakShield CI now supports AI-generated fixes — directly from your PR.&lt;/p&gt;

&lt;p&gt;Type /fix as a comment in your PR. BreakShield:&lt;/p&gt;

&lt;p&gt;Reads the affected file&lt;br&gt;
Sends it to your AI provider with context about what broke&lt;br&gt;
Generates the fix&lt;br&gt;
Opens a new PR with the corrected code&lt;br&gt;
You review. You merge. Done.&lt;/p&gt;

&lt;p&gt;Supported Providers&lt;br&gt;
Provider    Models  Free tier?&lt;br&gt;
Google Gemini   3.5 Flash, 2.5 Pro, 2.5 Flash   ✅&lt;br&gt;
OpenAI  GPT-5.5, GPT-5.4, GPT-5.4 mini  ✅&lt;br&gt;
Anthropic   Claude Opus 4.8, Sonnet 4.6, Haiku 4.5&lt;br&gt;&lt;br&gt;
Groq    GPT-OSS 120B, Llama 3.3 70B, Qwen3 32B  ✅&lt;br&gt;
Perplexity  Sonar Deep Research, Sonar Pro  ✅&lt;br&gt;
BYOK — bring your own key. You pick the provider and model in settings.&lt;/p&gt;

&lt;p&gt;How It Works Under the Hood&lt;br&gt;
No magic. No "AI-powered detection." Here's what actually happens:&lt;/p&gt;

&lt;p&gt;PR opened/updated&lt;br&gt;
       ↓&lt;br&gt;
GitHub webhook fires&lt;br&gt;
       ↓&lt;br&gt;
Fetch changed files (base vs head)&lt;br&gt;
       ↓&lt;br&gt;
Parse both versions with ts-morph (TypeScript AST)&lt;br&gt;
       ↓&lt;br&gt;
Diff exported interfaces, types, functions, endpoints&lt;br&gt;
       ↓&lt;br&gt;
For each breaking change → search repo for consumers&lt;br&gt;
       ↓&lt;br&gt;
Calculate risk score → post PR comment + check run&lt;br&gt;
The detection is deterministic. Same code → same result. Every time.&lt;/p&gt;

&lt;p&gt;AI is only involved when you explicitly ask for a fix.&lt;/p&gt;

&lt;p&gt;What the PR Comment Looks Like&lt;br&gt;
When BreakShield finds something, you get a comment like this:&lt;/p&gt;

&lt;p&gt;🟠 HIGH — 1 breaking change · 3 files with verified usages&lt;/p&gt;

&lt;p&gt;UserResponse.name&lt;br&gt;
Change  removed field&lt;br&gt;
File&lt;br&gt;&lt;br&gt;
user.ts&lt;br&gt;
Confidence  92% · AST-verified&lt;br&gt;
Before  name: string&lt;br&gt;
💡 Auto-fix available — comment /fix src/types/user.ts to generate a fix PR.&lt;/p&gt;

&lt;p&gt;Zero Config Setup&lt;br&gt;
Install the GitHub App: github.com/apps/breakshield-ci&lt;br&gt;
Open a PR with API changes&lt;br&gt;
BreakShield analyzes automatically&lt;br&gt;
That's it. No YAML. No config files. No CI pipeline changes.&lt;/p&gt;

&lt;p&gt;For AI auto-fix, go to the dashboard and add your API key: → breakshield-ci.vercel.app&lt;/p&gt;

&lt;p&gt;Why Not Just Use TypeScript?&lt;br&gt;
TypeScript catches type errors within a project. It doesn't catch:&lt;/p&gt;

&lt;p&gt;Removing a field that external services depend on&lt;br&gt;
Changing a response type that a mobile app consumes&lt;br&gt;
Deleting an endpoint that 12 microservices call&lt;br&gt;
TypeScript sees your repo. BreakShield sees your API contract.&lt;/p&gt;

&lt;p&gt;Why Not an LLM for Detection?&lt;br&gt;
LLMs hallucinate. They miss things. They have different results on different runs.&lt;/p&gt;

&lt;p&gt;AST analysis is:&lt;/p&gt;

&lt;p&gt;Deterministic — same input, same output&lt;br&gt;
Fast — 500ms-2s per PR, not 30s&lt;br&gt;
Precise — 92-95% confidence, not "probably breaking"&lt;br&gt;
Explainable — exact file, line, usage type&lt;br&gt;
LLMs are great for generating fixes. Terrible for detection where precision matters.&lt;/p&gt;

&lt;p&gt;Try It&lt;br&gt;
→ Install: github.com/apps/breakshield-ci → Dashboard: breakshield-ci.vercel.app&lt;/p&gt;

&lt;p&gt;Open a PR. Remove a field from an interface. Watch it get caught.&lt;/p&gt;

&lt;p&gt;Then type /fix and watch it get fixed.&lt;/p&gt;

</description>
      <category>github</category>
      <category>typescript</category>
      <category>devtools</category>
      <category>api</category>
    </item>
  </channel>
</rss>
