<?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: Chauhan Pruthviraj</title>
    <description>The latest articles on DEV Community by Chauhan Pruthviraj (@death_wolf).</description>
    <link>https://dev.to/death_wolf</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%2F4003380%2Fa22f4529-9025-4b5e-a938-cdaecf0c1e78.png</url>
      <title>DEV Community: Chauhan Pruthviraj</title>
      <link>https://dev.to/death_wolf</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/death_wolf"/>
    <language>en</language>
    <item>
      <title>Dotsync – A zero-knowledge CLI to sync dotfiles and secrets in Go</title>
      <dc:creator>Chauhan Pruthviraj</dc:creator>
      <pubDate>Fri, 26 Jun 2026 06:42:45 +0000</pubDate>
      <link>https://dev.to/death_wolf/dotsync-a-zero-knowledge-cli-to-sync-dotfiles-and-secrets-in-go-49jf</link>
      <guid>https://dev.to/death_wolf/dotsync-a-zero-knowledge-cli-to-sync-dotfiles-and-secrets-in-go-49jf</guid>
      <description>&lt;p&gt;I spent 3 months building a tool that solves the most annoying part of working on a dev team.&lt;/p&gt;

&lt;p&gt;You know the drill:&lt;/p&gt;

&lt;p&gt;→ New dev joins&lt;br&gt;
→ "hey check your DMs"&lt;br&gt;
→ Someone pastes the .env in Slack&lt;br&gt;
→ That message sits there forever&lt;br&gt;
→ 6 months later someone screenshots it by accident&lt;/p&gt;

&lt;p&gt;or worse —&lt;/p&gt;

&lt;p&gt;→ git add .&lt;br&gt;
→ git commit -m "added env"&lt;br&gt;
→ git push&lt;br&gt;
→ you just leaked your prod database URL to the internet&lt;/p&gt;

&lt;p&gt;I got tired of it. So I built DotSync.&lt;/p&gt;

&lt;p&gt;───────────────────────────────────&lt;/p&gt;

&lt;p&gt;Here's what it looks like in practice:&lt;/p&gt;

&lt;p&gt;$ dotsync push&lt;br&gt;
🔒 Encrypting 10 secrets for team access...&lt;br&gt;
📤 Uploading... ✅&lt;br&gt;
  Version : v7&lt;br&gt;
  Secrets : 10 keys encrypted&lt;br&gt;
  Teammates can now run: dotsync pull&lt;/p&gt;

&lt;p&gt;That's it. New dev joins? They run dotsync pull. Secrets updated? dotsync push. Moving between your laptop and work machine? dotsync pull.&lt;/p&gt;

&lt;p&gt;───────────────────────────────────&lt;/p&gt;

&lt;p&gt;The part I actually care about — security:&lt;/p&gt;

&lt;p&gt;Everything is encrypted ON your machine before it hits the network. The server stores a blob it literally cannot read. I'm not asking you to trust my infrastructure. You don't have to.&lt;/p&gt;

&lt;p&gt;Stack if you're curious:&lt;br&gt;
• Argon2id key derivation (64MB memory cost — brute force isn't happening)&lt;br&gt;
• AES-256-GCM encryption&lt;br&gt;
• Zero-knowledge server (stores ciphertext only)&lt;br&gt;
• Single Go binary, no runtime deps&lt;/p&gt;

&lt;p&gt;───────────────────────────────────&lt;/p&gt;

&lt;p&gt;Other things it does that I use daily:&lt;/p&gt;

&lt;p&gt;dotsync diff       → shows exactly which keys changed vs remote (never shows values)&lt;br&gt;
dotsync history    → full version history, who pushed what and when&lt;br&gt;
dotsync rollback   → restore any previous version in one command&lt;br&gt;
dotsync run -- node server.js   → injects secrets as env vars, nothing written to disk&lt;br&gt;
dotsync scan       → scans your codebase for accidentally committed secrets&lt;/p&gt;

&lt;p&gt;───────────────────────────────────&lt;/p&gt;

&lt;p&gt;Free tier covers:&lt;br&gt;
• 1 project&lt;br&gt;
• 3 team members&lt;br&gt;
• 7 days history&lt;/p&gt;

&lt;p&gt;That handles most small teams completely free.&lt;/p&gt;

&lt;p&gt;───────────────────────────────────&lt;/p&gt;

&lt;p&gt;Now the part where I need your help:&lt;/p&gt;

&lt;p&gt;I'm looking for 100 engineers to actually stress test this. Not "give it a star and forget" — I mean:&lt;/p&gt;

&lt;p&gt;→ Try to break the encryption&lt;br&gt;
→ Find edge cases in the CLI&lt;br&gt;
→ Open PRs if you spot something stupid&lt;br&gt;
→ Tell me what's missing&lt;/p&gt;

&lt;p&gt;In return: Free Lifetime Premium. Every paid feature, forever. No credit card, no catch.&lt;/p&gt;

&lt;p&gt;I'm hand-picking testers so drop a comment or DM me if you're in.&lt;/p&gt;

&lt;p&gt;───────────────────────────────────&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="http://github.com/Pruthviraj36/dotsync.git" rel="noopener noreferrer"&gt;github.com/Pruthviraj36/dotsync&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Install:&lt;br&gt;
&lt;code&gt;go install github.com/Pruthviraj36/dotsync@latest&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;or just grab the binary from releases (Linux, macOS, Windows).&lt;/p&gt;

&lt;p&gt;───────────────────────────────────&lt;/p&gt;

&lt;p&gt;Built this because I was genuinely annoyed. Turns out a lot of people are too.&lt;/p&gt;

&lt;p&gt;If you've ever typed "check your DMs" to share a .env file — this is for you.&lt;/p&gt;

</description>
      <category>go</category>
      <category>opensource</category>
      <category>security</category>
      <category>terminal</category>
    </item>
  </channel>
</rss>
