<?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: Vidit Jain</title>
    <description>The latest articles on DEV Community by Vidit Jain (@vidit_jain).</description>
    <link>https://dev.to/vidit_jain</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3631007%2F73e42206-5136-40ed-b342-614b484339dd.png</url>
      <title>DEV Community: Vidit Jain</title>
      <link>https://dev.to/vidit_jain</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vidit_jain"/>
    <language>en</language>
    <item>
      <title>Why should messaging require your personal identity?</title>
      <dc:creator>Vidit Jain</dc:creator>
      <pubDate>Tue, 02 Dec 2025 10:23:33 +0000</pubDate>
      <link>https://dev.to/vidit_jain/why-should-messaging-require-your-personal-identity-71l</link>
      <guid>https://dev.to/vidit_jain/why-should-messaging-require-your-personal-identity-71l</guid>
      <description>&lt;p&gt;Why should messaging require your personal identity?&lt;/p&gt;

&lt;p&gt;This question led us to build Eclipse - an anonymous encrypted messenger where even we can't read your messages.&lt;/p&gt;

&lt;p&gt;The challenge? Implementing military-grade encryption (Signal Protocol) with onion routing and P2P connections. Normally a months-long project for a two-person team.&lt;/p&gt;

&lt;p&gt;What changed everything:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Wrote specs → Kiro understood the architecture&lt;/li&gt;
&lt;li&gt;Set privacy guidelines → Every suggestion was zero-knowledge compliant&lt;/li&gt;
&lt;li&gt;Created hooks → Security checks automated, vulnerabilities caught early&lt;/li&gt;
&lt;li&gt;Vibe coded complex features → Signal Protocol in 3 days, not 3 weeks&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The most impressive moment? Kiro generated a complete Double Ratchet encryption algorithm that passed all Signal Protocol test vectors. First try.&lt;br&gt;
Two developers. One AI partner. Under 2 weeks from idea to deployment. That's the Kiro difference.&lt;/p&gt;

&lt;p&gt;Privacy is a human right, not a premium feature. Now anyone can build tools to protect it.&lt;/p&gt;

&lt;p&gt;Try it out: &lt;a href="https://lnkd.in/dwj5d4GX" rel="noopener noreferrer"&gt;https://lnkd.in/dwj5d4GX&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Open source: &lt;a href="https://lnkd.in/dVcvzkbz" rel="noopener noreferrer"&gt;https://lnkd.in/dVcvzkbz&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Built with Kiro by Het Patel &amp;amp; Vidit Jain&lt;/p&gt;

</description>
      <category>kiro</category>
      <category>kiroween</category>
      <category>privacy</category>
      <category>ai</category>
    </item>
    <item>
      <title>Building Spectre: The Media Player That Haunts You Back 👻🎭</title>
      <dc:creator>Vidit Jain</dc:creator>
      <pubDate>Fri, 28 Nov 2025 14:27:44 +0000</pubDate>
      <link>https://dev.to/vidit_jain/building-spectre-the-media-player-that-haunts-you-back-4jca</link>
      <guid>https://dev.to/vidit_jain/building-spectre-the-media-player-that-haunts-you-back-4jca</guid>
      <description>&lt;p&gt;&lt;strong&gt;Project:&lt;/strong&gt; Spectre&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Event:&lt;/strong&gt; Kiroween Hackathon&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Tech Stack:&lt;/strong&gt; VLC, Lua Scripting, Unsplash API, Freesound API&lt;/p&gt;


&lt;h2&gt;
  
  
  The Concept: The "Uncanny Valley" of Software
&lt;/h2&gt;

&lt;p&gt;We all know VLC Media Player. It's the reliable, orange-coned workhorse of video playback. It's safe. It's boring. It plays everything.&lt;/p&gt;

&lt;p&gt;For the Kiroween Hackathon, I wanted to subvert that safety. I didn't want to build a "spooky" app from scratch that users would expect to be scary. I wanted to take something &lt;strong&gt;familiar&lt;/strong&gt; and make it... &lt;strong&gt;wrong&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Enter &lt;strong&gt;Spectre&lt;/strong&gt;. It looks like VLC. It functions like VLC. But if you watch closely, the buttons are slightly rusted. The play icon is 5 pixels off-center. And every once in a while, it &lt;strong&gt;screams at you&lt;/strong&gt;.&lt;/p&gt;


&lt;h2&gt;
  
  
  The Design: Intentional Corruption
&lt;/h2&gt;

&lt;p&gt;I compiled VLC 3.0.21 from source with a custom horror skin baked in. The design philosophy: &lt;strong&gt;"Digital Decay."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Key corruption elements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Play button offset by +5px (subtle, but triggers "something is broken" feeling)&lt;/li&gt;
&lt;li&gt;Volume slider 3px narrower than its background&lt;/li&gt;
&lt;li&gt;Hidden jumpscare overlay panel&lt;/li&gt;
&lt;li&gt;Blood splatter effects on custom button graphics&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  Under the Hood: The "Haunt Engine" ⚙️
&lt;/h2&gt;

