<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>NT² Blog</title>
    <link>https://blog.nt2.me/</link>
    <atom:link href="https://blog.nt2.me/feed.xml" rel="self" type="application/rss+xml" />
    <description>Marketing stories about receiving, storing, and sharing sensitive assets with NT2 Vault (NT²).</description>
    <language>en</language>
    <lastBuildDate>Sat, 03 Oct 2026 00:00:00 GMT</lastBuildDate>
    <item>
      <title>Vault profile is section KV, not one mega-row</title>
      <link>https://blog.nt2.me/vault-meta-as-section-kv</link>
      <guid isPermaLink="true">https://blog.nt2.me/vault-meta-as-section-kv</guid>
      <pubDate>Sat, 03 Oct 2026 00:00:00 GMT</pubDate>
      <description>Salt, Key DID public material, sync cursors, and onboarding prefs are not one fat SQL row. They live as named vault profile sections—so backup, sync, and unlock can each touch only what they need.</description>
      <author>NT²</author>
      <category>architecture</category>
      <category>sqlite</category>
      <category>vault-meta</category>
      <category>local-first</category>
      <category>backup</category>
      <category>sync</category>
      <category>zero-knowledge</category>
      <category>pwa</category>
    </item>
    <item>
      <title>Birth certificate and insurance</title>
      <link>https://blog.nt2.me/birth-certificate-and-insurance</link>
      <guid isPermaLink="true">https://blog.nt2.me/birth-certificate-and-insurance</guid>
      <pubDate>Fri, 02 Oct 2026 00:00:00 GMT</pubDate>
      <description>A new baby brings joy, exhaustion, and an unexpected amount of paperwork.</description>
      <author>NT²</author>
      <category>store</category>
      <category>family</category>
      <category>document</category>
    </item>
    <item>
      <title>Schema v60 and incremental migration</title>
      <link>https://blog.nt2.me/incremental-vault-schema-migration</link>
      <guid isPermaLink="true">https://blog.nt2.me/incremental-vault-schema-migration</guid>
      <pubDate>Wed, 30 Sep 2026 00:00:00 GMT</pubDate>
      <description>A local vault is a real SQLite database on your device. When the product ships schema v60, launch-era vaults must upgrade in place—not force a wipe because the CREATE statement changed in the source tree.</description>
      <author>NT²</author>
      <category>architecture</category>
      <category>sqlite</category>
      <category>schema-migration</category>
      <category>local-first</category>
      <category>opfs</category>
      <category>pwa</category>
      <category>data-durability</category>
    </item>
    <item>
      <title>Tax season: the accountant asks for documents</title>
      <link>https://blog.nt2.me/accountant-asks-for-documents</link>
      <guid isPermaLink="true">https://blog.nt2.me/accountant-asks-for-documents</guid>
      <pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate>
      <description>Every year, the same request arrives: bank statement, insurance proof, ID, receipts, and the document you swear you saved last April.</description>
      <author>NT²</author>
      <category>share</category>
      <category>document</category>
      <category>finance</category>
    </item>
    <item>
      <title>Wrong password must fail closed</title>
      <link>https://blog.nt2.me/password-verifier-fail-closed</link>
      <guid isPermaLink="true">https://blog.nt2.me/password-verifier-fail-closed</guid>
      <pubDate>Sat, 26 Sep 2026 00:00:00 GMT</pubDate>
      <description>Unlock is not a best-effort decrypt of everything you own. NT² checks a small local verifier first. Wrong password fails closed: the vault stays locked, and the UI stays honest.</description>
      <author>NT²</author>
      <category>architecture</category>
      <category>crypto</category>
      <category>security</category>
      <category>local-first</category>
      <category>zero-knowledge</category>
      <category>web-crypto</category>
      <category>aes-gcm</category>
      <category>unlock</category>
    </item>
    <item>
      <title>Moving abroad means a new admin stack</title>
      <link>https://blog.nt2.me/moving-abroad-admin-stack</link>
      <guid isPermaLink="true">https://blog.nt2.me/moving-abroad-admin-stack</guid>
      <pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate>
      <description>A new country comes with a new set of numbers: visa, residence card, bank account, tax ID, insurance, landlord forms, and appointment PDFs.</description>
      <author>NT²</author>
      <category>store</category>
      <category>travel</category>
      <category>document</category>
    </item>
    <item>
      <title>CBF is how structured fields leave RAM</title>
      <link>https://blog.nt2.me/cbf-payload-blobs-at-rest</link>
      <guid isPermaLink="true">https://blog.nt2.me/cbf-payload-blobs-at-rest</guid>
      <pubDate>Wed, 23 Sep 2026 00:00:00 GMT</pubDate>
      <description>A credential is a map of fields while you edit it. The moment those fields must survive a lock, a restart, or a replica, they need a portable ciphertext shape—not a JSON dump waiting for the next reader.</description>
      <author>NT²</author>
      <category>cryptography</category>
      <category>aes-gcm</category>
      <category>cbf</category>
      <category>local-first</category>
      <category>zero-knowledge</category>
      <category>envelope-encryption</category>
      <category>security</category>
    </item>
    <item>
      <title>Hardware wallet setup day</title>
      <link>https://blog.nt2.me/hardware-wallet-setup-day</link>
      <guid isPermaLink="true">https://blog.nt2.me/hardware-wallet-setup-day</guid>
      <pubDate>Tue, 22 Sep 2026 00:00:00 GMT</pubDate>
      <description>You bought the hardware wallet for safety. Setup day is when that safety either becomes a habit or turns into another note you hope you never lose.</description>
      <author>NT²</author>
      <category>store</category>
      <category>crypto</category>
    </item>
    <item>
      <title>Auto-lock is a memory hygiene problem</title>
      <link>https://blog.nt2.me/crypto-keys-must-not-survive-refresh</link>
      <guid isPermaLink="true">https://blog.nt2.me/crypto-keys-must-not-survive-refresh</guid>
      <pubDate>Sat, 19 Sep 2026 00:00:00 GMT</pubDate>
      <description>Encryption at rest is incomplete if the decrypted key handle outlives the unlocked session. NT² treats auto-lock as memory hygiene: non-extractable CryptoKeys, in-memory only, cleared on idle, refresh, and tab close.</description>
      <author>NT²</author>
      <category>web-crypto</category>
      <category>security</category>
      <category>crypto</category>
      <category>session</category>
      <category>auto-lock</category>
      <category>local-first</category>
      <category>pwa</category>
      <category>zero-knowledge</category>
    </item>
    <item>
      <title>E2E chat is not a vault</title>
      <link>https://blog.nt2.me/e2e-chat-is-not-a-vault</link>
      <guid isPermaLink="true">https://blog.nt2.me/e2e-chat-is-not-a-vault</guid>
      <pubDate>Fri, 18 Sep 2026 00:00:00 GMT</pubDate>
      <description>Signal can protect a message on the way to someone else. It does not turn the thread into structured storage.</description>
      <author>NT²</author>
      <category>share</category>
      <category>privacy</category>
      <category>comparison</category>
    </item>
    <item>
      <title>SQLite in a Web Worker is not optional</title>
      <link>https://blog.nt2.me/sqlite-in-a-web-worker</link>
      <guid isPermaLink="true">https://blog.nt2.me/sqlite-in-a-web-worker</guid>
      <pubDate>Wed, 16 Sep 2026 00:00:00 GMT</pubDate>
      <description>A local-first vault needs a real relational engine on device. Putting that engine on the UI thread makes every page query compete with paint and input. NT² Vault runs SQLite in a Web Worker, behind typed messages and a single lock chain, so the list can stay responsive while the database stays honest.</description>
      <author>NT²</author>
      <category>web-worker</category>
      <category>sqlite</category>
      <category>wasm</category>
      <category>wa-sqlite</category>
      <category>opfs</category>
      <category>local-first</category>
      <category>pwa</category>
      <category>concurrency</category>
    </item>
    <item>
      <title>Already local-first, missing structure</title>
      <link>https://blog.nt2.me/already-local-first-missing-structure</link>
      <guid isPermaLink="true">https://blog.nt2.me/already-local-first-missing-structure</guid>
      <pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate>
      <description>If you already keep secrets in a local database, you may not need convincing about the cloud. You may need better structure.</description>
      <author>NT²</author>
      <category>migration</category>
      <category>store</category>
      <category>local-first</category>
    </item>
    <item>
      <title>Selective SSI — not a general DIDComm wallet</title>
      <link>https://blog.nt2.me/selective-ssi-not-a-did-wallet</link>
      <guid isPermaLink="true">https://blog.nt2.me/selective-ssi-not-a-did-wallet</guid>
      <pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate>
      <description>Self-sovereign identity is useful when you take the parts that fit a zero-knowledge vault—and refuse the parts that turn the product into a general DID wallet.</description>
      <author>NT²</author>
      <category>identity</category>
      <category>did</category>
      <category>share</category>
      <category>architecture</category>
      <category>privacy</category>
      <category>zero-knowledge</category>
      <category>security</category>
      <category>cryptography</category>
    </item>
    <item>
      <title>1Password holds logins; where do mnemonics go?</title>
      <link>https://blog.nt2.me/where-do-mnemonics-go</link>
      <guid isPermaLink="true">https://blog.nt2.me/where-do-mnemonics-go</guid>
      <pubDate>Fri, 11 Sep 2026 00:00:00 GMT</pubDate>
      <description>A seed phrase does not have a login form. That small fact explains why some assets need a different kind of vault.</description>
      <author>NT²</author>
      <category>migration</category>
      <category>crypto</category>
      <category>store</category>
    </item>
    <item>
      <title>Relay indexes ciphertext; Inbox stays local</title>
      <link>https://blog.nt2.me/blind-share-relay-local-inbox</link>
      <guid isPermaLink="true">https://blog.nt2.me/blind-share-relay-local-inbox</guid>
      <pubDate>Wed, 09 Sep 2026 00:00:00 GMT</pubDate>
      <description>A cloud can help deliver sealed packages without becoming the place where pending shares live as readable mail. Relay indexes ciphertext. Inbox stays on the device.</description>
      <author>NT²</author>
      <category>share</category>
      <category>inbox</category>
      <category>architecture</category>
      <category>privacy</category>
      <category>zero-knowledge</category>
      <category>edge</category>
      <category>local-first</category>
    </item>
    <item>
      <title>I outgrew Apple Notes</title>
      <link>https://blog.nt2.me/outgrew-apple-notes</link>
      <guid isPermaLink="true">https://blog.nt2.me/outgrew-apple-notes</guid>
      <pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate>
      <description>Apple Notes was perfect for grocery lists, travel ideas, and quick reminders. Then it became the place for passport numbers, seed phrases, and bank details.</description>
      <author>NT²</author>
      <category>migration</category>
      <category>store</category>
      <category>privacy</category>
    </item>
    <item>
      <title>Share passphrase ≠ master password</title>
      <link>https://blog.nt2.me/share-passphrase-is-not-master-password</link>
      <guid isPermaLink="true">https://blog.nt2.me/share-passphrase-is-not-master-password</guid>
      <pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate>
      <description>A share that opens with the same secret that unlocks the vault is not a handoff. It is a remote unlock of everything. NT² keeps those boundaries apart.</description>
      <author>NT²</author>
      <category>share</category>
      <category>cryptography</category>
      <category>security</category>
      <category>privacy</category>
      <category>zero-knowledge</category>
      <category>aes-gcm</category>
      <category>identity</category>
    </item>
    <item>
      <title>Your data, your jurisdiction</title>
      <link>https://blog.nt2.me/your-data-your-jurisdiction</link>
      <guid isPermaLink="true">https://blog.nt2.me/your-data-your-jurisdiction</guid>
      <pubDate>Fri, 04 Sep 2026 00:00:00 GMT</pubDate>
      <description>Where data lives shapes who can touch it, process it, subpoena it, lose it, or monetize it.</description>
      <author>NT²</author>
      <category>trust</category>
      <category>privacy</category>
      <category>local-first</category>
    </item>
    <item>
      <title>Challenge–response, not bearer email</title>
      <link>https://blog.nt2.me/key-did-challenge-response-auth</link>
      <guid isPermaLink="true">https://blog.nt2.me/key-did-challenge-response-auth</guid>
      <pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate>
      <description>Cloud services often treat an email inbox as the root of an account. An encrypted vault needs a different proof: control of a signing key, shown by answering a one-time challenge.</description>
      <author>NT²</author>
      <category>authentication</category>
      <category>identity</category>
      <category>cryptography</category>
      <category>did</category>
      <category>security</category>
      <category>privacy</category>
      <category>cloud</category>
      <category>zero-knowledge</category>
    </item>
    <item>
      <title>Escape hatch, not lock-in</title>
      <link>https://blog.nt2.me/escape-hatch-not-lock-in</link>
      <guid isPermaLink="true">https://blog.nt2.me/escape-hatch-not-lock-in</guid>
      <pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate>
      <description>A vault that protects your data should not trap your data. Backup and export are part of the trust model, not an afterthought.</description>
      <author>NT²</author>
      <category>trust</category>
      <category>backup</category>
      <category>migration</category>
    </item>
    <item>
      <title>One unlocked vault per tab — by design</title>
      <link>https://blog.nt2.me/single-writer-multi-tab-vault</link>
      <guid isPermaLink="true">https://blog.nt2.me/single-writer-multi-tab-vault</guid>
      <pubDate>Sat, 29 Aug 2026 00:00:00 GMT</pubDate>
      <description>Opening the same vault in two browser tabs is normal. Letting both tabs write the same on-device SQLite file is not. NT² Vault elects one Writer and keeps every other unlocked tab as a follower.</description>
      <author>NT²</author>
      <category>architecture</category>
      <category>multi-tab</category>
      <category>local-first</category>
      <category>pwa</category>
      <category>sqlite</category>
      <category>broadcastchannel</category>
      <category>web-locks</category>
      <category>concurrency</category>
    </item>
    <item>
      <title>No analytics on the marketing site</title>
      <link>https://blog.nt2.me/no-analytics-on-the-marketing-site</link>
      <guid isPermaLink="true">https://blog.nt2.me/no-analytics-on-the-marketing-site</guid>
      <pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate>
      <description>A privacy product should not ask you to accept tracking just to read its privacy promise.</description>
      <author>NT²</author>
      <category>trust</category>
      <category>privacy</category>
      <category>marketing</category>
    </item>
    <item>
      <title>Metadata in SQLite, ciphertext in BlobStore</title>
      <link>https://blog.nt2.me/attachment-ciphertext-outside-sqlite</link>
      <guid isPermaLink="true">https://blog.nt2.me/attachment-ciphertext-outside-sqlite</guid>
      <pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate>
      <description>A vault needs to know which files belong to which items, how large they are, and how to unwrap their keys. It does not need those encrypted bytes sitting inside the relational database that answers those questions.</description>
      <author>NT²</author>
      <category>attachments</category>
      <category>sqlite</category>
      <category>blobstore</category>
      <category>opfs</category>
      <category>envelope-encryption</category>
      <category>local-first</category>
      <category>aes-gcm</category>
      <category>chunking</category>
    </item>
    <item>
      <title>Structured security under three dollars</title>
      <link>https://blog.nt2.me/structured-security-under-three-dollars</link>
      <guid isPermaLink="true">https://blog.nt2.me/structured-security-under-three-dollars</guid>
      <pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate>
      <description>A privacy tool for everyday households cannot price itself like enterprise software and still claim to be for everyone.</description>
      <author>NT²</author>
      <category>trust</category>
      <category>pricing</category>
      <category>product</category>
    </item>
    <item>
      <title>FTS5 for titles; table scan when filters win</title>
      <link>https://blog.nt2.me/fts5-vs-table-scan-in-the-vault</link>
      <guid isPermaLink="true">https://blog.nt2.me/fts5-vs-table-scan-in-the-vault</guid>
      <pubDate>Sat, 22 Aug 2026 00:00:00 GMT</pubDate>
      <description>Local search is not one query shape. Free-text wants a full-text index on titles and search text. Category, trash, archive, and similar filters want ordinary table predicates. The product switches strategy so the UI never has to ship the whole vault into memory to feel searchable.</description>
      <author>NT²</author>
      <category>architecture</category>
      <category>local-first</category>
      <category>sqlite</category>
      <category>fts5</category>
      <category>search</category>
      <category>performance</category>
      <category>pwa</category>
    </item>
    <item>
      <title>Offline by default is not offline-only</title>
      <link>https://blog.nt2.me/offline-by-default-not-offline-only</link>
      <guid isPermaLink="true">https://blog.nt2.me/offline-by-default-not-offline-only</guid>
      <pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate>
      <description>A vault can work offline and still offer sync. The difference is whether the cloud becomes the owner of the data or just a blind carrier.</description>
      <author>NT²</author>
      <category>trust</category>
      <category>sync</category>
      <category>privacy</category>
    </item>
    <item>
      <title>Never load the whole vault into Svelte state</title>
      <link>https://blog.nt2.me/paged-list-not-full-table-load</link>
      <guid isPermaLink="true">https://blog.nt2.me/paged-list-not-full-table-load</guid>
      <pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate>
      <description>A local vault can hold thousands of structured items without becoming a giant in-memory array. The durable store stays in SQLite. The UI holds only a paged window of lightweight list rows, rendered through a virtual list.</description>
      <author>NT²</author>
      <category>architecture</category>
      <category>local-first</category>
      <category>sqlite</category>
      <category>svelte</category>
      <category>performance</category>
      <category>virtual-list</category>
      <category>pagination</category>
      <category>pwa</category>
    </item>
    <item>
      <title>Look at my screen, not my vault</title>
      <link>https://blog.nt2.me/look-at-my-screen-not-my-vault</link>
      <guid isPermaLink="true">https://blog.nt2.me/look-at-my-screen-not-my-vault</guid>
      <pubDate>Tue, 18 Aug 2026 00:00:00 GMT</pubDate>
      <description>A friend asks to check the account number. You want to help, but you do not want your unlocked vault in someone else&apos;s hands.</description>
      <author>NT²</author>
      <category>present</category>
      <category>privacy</category>
      <category>family</category>
    </item>
    <item>
      <title>The account database must not become a password oracle</title>
      <link>https://blog.nt2.me/no-password-oracle-in-d1</link>
      <guid isPermaLink="true">https://blog.nt2.me/no-password-oracle-in-d1</guid>
      <pubDate>Sat, 15 Aug 2026 00:00:00 GMT</pubDate>
      <description>An account table can contain no plaintext vault items and still create a dangerous password-testing surface. We removed the columns that could turn a database copy into an offline guessing or recovery system.</description>
      <author>NT²</author>
      <category>architecture</category>
      <category>security</category>
      <category>privacy</category>
      <category>zero-knowledge</category>
      <category>edge</category>
      <category>cloudflare</category>
      <category>d1</category>
      <category>authentication</category>
    </item>
    <item>
      <title>Timed reveal on a video call</title>
      <link>https://blog.nt2.me/timed-reveal-on-a-video-call</link>
      <guid isPermaLink="true">https://blog.nt2.me/timed-reveal-on-a-video-call</guid>
      <pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate>
      <description>The person on the call needs to confirm one field. Your screen is ready to show an entire document.</description>
      <author>NT²</author>
      <category>present</category>
      <category>document</category>
      <category>privacy</category>
    </item>
    <item>
      <title>One sync hub for one vault identity</title>
      <link>https://blog.nt2.me/vault-durable-object-per-key-did</link>
      <guid isPermaLink="true">https://blog.nt2.me/vault-durable-object-per-key-did</guid>
      <pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate>
      <description>A vault does not need to enter a shared plaintext mailbox to sync. Its public cryptographic identity can name a dedicated edge coordinator that notifies replicas and points them to encrypted frames it cannot open.</description>
      <author>NT²</author>
      <category>architecture</category>
      <category>sync</category>
      <category>privacy</category>
      <category>durable-objects</category>
      <category>key-did</category>
      <category>edge</category>
    </item>
    <item>
      <title>Sent to me means ciphertext to you</title>
      <link>https://blog.nt2.me/sent-to-me-means-ciphertext-to-you</link>
      <guid isPermaLink="true">https://blog.nt2.me/sent-to-me-means-ciphertext-to-you</guid>
      <pubDate>Tue, 11 Aug 2026 00:00:00 GMT</pubDate>
      <description>The vault app lives at se.nt2.me: sent to me. The phrase is playful, but the product idea is not.</description>
      <author>NT²</author>
      <category>share</category>
      <category>brand</category>
      <category>trust</category>
    </item>
    <item>
      <title>No password reset, by design</title>
      <link>https://blog.nt2.me/no-password-reset-by-design</link>
      <guid isPermaLink="true">https://blog.nt2.me/no-password-reset-by-design</guid>
      <pubDate>Sat, 08 Aug 2026 00:00:00 GMT</pubDate>
      <description>“Contact support to reset your password” sounds reassuring. For an encrypted vault, it also reveals who ultimately controls access. NT² chooses a harder promise: recovery material stays with you, not our help desk.</description>
      <author>NT²</author>
      <category>security</category>
      <category>recovery</category>
      <category>zero-knowledge</category>
      <category>trust</category>
      <category>local-first</category>
    </item>
    <item>
      <title>Something arrived in my Inbox</title>
      <link>https://blog.nt2.me/something-arrived-in-my-inbox</link>
      <guid isPermaLink="true">https://blog.nt2.me/something-arrived-in-my-inbox</guid>
      <pubDate>Fri, 07 Aug 2026 00:00:00 GMT</pubDate>
      <description>Most sharing stories focus on the sender. The recipient has a quieter problem: should I trust this file, and where should it go if I do?</description>
      <author>NT²</author>
      <category>share</category>
      <category>inbox</category>
      <category>trust</category>
    </item>
    <item>
      <title>Blind replica sync on the edge</title>
      <link>https://blog.nt2.me/blind-replica-sync-on-the-edge</link>
      <guid isPermaLink="true">https://blog.nt2.me/blind-replica-sync-on-the-edge</guid>
      <pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate>
      <description>Sync does not have to turn a local vault into a cloud database. The edge can identify an account, store opaque replica frames, and deliver updates without learning what those updates contain.</description>
      <author>NT²</author>
      <category>architecture</category>
      <category>sync</category>
      <category>privacy</category>
      <category>local-first</category>
      <category>zero-knowledge</category>
      <category>edge</category>
    </item>
    <item>
      <title>Sometimes a USB stick beats email</title>
      <link>https://blog.nt2.me/usb-stick-beats-email</link>
      <guid isPermaLink="true">https://blog.nt2.me/usb-stick-beats-email</guid>
      <pubDate>Tue, 04 Aug 2026 00:00:00 GMT</pubDate>
      <description>If the file is too sensitive for a chat thread, sending it through one more inbox is not automatically better.</description>
      <author>NT²</author>
      <category>share</category>
      <category>privacy</category>
      <category>document</category>
    </item>
    <item>
      <title>Why our vault SQLite database lives in OPFS, not IndexedDB</title>
      <link>https://blog.nt2.me/opfs-not-indexeddb-for-vault-sqlite</link>
      <guid isPermaLink="true">https://blog.nt2.me/opfs-not-indexeddb-for-vault-sqlite</guid>
      <pubDate>Sat, 01 Aug 2026 00:00:00 GMT</pubDate>
      <description>SQLite wants a file. A privacy vault wants durable relational storage that stays fast as its item count, indexes, and encrypted attachments grow. Putting a SQLite virtual file system on IndexedDB can bridge those worlds, but it makes the bridge part of every database operation. For NT² Vault, the browser vault file belongs in the Origin Private File System.</description>
      <author>NT²</author>
      <category>opfs</category>
      <category>indexeddb</category>
      <category>sqlite</category>
      <category>wasm</category>
      <category>wa-sqlite</category>
      <category>local-first</category>
      <category>pwa</category>
      <category>browser-storage</category>
    </item>
    <item>
      <title>One-time disclosure for your lawyer or accountant</title>
      <link>https://blog.nt2.me/one-time-disclosure-lawyer-accountant</link>
      <guid isPermaLink="true">https://blog.nt2.me/one-time-disclosure-lawyer-accountant</guid>
      <pubDate>Fri, 31 Jul 2026 00:00:00 GMT</pubDate>
      <description>Your accountant needs the statement today. They do not need a permanent copy sitting in three inboxes and a downloads folder.</description>
      <author>NT²</author>
      <category>share</category>
      <category>document</category>
      <category>privacy</category>
    </item>
    <item>
      <title>Unlocking a local vault is not logging in to the cloud</title>
      <link>https://blog.nt2.me/unlock-local-auth-cloud</link>
      <guid isPermaLink="true">https://blog.nt2.me/unlock-local-auth-cloud</guid>
      <pubDate>Wed, 29 Jul 2026 00:00:00 GMT</pubDate>
      <description>One screen can make two security events look like a single login. We keep them separate because opening encrypted data and proving an identity to a server are different jobs with different risks.</description>
      <author>NT²</author>
      <category>authentication</category>
      <category>local-first</category>
      <category>privacy</category>
      <category>security</category>
      <category>cryptography</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Send production keys to my co-founder, not the whole vault</title>
      <link>https://blog.nt2.me/send-production-keys-to-cofounder</link>
      <guid isPermaLink="true">https://blog.nt2.me/send-production-keys-to-cofounder</guid>
      <pubDate>Tue, 28 Jul 2026 00:00:00 GMT</pubDate>
      <description>Your co-founder needs the production key before a weekend deploy. They do not need your personal vault, your old notes, or a zip file of everything.</description>
      <author>NT²</author>
      <category>share</category>
      <category>credential</category>
      <category>startup</category>
    </item>
    <item>
      <title>One key per object: envelope encryption inside NT² Vault</title>
      <link>https://blog.nt2.me/envelope-encryption-cek-per-object</link>
      <guid isPermaLink="true">https://blog.nt2.me/envelope-encryption-cek-per-object</guid>
      <pubDate>Sat, 25 Jul 2026 00:00:00 GMT</pubDate>
      <description>A vault can encrypt everything with one key and still claim that its data is encrypted. We wanted a more useful boundary: each item and attachment gets its own content encryption key, while the vault key protects those keys.</description>
      <author>NT²</author>
      <category>envelope-encryption</category>
      <category>aes-gcm</category>
      <category>cryptography</category>
      <category>local-first</category>
      <category>attachments</category>
      <category>opfs</category>
      <category>security</category>
    </item>
    <item>
      <title>Ten thousand items, still a vault</title>
      <link>https://blog.nt2.me/large-vault-still-fast</link>
      <guid isPermaLink="true">https://blog.nt2.me/large-vault-still-fast</guid>
      <pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate>
      <description>The first fifty items are easy. The real test is whether a vault still feels calm after years of credentials, documents, bank records, and notes.</description>
      <author>NT²</author>
      <category>store</category>
      <category>performance</category>
      <category>search</category>
    </item>
    <item>
      <title>The KDF salt stays on your device</title>
      <link>https://blog.nt2.me/kdf-salt-stays-on-device</link>
      <guid isPermaLink="true">https://blog.nt2.me/kdf-salt-stays-on-device</guid>
      <pubDate>Thu, 23 Jul 2026 00:00:00 GMT</pubDate>
      <description>A salt is not a secret. Still, where it lives changes who can assemble a password-guessing system. NT² keeps the KDF salt and password verifier with the local vault, so unlocking begins and ends on the device.</description>
      <author>NT²</author>
      <category>architecture</category>
      <category>crypto</category>
      <category>security</category>
      <category>local-first</category>
      <category>zero-knowledge</category>
      <category>web-crypto</category>
      <category>pbkdf2</category>
      <category>key-derivation</category>
    </item>
    <item>
      <title>Work vault, personal vault</title>
      <link>https://blog.nt2.me/work-vault-personal-vault</link>
      <guid isPermaLink="true">https://blog.nt2.me/work-vault-personal-vault</guid>
      <pubDate>Tue, 21 Jul 2026 00:00:00 GMT</pubDate>
      <description>Your laptop holds client API keys, a family insurance policy, and a crypto wallet note. The problem is not storage space. It is boundaries.</description>
      <author>NT²</author>
      <category>store</category>
      <category>privacy</category>
      <category>credential</category>
    </item>
    <item>
      <title>How one person builds and operates NT² Vault with AI agents</title>
      <link>https://blog.nt2.me/one-person-ai-coding-agent-product-lifecycle</link>
      <guid isPermaLink="true">https://blog.nt2.me/one-person-ai-coding-agent-product-lifecycle</guid>
      <pubDate>Mon, 20 Jul 2026 00:00:00 GMT</pubDate>
      <description>The useful question is not whether an AI agent can write code. It is how to give agents enough context and autonomy to move quickly while keeping product decisions, security boundaries, releases, and customer-facing actions under explicit human control.</description>
      <author>NT²</author>
      <category>ai-agents</category>
      <category>human-in-the-loop</category>
      <category>spec-driven-development</category>
      <category>tdd</category>
      <category>devops</category>
      <category>security</category>
      <category>product-development</category>
    </item>
    <item>
      <title>Three Stripe keys, three environments</title>
      <link>https://blog.nt2.me/three-stripe-keys-three-environments</link>
      <guid isPermaLink="true">https://blog.nt2.me/three-stripe-keys-three-environments</guid>
      <pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate>
      <description>The note says API stuff. Inside are three Stripe keys, two webhook secrets, an old test token, and no one remembers which one is safe to paste.</description>
      <author>NT²</author>
      <category>store</category>
      <category>credential</category>
    </item>
    <item>
      <title>Embassy appointment, no signal</title>
      <link>https://blog.nt2.me/embassy-appointment-no-signal</link>
      <guid isPermaLink="true">https://blog.nt2.me/embassy-appointment-no-signal</guid>
      <pubDate>Tue, 14 Jul 2026 00:00:00 GMT</pubDate>
      <description>You are outside the consulate, the appointment is in twelve minutes, and the confirmation email will not load.</description>
      <author>NT²</author>
      <category>store</category>
      <category>document</category>
      <category>travel</category>
    </item>
    <item>
      <title>Not another password manager login</title>
      <link>https://blog.nt2.me/not-another-password-manager-login</link>
      <guid isPermaLink="true">https://blog.nt2.me/not-another-password-manager-login</guid>
      <pubDate>Fri, 10 Jul 2026 00:00:00 GMT</pubDate>
      <description>Website logins already have good tools. The harder question is where to keep the secrets that are not just username, password, and URL.</description>
      <author>NT²</author>
      <category>store</category>
      <category>credential</category>
      <category>crypto</category>
    </item>
    <item>
      <title>Why host a heavy server when a PWA can do everything locally? Built a zero-server privacy vault.</title>
      <link>https://blog.nt2.me/why-pwa-local-first-zero-server-vault</link>
      <guid isPermaLink="true">https://blog.nt2.me/why-pwa-local-first-zero-server-vault</guid>
      <pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate>
      <description>In the era of massive cloud-first applications, we often overlook a powerful alternative: the Progressive Web App (PWA). Why maintain a heavy, expensive, and potentially vulnerable server infrastructure when the modern browser is capable of running a full-featured, secure, and high-performance application entirely on the user&apos;s device?</description>
      <author>NT²</author>
      <category>architecture</category>
      <category>pwa</category>
      <category>privacy</category>
      <category>security</category>
      <category>local-first</category>
      <category>zero-knowledge</category>
      <category>web-crypto</category>
      <category>sqlite</category>
      <category>wasm</category>
      <category>opfs</category>
    </item>
    <item>
      <title>Mom keeps passwords in a paper notebook</title>
      <link>https://blog.nt2.me/paper-notebook-family-handoff</link>
      <guid isPermaLink="true">https://blog.nt2.me/paper-notebook-family-handoff</guid>
      <pubDate>Tue, 07 Jul 2026 00:00:00 GMT</pubDate>
      <description>The notebook sits in the kitchen drawer. Everyone knows it matters. Nobody is sure whether the bank password on page seven is still current.</description>
      <author>NT²</author>
      <category>store</category>
      <category>family</category>
      <category>backup</category>
    </item>
    <item>
      <title>The spreadsheet on my Desktop</title>
      <link>https://blog.nt2.me/spreadsheet-on-my-desktop</link>
      <guid isPermaLink="true">https://blog.nt2.me/spreadsheet-on-my-desktop</guid>
      <pubDate>Fri, 03 Jul 2026 00:00:00 GMT</pubDate>
      <description>The file started as a budget. Then someone added insurance details, bank accounts, passport numbers, and a few passwords. Now the most sensitive document in the house is called Family.xlsx.</description>
      <author>NT²</author>
      <category>store</category>
      <category>bank</category>
      <category>document</category>
      <category>family</category>
    </item>
    <item>
      <title>Threshold Vault and Key DID: identity without handing over the keys</title>
      <link>https://blog.nt2.me/threshold-vault-key-did-self-sovereign-identity</link>
      <guid isPermaLink="true">https://blog.nt2.me/threshold-vault-key-did-self-sovereign-identity</guid>
      <pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate>
      <description>Self-sovereign identity sounds abstract. In NT², the practical version is simpler: your vault can prove itself, recover without a help desk, and share under your control while NT² stays blind.</description>
      <author>NT²</author>
      <category>trust</category>
      <category>identity</category>
    </item>
    <item>
      <title>Recent updates — late June 2026</title>
      <link>https://blog.nt2.me/building-nt2-vault-june-2026</link>
      <guid isPermaLink="true">https://blog.nt2.me/building-nt2-vault-june-2026</guid>
      <pubDate>Mon, 29 Jun 2026 00:00:00 GMT</pubDate>
      <description>A short changelog for early followers. NT² Vault is still pre-launch—this note covers what we shipped recently, not the full product map.</description>
      <author>NT²</author>
      <category>product</category>
      <category>pre-launch</category>
      <category>roadmap</category>
    </item>
    <item>
      <title>You pasted the API key in Slack</title>
      <link>https://blog.nt2.me/api-keys-in-slack</link>
      <guid isPermaLink="true">https://blog.nt2.me/api-keys-in-slack</guid>
      <pubDate>Sun, 28 Jun 2026 00:00:00 GMT</pubDate>
      <description>The contractor needed the Stripe key before deploy. You pasted it in #engineering. The key is rotated now—and the thread is still searchable forever.</description>
      <author>NT²</author>
      <category>share</category>
      <category>credential</category>
      <category>pre-launch</category>
    </item>
    <item>
      <title>When your landlord asks for ID on WhatsApp</title>
      <link>https://blog.nt2.me/id-photos-on-messaging-apps</link>
      <guid isPermaLink="true">https://blog.nt2.me/id-photos-on-messaging-apps</guid>
      <pubDate>Sun, 28 Jun 2026 00:00:00 GMT</pubDate>
      <description>Front and back of your ID in WhatsApp or LINE is fast for the landlord—and a permanent copy in a chat log you do not control.</description>
      <author>NT²</author>
      <category>share</category>
      <category>document</category>
      <category>pre-launch</category>
    </item>
    <item>
      <title>They only needed the last four digits</title>
      <link>https://blog.nt2.me/mortgage-proof-show-less-not-upload-more</link>
      <guid isPermaLink="true">https://blog.nt2.me/mortgage-proof-show-less-not-upload-more</guid>
      <pubDate>Sun, 28 Jun 2026 00:00:00 GMT</pubDate>
      <description>The broker wanted employer name and the last four digits of your account. You emailed a twelve-page PDF. That is oversharing dressed as diligence.</description>
      <author>NT²</author>
      <category>present</category>
      <category>bank</category>
      <category>pre-launch</category>
    </item>
    <item>
      <title>Your seed phrase shouldn&apos;t live in Apple Notes</title>
      <link>https://blog.nt2.me/seed-phrase-in-apple-notes</link>
      <guid isPermaLink="true">https://blog.nt2.me/seed-phrase-in-apple-notes</guid>
      <pubDate>Sun, 28 Jun 2026 00:00:00 GMT</pubDate>
      <description>If your recovery phrase is in Apple Notes, iCloud is doing backup. That is not the same as zero-knowledge—and it is not the same as structured, masked fields with auto-lock.</description>
      <author>NT²</author>
      <category>store</category>
      <category>crypto</category>
      <category>pre-launch</category>
    </item>
    <item>
      <title>Split rent without screenshotting banking apps</title>
      <link>https://blog.nt2.me/split-rent-without-banking-screenshots</link>
      <guid isPermaLink="true">https://blog.nt2.me/split-rent-without-banking-screenshots</guid>
      <pubDate>Sun, 28 Jun 2026 00:00:00 GMT</pubDate>
      <description>Every month you paste a banking-app screenshot into the family group. Your brother&apos;s phone, cloud backup, and search history are now copies you never meant to keep.</description>
      <author>NT²</author>
      <category>share</category>
      <category>bank</category>
      <category>pre-launch</category>
    </item>
    <item>
      <title>Null Trust² — what the name means</title>
      <link>https://blog.nt2.me/what-null-trust-squared-means</link>
      <guid isPermaLink="true">https://blog.nt2.me/what-null-trust-squared-means</guid>
      <pubDate>Sun, 28 Jun 2026 00:00:00 GMT</pubDate>
      <description>NT² stands for Null Trust². The name is a promise about what we cannot do—even when that is inconvenient for support and onboarding.</description>
      <author>NT²</author>
      <category>trust</category>
      <category>pre-launch</category>
      <category>product</category>
    </item>
    <item>
      <title>Welcome to the NT² Blog</title>
      <link>https://blog.nt2.me/welcome-to-nt2-blog</link>
      <guid isPermaLink="true">https://blog.nt2.me/welcome-to-nt2-blog</guid>
      <pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate>
      <description>This is where we publish product stories—not spec sheets—about structured privacy, local-first vaulting, and handing sensitive data to another person without email attachments or chat screenshots.</description>
      <author>NT²</author>
      <category>product</category>
      <category>blog</category>
      <category>pre-launch</category>
    </item>
  </channel>
</rss>