<?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: Elmore</title>
    <description>The latest articles on DEV Community by Elmore (@_abb39549bd36adc5998).</description>
    <link>https://dev.to/_abb39549bd36adc5998</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%2F3822576%2Fa9763d34-e742-4f3c-8ba8-d5173a442f56.png</url>
      <title>DEV Community: Elmore</title>
      <link>https://dev.to/_abb39549bd36adc5998</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/_abb39549bd36adc5998"/>
    <language>en</language>
    <item>
      <title>This note app is E2EE, syncs everywhere,took me months to finish</title>
      <dc:creator>Elmore</dc:creator>
      <pubDate>Fri, 13 Mar 2026 15:17:37 +0000</pubDate>
      <link>https://dev.to/_abb39549bd36adc5998/i-spent-months-building-an-e2ee-note-app-with-pocketbase-and-vanilla-js-28b7</link>
      <guid>https://dev.to/_abb39549bd36adc5998/i-spent-months-building-an-e2ee-note-app-with-pocketbase-and-vanilla-js-28b7</guid>
      <description>&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.amazonaws.com%2Fuploads%2Farticles%2Fzopt8873xs23zarx4soi.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.amazonaws.com%2Fuploads%2Farticles%2Fzopt8873xs23zarx4soi.png" alt=" " width="800" height="386"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Backend: PocketBase. It’s a single binary that handles Auth, Database, and File storage.&lt;/p&gt;

&lt;p&gt;Frontend: 100% Vanilla JavaScript. I wanted to keep the bundle size tiny&lt;/p&gt;

&lt;p&gt;How the Encryption Works&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Key Derivation: I use PBKDF2 to derive a master key from the user's password.

Encryption: Notes are encrypted in the browser using AES-GCM 256-bit.

Zero-Knowledge: The PocketBase backend never sees the password or the decrypted notes. Everything is stored as an encrypted blob.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Features:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Dual Editor Mode: Fast Plain Text or a "Super Editor" built on Tiptap.

Deep Search: The app decrypts notes locally in batches to allow for full-text search across the encrypted vault.

Version History: Automatic snapshots for every note.

Encrypted Export: can export your entire database as a secure html file.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;I’d love to get your thoughts on the UI or the security implementation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.tourl"&gt;veronote.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>showdev</category>
      <category>security</category>
    </item>
  </channel>
</rss>