&lt;p&gt;Rather than rewriting VLC's C++ core, I leveraged &lt;strong&gt;Lua Extension capability&lt;/strong&gt; to inject horror directly into the runtime.&lt;/p&gt;
&lt;h3&gt;
  
  
  How It Works
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;The Loop:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight lua"&gt;&lt;code&gt;&lt;span class="kd"&gt;local&lt;/span&gt; &lt;span class="n"&gt;CHECK_INTERVAL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;30000000&lt;/span&gt;  &lt;span class="c1"&gt;-- 30 seconds&lt;/span&gt;
&lt;span class="kd"&gt;local&lt;/span&gt; &lt;span class="n"&gt;TRIGGER_CHANCE&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;         &lt;span class="c1"&gt;-- 5% chance&lt;/span&gt;

&lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;trigger_event&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;math.random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="n"&gt;TRIGGER_CHANCE&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
       &lt;span class="n"&gt;fetch_and_scare&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;The Flow:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;VLC launches → Auto-loads corrupted skin and Lua extension&lt;/li&gt;
&lt;li&gt;Timer ticks every 30 seconds during playback&lt;/li&gt;
&lt;li&gt;5% chance to trigger the haunt&lt;/li&gt;
&lt;li&gt;Fetches horror assets from Unsplash ("scary face," "skull," "ghost") and Freesound ("scream")&lt;/li&gt;
&lt;li&gt;Caches to &lt;code&gt;%TEMP%\spectre_cache\&lt;/code&gt; for instant display&lt;/li&gt;
&lt;li&gt;Overlays image and blasts audio through hidden skin panel&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Challenges &amp;amp; Solutions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Build Complexity:&lt;/strong&gt; Compiling VLC from source on Windows takes 2-4 hours with MSYS2. Created automated scripts to ensure reproducible builds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Async API Calls:&lt;/strong&gt; VLC's Lua API blocks the UI during HTTP requests. Solved with local caching—downloads happen in background, only display when ready.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Auto-Loading:&lt;/strong&gt; Built a two-stage Lua system (&lt;code&gt;spectre_loader.lua&lt;/code&gt; → &lt;code&gt;spectre.lua&lt;/code&gt;) that activates automatically on startup.&lt;/p&gt;




&lt;h2&gt;
  
  
  Try It (If You Dare)
&lt;/h2&gt;

&lt;p&gt;This project was a blast to build. It taught me that sometimes the scariest things aren't the ones that jump out at you immediately, but the ones that look familiar... until they aren't.&lt;/p&gt;

&lt;p&gt;⚠️ &lt;strong&gt;WARNING:&lt;/strong&gt; This mod is functional. It will scream at you. It will flash images. Do not use this if you have a heart condition or anxiety.&lt;/p&gt;

&lt;p&gt;Check out the code and grab the release here: &lt;strong&gt;&lt;a href="https://github.com/VIDITJAIN7/Spectre" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Happy Kiroween! 🎃💀&lt;/p&gt;




</description>
      <category>kiro</category>
      <category>kiroween</category>
      <category>vlc</category>
      <category>costumecontest</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Vidit Jain</dc:creator>
      <pubDate>Fri, 28 Nov 2025 14:25:50 +0000</pubDate>
      <link>https://dev.to/vidit_jain/-1lm3</link>
      <guid>https://dev.to/vidit_jain/-1lm3</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/vidit_jain/building-spectre-the-media-player-that-haunts-you-back-hco" 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.amazonaws.com%2Fuploads%2Farticles%2Fd12t0c8tb997vxyx2qq5.png" height="400" 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/vidit_jain/building-spectre-the-media-player-that-haunts-you-back-hco" rel="noopener noreferrer" class="c-link"&gt;
            Building Spectre: The Media Player That Haunts You Back 👻🎭 - DEV Community
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            Project: Spectre Event: Kiroween Hackathon Tech Stack: VLC, Lua Scripting, Unsplash API, Freesound...
          &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>kiro</category>
      <category>kiroween</category>
      <category>vlc</category>
      <category>costumecontest</category>
    </item>
    <item>
      <title>Building Spectre: The Media Player That Haunts You Back 👻🎭</title>
      <dc:creator>Vidit Jain</dc:creator>
      <pubDate>Fri, 28 Nov 2025 14:23:00 +0000</pubDate>
      <link>https://dev.to/vidit_jain/building-spectre-the-media-player-that-haunts-you-back-hco</link>
      <guid>https://dev.to/vidit_jain/building-spectre-the-media-player-that-haunts-you-back-hco</guid>
      <description>&lt;p&gt;&lt;strong&gt;Project:&lt;/strong&gt; Spectre&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Event:&lt;/strong&gt; Kiroween Hackathon&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Tech Stack:&lt;/strong&gt; VLC, Lua Scripting, Unsplash API, Freesound API&lt;/p&gt;


