<?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>Forem: CryptVault</title>
    <description>The latest articles on Forem by CryptVault (@cryptvault).</description>
    <link>https://forem.com/cryptvault</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%2F3848738%2F1bfa346d-6977-49cf-a533-8f30099fb775.png</url>
      <title>Forem: CryptVault</title>
      <link>https://forem.com/cryptvault</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/cryptvault"/>
    <language>en</language>
    <item>
      <title>I built a zero-knowledge encrypted secrets manager as a solo developer — launching next week</title>
      <dc:creator>CryptVault</dc:creator>
      <pubDate>Sun, 29 Mar 2026 06:11:25 +0000</pubDate>
      <link>https://forem.com/cryptvault/i-built-a-zero-knowledge-encrypted-secrets-manager-as-a-solo-developer-launching-next-week-ld</link>
      <guid>https://forem.com/cryptvault/i-built-a-zero-knowledge-encrypted-secrets-manager-as-a-solo-developer-launching-next-week-ld</guid>
      <description>&lt;p&gt;Hey IH! I'm Ali, a solo developer, and I just finished building &lt;strong&gt;CryptVault&lt;/strong&gt; — an end-to-end encrypted secrets manager where no one (not even me) can access your data.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why I built this
&lt;/h3&gt;

&lt;p&gt;I've been using password managers for years, but something always bothered me:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Most popular ones had data breaches (LastPass, anyone?)&lt;/li&gt;
&lt;li&gt;The "trust us, your data is safe" model felt wrong&lt;/li&gt;
&lt;li&gt;Affordable options were either too basic or not truly encrypted&lt;/li&gt;
&lt;li&gt;None of them let me control where my encrypted data is stored&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I decided to build one myself — with &lt;strong&gt;zero-knowledge architecture&lt;/strong&gt; from day one. The server never sees your plaintext data. Period.&lt;/p&gt;

&lt;h3&gt;
  
  
  The tech behind it
&lt;/h3&gt;

&lt;p&gt;This was the most fun (and challenging) part:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;RSA-4096&lt;/strong&gt; for key wrapping — each user gets a unique keypair&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AES-256-GCM&lt;/strong&gt; for encrypting actual secrets — fast and authenticated&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Argon2id&lt;/strong&gt; for key derivation from your Master Password — resistant to GPU/ASIC attacks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Two-layer authentication&lt;/strong&gt;: Account login (email + password → JWT) and Vault unlock (Master Password → decrypts your private key in memory)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your Master Password never leaves your device. It derives the key that decrypts your RSA private key, which then decrypts your secrets. If you forget it, even I can't help you — that's the point.&lt;/p&gt;

&lt;p&gt;For recovery, I implemented a &lt;strong&gt;13-word BIP-39 mnemonic&lt;/strong&gt; (similar to crypto wallets). You get it once when you create your vault.&lt;/p&gt;

&lt;h3&gt;
  
  
  What it does
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Store passwords, API keys, SSH keys, notes, cards, emails&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Built-in TOTP Authenticator&lt;/strong&gt; — no separate 2FA app needed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Password Health Analysis&lt;/strong&gt; — flags weak, reused, and aging passwords&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dark Web Monitoring&lt;/strong&gt; — alerts when your credentials appear in breaches&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bring-Your-Own-Storage (BYOS)&lt;/strong&gt; — connect your Google Drive for encrypted backups you control&lt;/li&gt;
&lt;li&gt;Full &lt;strong&gt;English + Arabic&lt;/strong&gt; support with RTL layout&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend&lt;/strong&gt;: React 19 + Vite 7 + Tailwind CSS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend&lt;/strong&gt;: Express 5 + Prisma 7 + PostgreSQL&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment&lt;/strong&gt;: Docker on a VPS, Cloudflare for DNS/CDN&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Payments&lt;/strong&gt;: Stripe Billing&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Business model
&lt;/h3&gt;

&lt;p&gt;Simple and transparent:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Free&lt;/strong&gt;: 20 secrets, 5 categories, built-in TOTP&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PRO&lt;/strong&gt;: $1.99/mo — unlimited secrets, dark web monitoring, BYOS, export/import&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I wanted PRO to be affordable enough that it's a no-brainer if you use the free tier and want more.&lt;/p&gt;

&lt;h3&gt;
  
  
  Challenges I faced
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Encryption complexity&lt;/strong&gt;: Getting RSA + AES + Argon2id to work together seamlessly across client and server took weeks of iteration. Key management is hard.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Zero-knowledge trade-offs&lt;/strong&gt;: When you can't read user data, you can't offer "forgot password" recovery the normal way. The BIP-39 recovery key was my solution.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Solo developer bandwidth&lt;/strong&gt;: Building frontend, backend, encryption layer, admin panel, payment integration, and landing page alone is... a lot. But also incredibly rewarding.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;Launching on &lt;strong&gt;Product Hunt on March 31&lt;/strong&gt; (Tuesday). After that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Browser extension for auto-fill&lt;/li&gt;
&lt;li&gt;Mobile app&lt;/li&gt;
&lt;li&gt;More BYOS providers (Dropbox, OneDrive)&lt;/li&gt;
&lt;li&gt;Team/organization vaults&lt;/li&gt;
&lt;li&gt;Self-hosted option&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Try it out
&lt;/h3&gt;

&lt;p&gt;The app is live at &lt;a href="https://cryptvault.app" rel="noopener noreferrer"&gt;cryptvault.app&lt;/a&gt;. Free tier available — no credit card required.&lt;/p&gt;

&lt;p&gt;I'd love to hear your thoughts, feedback, or questions about the architecture. Happy to go deep on the encryption design if anyone's curious!&lt;/p&gt;

</description>
      <category>security</category>
      <category>webdev</category>
      <category>encryption</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