&lt;h2&gt;
  
  
  The Concept: The "Uncanny Valley" of Software
&lt;/h2&gt;

&lt;p&gt;We all know VLC Media Player. It's the reliable, orange-coned workhorse of video playback. It's safe. It's boring. It plays everything.&lt;/p&gt;

&lt;p&gt;For the Kiroween Hackathon, I wanted to subvert that safety. I didn't want to build a "spooky" app from scratch that users would expect to be scary. I wanted to take something &lt;strong&gt;familiar&lt;/strong&gt; and make it... &lt;strong&gt;wrong&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Enter &lt;strong&gt;Spectre&lt;/strong&gt;. It looks like VLC. It functions like VLC. But if you watch closely, the buttons are slightly rusted. The play icon is 5 pixels off-center. And every once in a while, it &lt;strong&gt;screams at you&lt;/strong&gt;.&lt;/p&gt;


&lt;h2&gt;
  
  
  The Design: Intentional Corruption
&lt;/h2&gt;

&lt;p&gt;I compiled VLC 3.0.21 from source with a custom horror skin baked in. The design philosophy: &lt;strong&gt;"Digital Decay."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Key corruption elements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Play button offset by +5px (subtle, but triggers "something is broken" feeling)&lt;/li&gt;
&lt;li&gt;Volume slider 3px narrower than its background&lt;/li&gt;
&lt;li&gt;Hidden jumpscare overlay panel&lt;/li&gt;
&lt;li&gt;Blood splatter effects on custom button graphics&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  Under the Hood: The "Haunt Engine" ⚙️
&lt;/h2&gt;

&lt;p&gt;Rather than rewriting VLC's C++ core, I leveraged &lt;strong&gt;Lua Extension capability&lt;/strong&gt; to inject horror directly into the runtime.&lt;/p&gt;
&lt;h3&gt;
  
  
  How It Works
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;The Loop:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight lua"&gt;&lt;code&gt;&lt;span class="kd"&gt;local&lt;/span&gt; &lt;span class="n"&gt;CHECK_INTERVAL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;30000000&lt;/span&gt;  &lt;span class="c1"&gt;-- 30 seconds&lt;/span&gt;
&lt;span class="kd"&gt;local&lt;/span&gt; &lt;span class="n"&gt;TRIGGER_CHANCE&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;         &lt;span class="c1"&gt;-- 5% chance&lt;/span&gt;

&lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;trigger_event&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;math.random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="n"&gt;TRIGGER_CHANCE&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
       &lt;span class="n"&gt;fetch_and_scare&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;The Flow:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;VLC launches → Auto-loads corrupted skin and Lua extension&lt;/li&gt;
&lt;li&gt;Timer ticks every 30 seconds during playback&lt;/li&gt;
&lt;li&gt;5% chance to trigger the haunt&lt;/li&gt;
&lt;li&gt;Fetches horror assets from Unsplash ("scary face," "skull," "ghost") and Freesound ("scream")&lt;/li&gt;
&lt;li&gt;Caches to &lt;code&gt;%TEMP%\spectre_cache\&lt;/code&gt; for instant display&lt;/li&gt;
&lt;li&gt;Overlays image and blasts audio through hidden skin panel&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Challenges &amp;amp; Solutions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Build Complexity:&lt;/strong&gt; Compiling VLC from source on Windows takes 2-4 hours with MSYS2. Created automated scripts to ensure reproducible builds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Async API Calls:&lt;/strong&gt; VLC's Lua API blocks the UI during HTTP requests. Solved with local caching—downloads happen in background, only display when ready.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Auto-Loading:&lt;/strong&gt; Built a two-stage Lua system (&lt;code&gt;spectre_loader.lua&lt;/code&gt; → &lt;code&gt;spectre.lua&lt;/code&gt;) that activates automatically on startup.&lt;/p&gt;




&lt;h2&gt;
  
  
  Try It (If You Dare)
&lt;/h2&gt;

&lt;p&gt;This project was a blast to build. It taught me that sometimes the scariest things aren't the ones that jump out at you immediately, but the ones that look familiar... until they aren't.&lt;/p&gt;

&lt;p&gt;⚠️ &lt;strong&gt;WARNING:&lt;/strong&gt; This mod is functional. It will scream at you. It will flash images. Do not use this if you have a heart condition or anxiety.&lt;/p&gt;

&lt;p&gt;Check out the code and grab the release here: &lt;strong&gt;&lt;a href="https://github.com/VIDITJAIN7/Spectre" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Happy Kiroween! 🎃💀&lt;/p&gt;




</description>
      <category>kiro</category>
      <category>kiroween</category>
      <category>vlc</category>
      <category>costumecontest</category>
    </item>
  </channel>
</rss>
