From 292c3e10f4a46b929fab0b206b1e63e2037de07a Mon Sep 17 00:00:00 2001
From: Claude
Date: Tue, 6 Oct 2026 03:14:26 +0000
Subject: [PATCH 1/5] chore: move site domain to atomic-notes.devbehindyou.com
Replace atomic-notes-community.vercel.app with the new custom subdomain in
the default site URL, .env.example, llms.txt, blog canonicals, the blog
pipeline config and drafts, docs, and the smoke tests.
Co-Authored-By: Claude Opus 5.5
Claude-Session: https://claude.ai/code/session_01N6CCeSeEEcvpWot2tB7XgJ
---
.env.example | 2 +-
.../Medium publishing notes.txt | 2 +-
.../atomic-notes-local-first-private-by-design.md | 6 +++---
.../Medium publishing notes.txt | 2 +-
.../best-private-notes-apps-2026.md | 2 +-
.../Medium publishing notes.txt | 2 +-
.../encrypted-notes-t2t-vs-end-to-end.md | 2 +-
.../Medium publishing notes.txt | 2 +-
.../encryption-alone-does-not-mean-private.md | 2 +-
.../Medium publishing notes.txt | 2 +-
.../offline-notes-apps.md | 4 ++--
.../Medium publishing notes.txt | 2 +-
.../what-happens-when-the-cloud-goes-down.md | 2 +-
.../Medium publishing notes.txt | 2 +-
.../what-is-a-local-first-notes-app.md | 4 ++--
.../Medium publishing notes.txt | 8 ++++----
.../why-atomic-notes-uses-energy.md | 8 ++++----
.../Medium publishing notes.txt | 2 +-
.../why-privacy-software-should-be-open-source.md | 2 +-
.../Medium publishing notes.txt | 4 ++--
.../zero-telemetry-notes-app.md | 4 ++--
.../Medium publishing notes.txt | 2 +-
.../best-note-taking-apps-without-ai.md | 2 +-
.../Medium publishing notes.txt | 4 ++--
.../best-privacy-first-notes-apps-android.md | 4 ++--
.../Medium publishing notes.txt | 4 ++--
.../best-google-keep-alternatives-privacy.md | 4 ++--
.../Medium publishing notes.txt | 2 +-
.../best-local-first-note-taking-apps.md | 2 +-
.../Medium publishing notes.txt | 4 ++--
.../best-end-to-end-encrypted-notes-apps.md | 4 ++--
.../Medium publishing notes.txt | 2 +-
.../best-offline-notes-apps-android.md | 2 +-
.../Medium publishing notes.txt | 4 ++--
.../private-local-first-notion-alternatives.md | 4 ++--
.../10-notes-app-privacy-mistakes-2026.md | 4 ++--
.../Medium publishing notes.txt | 4 ++--
.../5-risks-storing-passwords-in-notes-app.md | 4 ++--
.../Medium publishing notes.txt | 4 ++--
.../6-privacy-questions-ai-notes-app.md | 4 ++--
.../Medium publishing notes.txt | 4 ++--
.../8-types-of-data-notes-apps-may-collect.md | 4 ++--
.../Medium publishing notes.txt | 4 ++--
.../4-layers-atomic-notes-architecture.md | 4 ++--
.../Medium publishing notes.txt | 4 ++--
.../9-notes-app-privacy-red-flags.md | 4 ++--
.../Medium publishing notes.txt | 4 ++--
.../7-ways-notes-apps-can-expose-your-data.md | 4 ++--
.../Medium publishing notes.txt | 4 ++--
...-encryption-does-not-guarantee-notes-privacy.md | 4 ++--
.../Medium publishing notes.txt | 4 ++--
.../3-ways-notes-apps-store-your-data.md | 4 ++--
.../Medium publishing notes.txt | 4 ++--
.../7-things-check-before-switching-notes-app.md | 4 ++--
.../Medium publishing notes.txt | 4 ++--
.../post.txt | 2 +-
.../post.txt | 2 +-
.../body.md | 2 +-
.../post.txt | 2 +-
.../config/site.config.json | 2 +-
.../atomic-notes-v1-18-2/atomic-notes-v1-18-2.md | 2 +-
.../topics/Blog List 02 - AtomicNotes.txt | 14 +++++++-------
.../topics/Posts List 01 - AtomicNotes.txt | 8 ++++----
SESSION-HANDOFF.md | 2 +-
content/blog/atomic-notes-v1-18-2.md | 2 +-
public/llms.txt | 8 ++++----
src/lib/site.ts | 2 +-
tests/runtime.test.mjs | 6 +++---
68 files changed, 122 insertions(+), 122 deletions(-)
diff --git a/.env.example b/.env.example
index 239be64..77d5f99 100644
--- a/.env.example
+++ b/.env.example
@@ -19,4 +19,4 @@ SESSION_SECRET=change-me-to-a-long-random-string
# Public download link shown on the community site (GitHub release APK).
NEXT_PUBLIC_APK_URL=https://github.com/DevBehindYou/Atomic-Notes-App/releases/latest
-NEXT_PUBLIC_SITE_URL=https://atomic-notes-community.vercel.app
+NEXT_PUBLIC_SITE_URL=https://atomic-notes.devbehindyou.com
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Atomic Notes - Local-First and Private by Design/Medium publishing notes.txt b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Atomic Notes - Local-First and Private by Design/Medium publishing notes.txt
index 2f5ea95..098fa27 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Atomic Notes - Local-First and Private by Design/Medium publishing notes.txt
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Atomic Notes - Local-First and Private by Design/Medium publishing notes.txt
@@ -22,7 +22,7 @@ How to publish:
2. Re-upload each image from this folder at its place (Medium does not keep pasted Word images reliably).
3. Check that the code block and the bullet lists survived the paste.
4. Story settings > Advanced: if this article is also published on the Atomic Notes website, set the canonical link to:
- https://atomic-notes-community.vercel.app/blog/atomic-notes-local-first-private-by-design
+ https://atomic-notes.devbehindyou.com/blog/atomic-notes-local-first-private-by-design
Otherwise leave the canonical link empty.
The .md file is the source of truth. It passes the blog pipeline validator:
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Atomic Notes - Local-First and Private by Design/atomic-notes-local-first-private-by-design.md b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Atomic Notes - Local-First and Private by Design/atomic-notes-local-first-private-by-design.md
index 05f5472..731b596 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Atomic Notes - Local-First and Private by Design/atomic-notes-local-first-private-by-design.md
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Atomic Notes - Local-First and Private by Design/atomic-notes-local-first-private-by-design.md
@@ -12,7 +12,7 @@ tags: ["local-first", "privacy", "android", "encryption", "notes-app"]
draft: false
coverImage: "01-banner.png"
coverAlt: "Atomic Notes banner reading Your Notes, Your Drive, Always Yours, with two phone screens"
-canonical: "https://atomic-notes-community.vercel.app/blog/atomic-notes-local-first-private-by-design"
+canonical: "https://atomic-notes.devbehindyou.com/blog/atomic-notes-local-first-private-by-design"
keywords: "atomic notes, local-first notes app, private notes app android, google drive notes app, end-to-end encrypted notes"
readingTime: "8 min read"
---
@@ -79,7 +79,7 @@ You get +20 energy every day, up to 120. An automatic sync costs 5 and runs at m
An honest bug story here. The first version granted energy on a rolling 24 hours that restarted at every grant. Open the app a bit later each day and the next grant slid back, so whole days went missing. Since September 28, 2026, every account has a fixed daily grant time, and days you skip are added the next time you open the app.
-Every account holds 30 notes and starts with 5 Atomic Coins. Coins buy bigger tiers, up to 100 notes. Coins are not sold in the app yet. People who support the project on the [support page](https://atomic-notes-community.vercel.app/support-atomic-notes) get them early.
+Every account holds 30 notes and starts with 5 Atomic Coins. Coins buy bigger tiers, up to 100 notes. Coins are not sold in the app yet. People who support the project on the [support page](https://atomic-notes.devbehindyou.com/support-atomic-notes) get them early.
## What Atomic Notes does not do yet
@@ -93,7 +93,7 @@ Atomic Notes is young, built by one developer, and these limits are real. Read t
## Where to get it
-Atomic Notes is for people who want their notes fast, offline and theirs. It is a focused notes and checklist app, not a knowledge-management suite, and that is on purpose. Get the latest APK from [GitHub Releases](https://github.com/DevBehindYou/Atomic-Notes-App-V0.2/releases/latest), check its signature, and read exactly what the app collects on the [privacy page](https://atomic-notes-community.vercel.app/privacy). The rest of the story lives on the [Atomic Notes website](https://atomic-notes-community.vercel.app).
+Atomic Notes is for people who want their notes fast, offline and theirs. It is a focused notes and checklist app, not a knowledge-management suite, and that is on purpose. Get the latest APK from [GitHub Releases](https://github.com/DevBehindYou/Atomic-Notes-App-V0.2/releases/latest), check its signature, and read exactly what the app collects on the [privacy page](https://atomic-notes.devbehindyou.com/privacy). The rest of the story lives on the [Atomic Notes website](https://atomic-notes.devbehindyou.com).
## FAQ
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Best Private Notes Apps in 2026/Medium publishing notes.txt b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Best Private Notes Apps in 2026/Medium publishing notes.txt
index bd56eed..d9f3d69 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Best Private Notes Apps in 2026/Medium publishing notes.txt
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Best Private Notes Apps in 2026/Medium publishing notes.txt
@@ -20,7 +20,7 @@ How to publish:
2. Re-upload each image from this folder at its place (Medium does not keep pasted Word images reliably).
3. Check that the code block and the bullet lists survived the paste.
4. Story settings > Advanced: if this article is also published on the Atomic Notes website, set the canonical link to:
- https://atomic-notes-community.vercel.app/blog/best-private-notes-apps-2026
+ https://atomic-notes.devbehindyou.com/blog/best-private-notes-apps-2026
Otherwise leave the canonical link empty.
The .md file is the source of truth. It passes the blog pipeline validator:
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Best Private Notes Apps in 2026/best-private-notes-apps-2026.md b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Best Private Notes Apps in 2026/best-private-notes-apps-2026.md
index f016748..c3280d6 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Best Private Notes Apps in 2026/best-private-notes-apps-2026.md
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Best Private Notes Apps in 2026/best-private-notes-apps-2026.md
@@ -12,7 +12,7 @@ tags: ["privacy", "notes-app", "encryption", "local-first", "comparison"]
draft: false
coverImage: "01-banner.png"
coverAlt: "Banner reading Best Private Notes Apps in 2026 with a ranked list led by Atomic Notes"
-canonical: "https://atomic-notes-community.vercel.app/blog/best-private-notes-apps-2026"
+canonical: "https://atomic-notes.devbehindyou.com/blog/best-private-notes-apps-2026"
keywords: "best private notes app, private notes app 2026, encrypted notes app, local-first notes app, standard notes alternative"
readingTime: "9 min read"
---
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Encrypted Notes Explained - T2T vs End-to-End/Medium publishing notes.txt b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Encrypted Notes Explained - T2T vs End-to-End/Medium publishing notes.txt
index 8115132..55c77b6 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Encrypted Notes Explained - T2T vs End-to-End/Medium publishing notes.txt
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Encrypted Notes Explained - T2T vs End-to-End/Medium publishing notes.txt
@@ -21,7 +21,7 @@ How to publish:
2. Re-upload each image from this folder at its place (Medium does not keep pasted Word images reliably).
3. Check that the code block and the bullet lists survived the paste.
4. Story settings > Advanced: if this article is also published on the Atomic Notes website, set the canonical link to:
- https://atomic-notes-community.vercel.app/blog/encrypted-notes-t2t-vs-end-to-end
+ https://atomic-notes.devbehindyou.com/blog/encrypted-notes-t2t-vs-end-to-end
Otherwise leave the canonical link empty.
The .md file is the source of truth. It passes the blog pipeline validator:
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Encrypted Notes Explained - T2T vs End-to-End/encrypted-notes-t2t-vs-end-to-end.md b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Encrypted Notes Explained - T2T vs End-to-End/encrypted-notes-t2t-vs-end-to-end.md
index 749b923..1f79712 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Encrypted Notes Explained - T2T vs End-to-End/encrypted-notes-t2t-vs-end-to-end.md
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Encrypted Notes Explained - T2T vs End-to-End/encrypted-notes-t2t-vs-end-to-end.md
@@ -12,7 +12,7 @@ tags: ["encryption", "privacy", "security", "notes-app", "end-to-end-encryption"
draft: false
coverImage: "01-banner.png"
coverAlt: "Banner reading Encrypted Notes: T2T vs End-to-End, with a padlock and a ciphertext string"
-canonical: "https://atomic-notes-community.vercel.app/blog/encrypted-notes-t2t-vs-end-to-end"
+canonical: "https://atomic-notes.devbehindyou.com/blog/encrypted-notes-t2t-vs-end-to-end"
keywords: "encrypted notes app, end-to-end encrypted notes, t2t vs e2e, argon2id aes-256-gcm, zero-knowledge notes"
readingTime: "8 min read"
---
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Encryption Alone Does Not Make a Notes App Private/Medium publishing notes.txt b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Encryption Alone Does Not Make a Notes App Private/Medium publishing notes.txt
index 2e26001..4a90844 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Encryption Alone Does Not Make a Notes App Private/Medium publishing notes.txt
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Encryption Alone Does Not Make a Notes App Private/Medium publishing notes.txt
@@ -54,7 +54,7 @@ How to publish:
2. Re-upload each image from this folder at its place (Medium does not keep pasted Word images reliably).
3. Check that the bullet lists and the Sources links survived the paste.
4. Story settings > Advanced: if this article is also published on the Atomic Notes website, set the canonical link to:
- https://atomic-notes-community.vercel.app/blog/encryption-alone-does-not-mean-private
+ https://atomic-notes.devbehindyou.com/blog/encryption-alone-does-not-mean-private
Otherwise leave the canonical link empty.
The .md file is the source of truth. It passes the blog pipeline validator:
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Encryption Alone Does Not Make a Notes App Private/encryption-alone-does-not-mean-private.md b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Encryption Alone Does Not Make a Notes App Private/encryption-alone-does-not-mean-private.md
index c679e62..08861d6 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Encryption Alone Does Not Make a Notes App Private/encryption-alone-does-not-mean-private.md
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Encryption Alone Does Not Make a Notes App Private/encryption-alone-does-not-mean-private.md
@@ -12,7 +12,7 @@ tags: ["privacy", "encryption", "notes-app", "privacy-by-design", "security"]
draft: false
coverImage: "01-banner.png"
coverAlt: "Banner reading Encryption Alone Isn't Privacy, with six privacy layers and encryption highlighted as one of them"
-canonical: "https://atomic-notes-community.vercel.app/blog/encryption-alone-does-not-mean-private"
+canonical: "https://atomic-notes.devbehindyou.com/blog/encryption-alone-does-not-mean-private"
keywords: "private notes app, encrypted notes app, end to end encryption, notes privacy, privacy by design"
readingTime: "7 min read"
---
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Offline Notes Apps - Why Notes Should Work Offline/Medium publishing notes.txt b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Offline Notes Apps - Why Notes Should Work Offline/Medium publishing notes.txt
index cf97ffe..55dc49b 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Offline Notes Apps - Why Notes Should Work Offline/Medium publishing notes.txt
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Offline Notes Apps - Why Notes Should Work Offline/Medium publishing notes.txt
@@ -20,7 +20,7 @@ How to publish:
2. Re-upload each image from this folder at its place (Medium does not keep pasted Word images reliably).
3. Check that the code block and the bullet lists survived the paste.
4. Story settings > Advanced: if this article is also published on the Atomic Notes website, set the canonical link to:
- https://atomic-notes-community.vercel.app/blog/offline-notes-apps
+ https://atomic-notes.devbehindyou.com/blog/offline-notes-apps
Otherwise leave the canonical link empty.
The .md file is the source of truth. It passes the blog pipeline validator:
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Offline Notes Apps - Why Notes Should Work Offline/offline-notes-apps.md b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Offline Notes Apps - Why Notes Should Work Offline/offline-notes-apps.md
index 12f4e08..7609e00 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Offline Notes Apps - Why Notes Should Work Offline/offline-notes-apps.md
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Offline Notes Apps - Why Notes Should Work Offline/offline-notes-apps.md
@@ -12,7 +12,7 @@ tags: ["offline-first", "local-first", "android", "notes-app", "sync"]
draft: false
coverImage: "01-banner.png"
coverAlt: "Banner reading Your Notes Should Work Without Internet, with a phone in airplane mode"
-canonical: "https://atomic-notes-community.vercel.app/blog/offline-notes-apps"
+canonical: "https://atomic-notes.devbehindyou.com/blog/offline-notes-apps"
keywords: "offline notes app, offline notes app android, offline-first notes, notes app without internet, local-first notes"
readingTime: "7 min read"
---
@@ -76,7 +76,7 @@ Offline-first does not mean "never online". Moving notes between a phone and a l
Atomic Notes has honest limits here. It syncs while the app is open or on the next launch, with no background sync while the app is closed yet. Automatic sync runs at most once an hour on a free daily energy allowance, and Sync now works any time. And it is Android only for now, from version 2.03.5 on [GitHub Releases](https://github.com/DevBehindYou/Atomic-Notes-App-V0.2/releases/latest).
-Run the airplane-mode test on whatever you use today. If your notes app saves without a flicker, it is offline-first. If it stalls, the next outage will show you whose server your notes really live on. For the theory behind this design, read *What Is a Local-First Notes App and Why Does It Matter?*, and for the details of Atomic Notes, visit the [Atomic Notes website](https://atomic-notes-community.vercel.app).
+Run the airplane-mode test on whatever you use today. If your notes app saves without a flicker, it is offline-first. If it stalls, the next outage will show you whose server your notes really live on. For the theory behind this design, read *What Is a Local-First Notes App and Why Does It Matter?*, and for the details of Atomic Notes, visit the [Atomic Notes website](https://atomic-notes.devbehindyou.com).
## FAQ
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/What Happens to Your Notes When the Cloud Goes Down/Medium publishing notes.txt b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/What Happens to Your Notes When the Cloud Goes Down/Medium publishing notes.txt
index e2d85d3..5fcaf5f 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/What Happens to Your Notes When the Cloud Goes Down/Medium publishing notes.txt
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/What Happens to Your Notes When the Cloud Goes Down/Medium publishing notes.txt
@@ -57,7 +57,7 @@ How to publish:
2. Re-upload each image from this folder at its place (Medium does not keep pasted Word images reliably).
3. Check that the bullet lists and the Sources links survived the paste.
4. Story settings > Advanced: if this article is also published on the Atomic Notes website, set the canonical link to:
- https://atomic-notes-community.vercel.app/blog/what-happens-when-the-cloud-goes-down
+ https://atomic-notes.devbehindyou.com/blog/what-happens-when-the-cloud-goes-down
Otherwise leave the canonical link empty.
The .md file is the source of truth. It passes the blog pipeline validator:
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/What Happens to Your Notes When the Cloud Goes Down/what-happens-when-the-cloud-goes-down.md b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/What Happens to Your Notes When the Cloud Goes Down/what-happens-when-the-cloud-goes-down.md
index 4a7bd9f..9d29912 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/What Happens to Your Notes When the Cloud Goes Down/what-happens-when-the-cloud-goes-down.md
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/What Happens to Your Notes When the Cloud Goes Down/what-happens-when-the-cloud-goes-down.md
@@ -12,7 +12,7 @@ tags: ["local-first", "offline-first", "cloud-outage", "notes-app", "reliability
draft: false
coverImage: "01-banner.png"
coverAlt: "Banner reading When the Cloud Goes Down, with a 503 error card and an Atomic Notes card that says still opens, still saves"
-canonical: "https://atomic-notes-community.vercel.app/blog/what-happens-when-the-cloud-goes-down"
+canonical: "https://atomic-notes.devbehindyou.com/blog/what-happens-when-the-cloud-goes-down"
keywords: "cloud outage notes, offline first apps, local first software, offline notes, cloud dependency"
readingTime: "7 min read"
---
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/What Is a Local-First Notes App/Medium publishing notes.txt b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/What Is a Local-First Notes App/Medium publishing notes.txt
index c28c48a..1eacaf5 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/What Is a Local-First Notes App/Medium publishing notes.txt
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/What Is a Local-First Notes App/Medium publishing notes.txt
@@ -21,7 +21,7 @@ How to publish:
2. Re-upload each image from this folder at its place (Medium does not keep pasted Word images reliably).
3. Check that the code block and the bullet lists survived the paste.
4. Story settings > Advanced: if this article is also published on the Atomic Notes website, set the canonical link to:
- https://atomic-notes-community.vercel.app/blog/what-is-a-local-first-notes-app
+ https://atomic-notes.devbehindyou.com/blog/what-is-a-local-first-notes-app
Otherwise leave the canonical link empty.
The .md file is the source of truth. It passes the blog pipeline validator:
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/What Is a Local-First Notes App/what-is-a-local-first-notes-app.md b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/What Is a Local-First Notes App/what-is-a-local-first-notes-app.md
index 4a18d16..e4c6cbb 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/What Is a Local-First Notes App/what-is-a-local-first-notes-app.md
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/What Is a Local-First Notes App/what-is-a-local-first-notes-app.md
@@ -12,7 +12,7 @@ tags: ["local-first", "notes-app", "privacy", "sync", "architecture"]
draft: false
coverImage: "01-banner.png"
coverAlt: "Banner reading What Is a Local-First Notes App, with your phone as the primary copy and your Drive as a secondary copy"
-canonical: "https://atomic-notes-community.vercel.app/blog/what-is-a-local-first-notes-app"
+canonical: "https://atomic-notes.devbehindyou.com/blog/what-is-a-local-first-notes-app"
keywords: "local-first notes app, what is local-first software, local-first vs cloud-first, offline-first notes, own your notes"
readingTime: "8 min read"
---
@@ -79,7 +79,7 @@ Atomic Notes builds the rest on that foundation: no analytics, crash or ad SDKs,
There are honest limits too. The vault is off by default. Sync needs a Google sign-in for now, with email and password login planned. There is no background sync while the app is closed. And real-time co-editing by several people, which the essay's CRDTs solve, is not something Atomic Notes does. It is built for one person across their own devices.
-Local-first is the difference between notes that visit your phone and notes that live there. If you want to see it in practice, the airplane-mode test takes ten seconds: open your notes app cold with no connection and write a line. Atomic Notes 2.03.5 for Android is on [GitHub Releases](https://github.com/DevBehindYou/Atomic-Notes-App-V0.2/releases/latest), and the [Atomic Notes website](https://atomic-notes-community.vercel.app) explains how it works.
+Local-first is the difference between notes that visit your phone and notes that live there. If you want to see it in practice, the airplane-mode test takes ten seconds: open your notes app cold with no connection and write a line. Atomic Notes 2.03.5 for Android is on [GitHub Releases](https://github.com/DevBehindYou/Atomic-Notes-App-V0.2/releases/latest), and the [Atomic Notes website](https://atomic-notes.devbehindyou.com) explains how it works.
## FAQ
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Why Atomic Notes Uses Energy Instead of a Subscription/Medium publishing notes.txt b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Why Atomic Notes Uses Energy Instead of a Subscription/Medium publishing notes.txt
index 724833e..18f4cac 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Why Atomic Notes Uses Energy Instead of a Subscription/Medium publishing notes.txt
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Why Atomic Notes Uses Energy Instead of a Subscription/Medium publishing notes.txt
@@ -44,20 +44,20 @@ Cover image: 01-banner.png (Medium uses the first image as the preview).
Sources (listed after the article, under "Sources"):
Atomic Notes support page
- https://atomic-notes-community.vercel.app/support-atomic-notes
+ https://atomic-notes.devbehindyou.com/support-atomic-notes
Atomic Notes 2.03.5 release notes (energy and coins changes)
https://github.com/DevBehindYou/Atomic-Notes-App-V0.2/releases/tag/v2.03.5
Atomic Notes privacy policy
- https://atomic-notes-community.vercel.app/privacy
+ https://atomic-notes.devbehindyou.com/privacy
Atomic Notes terms
- https://atomic-notes-community.vercel.app/terms
+ https://atomic-notes.devbehindyou.com/terms
How to publish:
1. Open "Medium article.docx", select all and copy, then paste into a new Medium story.
2. Re-upload each image from this folder at its place (Medium does not keep pasted Word images reliably).
3. Check that the bullet lists and the Sources links survived the paste.
4. Story settings > Advanced: if this article is also published on the Atomic Notes website, set the canonical link to:
- https://atomic-notes-community.vercel.app/blog/why-atomic-notes-uses-energy
+ https://atomic-notes.devbehindyou.com/blog/why-atomic-notes-uses-energy
Otherwise leave the canonical link empty.
The .md file is the source of truth. It passes the blog pipeline validator:
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Why Atomic Notes Uses Energy Instead of a Subscription/why-atomic-notes-uses-energy.md b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Why Atomic Notes Uses Energy Instead of a Subscription/why-atomic-notes-uses-energy.md
index d6b0c18..f8b896f 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Why Atomic Notes Uses Energy Instead of a Subscription/why-atomic-notes-uses-energy.md
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Why Atomic Notes Uses Energy Instead of a Subscription/why-atomic-notes-uses-energy.md
@@ -12,7 +12,7 @@ tags: ["notes-app", "subscription-free", "business-model", "privacy", "atomic-no
draft: false
coverImage: "01-banner.png"
coverAlt: "Banner reading Energy, Not a Subscription, with a full 120 energy meter and a crossed-out monthly fee"
-canonical: "https://atomic-notes-community.vercel.app/blog/why-atomic-notes-uses-energy"
+canonical: "https://atomic-notes.devbehindyou.com/blog/why-atomic-notes-uses-energy"
keywords: "subscription free notes app, Atomic Energy, Atomic Coins, notes app without subscription, privacy friendly business model"
readingTime: "7 min read"
---
@@ -140,7 +140,7 @@ Sync runs on real servers that cost money every month. A subscription free notes
## Sources
-- [Atomic Notes support page](https://atomic-notes-community.vercel.app/support-atomic-notes)
+- [Atomic Notes support page](https://atomic-notes.devbehindyou.com/support-atomic-notes)
- [Atomic Notes 2.03.5 release notes (energy and coins changes)](https://github.com/DevBehindYou/Atomic-Notes-App-V0.2/releases/tag/v2.03.5)
-- [Atomic Notes privacy policy](https://atomic-notes-community.vercel.app/privacy)
-- [Atomic Notes terms](https://atomic-notes-community.vercel.app/terms)
+- [Atomic Notes privacy policy](https://atomic-notes.devbehindyou.com/privacy)
+- [Atomic Notes terms](https://atomic-notes.devbehindyou.com/terms)
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Why Privacy Software Should Be Open Source/Medium publishing notes.txt b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Why Privacy Software Should Be Open Source/Medium publishing notes.txt
index a170aad..9b3baef 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Why Privacy Software Should Be Open Source/Medium publishing notes.txt
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Why Privacy Software Should Be Open Source/Medium publishing notes.txt
@@ -62,7 +62,7 @@ How to publish:
2. Re-upload each image from this folder at its place (Medium does not keep pasted Word images reliably).
3. Check that the bullet lists and the Sources links survived the paste.
4. Story settings > Advanced: if this article is also published on the Atomic Notes website, set the canonical link to:
- https://atomic-notes-community.vercel.app/blog/why-privacy-software-should-be-open-source
+ https://atomic-notes.devbehindyou.com/blog/why-privacy-software-should-be-open-source
Otherwise leave the canonical link empty.
The .md file is the source of truth. It passes the blog pipeline validator:
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Why Privacy Software Should Be Open Source/why-privacy-software-should-be-open-source.md b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Why Privacy Software Should Be Open Source/why-privacy-software-should-be-open-source.md
index af6dcf7..6d9b497 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Why Privacy Software Should Be Open Source/why-privacy-software-should-be-open-source.md
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Why Privacy Software Should Be Open Source/why-privacy-software-should-be-open-source.md
@@ -12,7 +12,7 @@ tags: ["open-source", "privacy", "security", "software-transparency", "notes-app
draft: false
coverImage: "01-banner.png"
coverAlt: "Banner reading Privacy Software Should Show Its Code, with a code window labeled Verify, Don't Just Trust"
-canonical: "https://atomic-notes-community.vercel.app/blog/why-privacy-software-should-be-open-source"
+canonical: "https://atomic-notes.devbehindyou.com/blog/why-privacy-software-should-be-open-source"
keywords: "open source privacy software, open source security, privacy software, open source notes app, software transparency"
readingTime: "7 min read"
---
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Zero Telemetry - Why Your Notes App Should Know Less About You/Medium publishing notes.txt b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Zero Telemetry - Why Your Notes App Should Know Less About You/Medium publishing notes.txt
index 2d90d37..aeb6356 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Zero Telemetry - Why Your Notes App Should Know Less About You/Medium publishing notes.txt
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Zero Telemetry - Why Your Notes App Should Know Less About You/Medium publishing notes.txt
@@ -48,7 +48,7 @@ Sources (listed after the article, under "Sources"):
What Exodus Privacy does, Exodus Privacy
https://exodus-privacy.eu.org/en/page/what/
Atomic Notes privacy policy
- https://atomic-notes-community.vercel.app/privacy
+ https://atomic-notes.devbehindyou.com/privacy
Atomic Notes source code, including the Android manifest and dependency list
https://github.com/DevBehindYou/Atomic-Notes-App-V0.2
@@ -57,7 +57,7 @@ How to publish:
2. Re-upload each image from this folder at its place (Medium does not keep pasted Word images reliably).
3. Check that the bullet lists and the Sources links survived the paste.
4. Story settings > Advanced: if this article is also published on the Atomic Notes website, set the canonical link to:
- https://atomic-notes-community.vercel.app/blog/zero-telemetry-notes-app
+ https://atomic-notes.devbehindyou.com/blog/zero-telemetry-notes-app
Otherwise leave the canonical link empty.
The .md file is the source of truth. It passes the blog pipeline validator:
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Zero Telemetry - Why Your Notes App Should Know Less About You/zero-telemetry-notes-app.md b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Zero Telemetry - Why Your Notes App Should Know Less About You/zero-telemetry-notes-app.md
index d7356e7..e81ca9e 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Zero Telemetry - Why Your Notes App Should Know Less About You/zero-telemetry-notes-app.md
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 01/Zero Telemetry - Why Your Notes App Should Know Less About You/zero-telemetry-notes-app.md
@@ -12,7 +12,7 @@ tags: ["privacy", "telemetry", "notes-app", "tracking", "data-privacy"]
draft: false
coverImage: "01-banner.png"
coverAlt: "Banner reading Zero Telemetry, with analytics events, crash reports, advertising ID and tracker SDKs crossed out"
-canonical: "https://atomic-notes-community.vercel.app/blog/zero-telemetry-notes-app"
+canonical: "https://atomic-notes.devbehindyou.com/blog/zero-telemetry-notes-app"
keywords: "zero telemetry, privacy focused notes app, no tracking notes app, private note taking, data privacy apps"
readingTime: "7 min read"
---
@@ -149,5 +149,5 @@ The server keeps your account email, note ids, timestamps, flags, energy balance
- [FTC enforcement action against GoodRx, February 2023](https://www.ftc.gov/news-events/news/press-releases/2023/02/ftc-enforcement-action-bar-goodrx-sharing-consumers-sensitive-health-info-advertising)
- [Latanya Sweeney, "Simple Demographics Often Identify People Uniquely", Carnegie Mellon University, 2000](https://dataprivacylab.org/projects/identifiability/)
- [What Exodus Privacy does, Exodus Privacy](https://exodus-privacy.eu.org/en/page/what/)
-- [Atomic Notes privacy policy](https://atomic-notes-community.vercel.app/privacy)
+- [Atomic Notes privacy policy](https://atomic-notes.devbehindyou.com/privacy)
- [Atomic Notes source code, including the Android manifest and dependency list](https://github.com/DevBehindYou/Atomic-Notes-App-V0.2)
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/01 - 7 Best Note Taking Apps Without AI in 2026/Medium publishing notes.txt b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/01 - 7 Best Note Taking Apps Without AI in 2026/Medium publishing notes.txt
index d5df384..2decfb6 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/01 - 7 Best Note Taking Apps Without AI in 2026/Medium publishing notes.txt
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/01 - 7 Best Note Taking Apps Without AI in 2026/Medium publishing notes.txt
@@ -81,7 +81,7 @@ How to publish:
2. Re-upload each image from this folder at its place (Medium does not keep pasted Word images reliably).
3. Check that the bullet lists and the Sources links survived the paste.
4. Story settings > Advanced: if this article is also published on the Atomic Notes website, set the canonical link to:
- https://atomic-notes-community.vercel.app/blog/best-note-taking-apps-without-ai
+ https://atomic-notes.devbehindyou.com/blog/best-note-taking-apps-without-ai
Otherwise leave the canonical link empty.
The .md file is the source of truth. It passes the blog pipeline validator:
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/01 - 7 Best Note Taking Apps Without AI in 2026/best-note-taking-apps-without-ai.md b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/01 - 7 Best Note Taking Apps Without AI in 2026/best-note-taking-apps-without-ai.md
index bfd8523..dffd9e3 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/01 - 7 Best Note Taking Apps Without AI in 2026/best-note-taking-apps-without-ai.md
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/01 - 7 Best Note Taking Apps Without AI in 2026/best-note-taking-apps-without-ai.md
@@ -12,7 +12,7 @@ tags: ["no-ai", "notes-app", "privacy", "offline", "comparison"]
draft: false
coverImage: "01-banner.png"
coverAlt: "Banner reading 7 Best Note Taking Apps Without AI, with a ranked list led by Atomic Notes"
-canonical: "https://atomic-notes-community.vercel.app/blog/best-note-taking-apps-without-ai"
+canonical: "https://atomic-notes.devbehindyou.com/blog/best-note-taking-apps-without-ai"
keywords: "note taking app without AI, notes app without AI, no AI notes app, AI free note taking app, simple notes app, private notes app, no AI productivity app, offline notes app, privacy focused note taking"
readingTime: "6 min read"
---
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/02 - 7 Best Privacy First Note Taking Apps for Android in 2026/Medium publishing notes.txt b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/02 - 7 Best Privacy First Note Taking Apps for Android in 2026/Medium publishing notes.txt
index 85ac821..45a72e1 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/02 - 7 Best Privacy First Note Taking Apps for Android in 2026/Medium publishing notes.txt
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/02 - 7 Best Privacy First Note Taking Apps for Android in 2026/Medium publishing notes.txt
@@ -56,7 +56,7 @@ Cover image: 01-banner.png (Medium uses the first image as the preview).
Sources (listed after the article, under "Sources"):
Atomic Notes privacy policy
- https://atomic-notes-community.vercel.app/privacy
+ https://atomic-notes.devbehindyou.com/privacy
Atomic Notes source code and releases
https://github.com/DevBehindYou/Atomic-Notes-App-V0.2
SilentNotes on GitHub
@@ -81,7 +81,7 @@ How to publish:
2. Re-upload each image from this folder at its place (Medium does not keep pasted Word images reliably).
3. Check that the bullet lists and the Sources links survived the paste.
4. Story settings > Advanced: if this article is also published on the Atomic Notes website, set the canonical link to:
- https://atomic-notes-community.vercel.app/blog/best-privacy-first-notes-apps-android
+ https://atomic-notes.devbehindyou.com/blog/best-privacy-first-notes-apps-android
Otherwise leave the canonical link empty.
The .md file is the source of truth. It passes the blog pipeline validator:
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/02 - 7 Best Privacy First Note Taking Apps for Android in 2026/best-privacy-first-notes-apps-android.md b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/02 - 7 Best Privacy First Note Taking Apps for Android in 2026/best-privacy-first-notes-apps-android.md
index 50ad8e9..64a2910 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/02 - 7 Best Privacy First Note Taking Apps for Android in 2026/best-privacy-first-notes-apps-android.md
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/02 - 7 Best Privacy First Note Taking Apps for Android in 2026/best-privacy-first-notes-apps-android.md
@@ -12,7 +12,7 @@ tags: ["android", "privacy", "notes-app", "encryption", "comparison"]
draft: false
coverImage: "01-banner.png"
coverAlt: "Banner reading 7 Best Privacy First Notes Apps for Android, with a ranked list led by Atomic Notes"
-canonical: "https://atomic-notes-community.vercel.app/blog/best-privacy-first-notes-apps-android"
+canonical: "https://atomic-notes.devbehindyou.com/blog/best-privacy-first-notes-apps-android"
keywords: "private notes app Android, privacy first notes app, private note taking app Android, secure notes app Android, encrypted notes Android, privacy focused notes app, best private notes app, no tracking notes app, open source notes app Android"
readingTime: "6 min read"
---
@@ -157,7 +157,7 @@ Not always. If notes never leave the phone, the app lock and Android's own devic
## Sources
-- [Atomic Notes privacy policy](https://atomic-notes-community.vercel.app/privacy)
+- [Atomic Notes privacy policy](https://atomic-notes.devbehindyou.com/privacy)
- [Atomic Notes source code and releases](https://github.com/DevBehindYou/Atomic-Notes-App-V0.2)
- [SilentNotes on GitHub](https://github.com/martinstoeckli/SilentNotes)
- [CypherLeaf on F-Droid](https://f-droid.org/en/packages/io.gitlab.jrock902.cypherleaf/)
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/03 - 7 Best Google Keep Alternatives for Privacy in 2026/Medium publishing notes.txt b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/03 - 7 Best Google Keep Alternatives for Privacy in 2026/Medium publishing notes.txt
index fbc3e35..6cae376 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/03 - 7 Best Google Keep Alternatives for Privacy in 2026/Medium publishing notes.txt
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/03 - 7 Best Google Keep Alternatives for Privacy in 2026/Medium publishing notes.txt
@@ -56,7 +56,7 @@ Cover image: 01-banner.png (Medium uses the first image as the preview).
Sources (listed after the article, under "Sources"):
Atomic Notes privacy policy
- https://atomic-notes-community.vercel.app/privacy
+ https://atomic-notes.devbehindyou.com/privacy
Atomic Notes source code and releases
https://github.com/DevBehindYou/Atomic-Notes-App-V0.2
NotallyX on GitHub
@@ -83,7 +83,7 @@ How to publish:
2. Re-upload each image from this folder at its place (Medium does not keep pasted Word images reliably).
3. Check that the bullet lists and the Sources links survived the paste.
4. Story settings > Advanced: if this article is also published on the Atomic Notes website, set the canonical link to:
- https://atomic-notes-community.vercel.app/blog/best-google-keep-alternatives-privacy
+ https://atomic-notes.devbehindyou.com/blog/best-google-keep-alternatives-privacy
Otherwise leave the canonical link empty.
The .md file is the source of truth. It passes the blog pipeline validator:
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/03 - 7 Best Google Keep Alternatives for Privacy in 2026/best-google-keep-alternatives-privacy.md b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/03 - 7 Best Google Keep Alternatives for Privacy in 2026/best-google-keep-alternatives-privacy.md
index 5e78fc4..aff7ef8 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/03 - 7 Best Google Keep Alternatives for Privacy in 2026/best-google-keep-alternatives-privacy.md
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/03 - 7 Best Google Keep Alternatives for Privacy in 2026/best-google-keep-alternatives-privacy.md
@@ -12,7 +12,7 @@ tags: ["google-keep", "privacy", "notes-app", "android", "comparison"]
draft: false
coverImage: "01-banner.png"
coverAlt: "Banner reading 7 Best Google Keep Alternatives for Privacy, with a ranked list led by Atomic Notes"
-canonical: "https://atomic-notes-community.vercel.app/blog/best-google-keep-alternatives-privacy"
+canonical: "https://atomic-notes.devbehindyou.com/blog/best-google-keep-alternatives-privacy"
keywords: "Google Keep alternatives, private Google Keep alternative, Google Keep alternative Android, open source Google Keep alternative, encrypted Google Keep alternative, offline Google Keep alternative, privacy focused notes app, Google Keep replacement, self hosted Google Keep alternative"
readingTime: "6 min read"
---
@@ -157,7 +157,7 @@ Yes. Export your notes with Google Takeout, then import the archive into Notally
## Sources
-- [Atomic Notes privacy policy](https://atomic-notes-community.vercel.app/privacy)
+- [Atomic Notes privacy policy](https://atomic-notes.devbehindyou.com/privacy)
- [Atomic Notes source code and releases](https://github.com/DevBehindYou/Atomic-Notes-App-V0.2)
- [NotallyX on GitHub](https://github.com/Crustack/NotallyX)
- [NotallyX FAQ](https://github.com/Crustack/NotallyX/blob/main/documentation/docs/faq.md)
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/04 - 6 Best Local First Note Taking Apps in 2026/Medium publishing notes.txt b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/04 - 6 Best Local First Note Taking Apps in 2026/Medium publishing notes.txt
index 68d9273..e3855e2 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/04 - 6 Best Local First Note Taking Apps in 2026/Medium publishing notes.txt
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/04 - 6 Best Local First Note Taking Apps in 2026/Medium publishing notes.txt
@@ -79,7 +79,7 @@ How to publish:
2. Re-upload each image from this folder at its place (Medium does not keep pasted Word images reliably).
3. Check that the bullet lists and the Sources links survived the paste.
4. Story settings > Advanced: if this article is also published on the Atomic Notes website, set the canonical link to:
- https://atomic-notes-community.vercel.app/blog/best-local-first-note-taking-apps
+ https://atomic-notes.devbehindyou.com/blog/best-local-first-note-taking-apps
Otherwise leave the canonical link empty.
The .md file is the source of truth. It passes the blog pipeline validator:
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/04 - 6 Best Local First Note Taking Apps in 2026/best-local-first-note-taking-apps.md b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/04 - 6 Best Local First Note Taking Apps in 2026/best-local-first-note-taking-apps.md
index d28e8ea..b5fbcfd 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/04 - 6 Best Local First Note Taking Apps in 2026/best-local-first-note-taking-apps.md
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/04 - 6 Best Local First Note Taking Apps in 2026/best-local-first-note-taking-apps.md
@@ -12,7 +12,7 @@ tags: ["local-first", "notes-app", "offline", "privacy", "comparison"]
draft: false
coverImage: "01-banner.png"
coverAlt: "Banner reading 6 Best Local First Note Taking Apps, with a ranked list led by Atomic Notes"
-canonical: "https://atomic-notes-community.vercel.app/blog/best-local-first-note-taking-apps"
+canonical: "https://atomic-notes.devbehindyou.com/blog/best-local-first-note-taking-apps"
keywords: "best local first note taking apps, local first notes app, local first note taking, offline first notes app, local notes app, notes stored locally, user owned notes, privacy first note taking, local first software, offline note taking app"
readingTime: "6 min read"
---
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/05 - 5 Best End to End Encrypted Notes Apps in 2026/Medium publishing notes.txt b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/05 - 5 Best End to End Encrypted Notes Apps in 2026/Medium publishing notes.txt
index 3d515bc..5b9044f 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/05 - 5 Best End to End Encrypted Notes Apps in 2026/Medium publishing notes.txt
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/05 - 5 Best End to End Encrypted Notes Apps in 2026/Medium publishing notes.txt
@@ -54,7 +54,7 @@ Cover image: 01-banner.png (Medium uses the first image as the preview).
Sources (listed after the article, under "Sources"):
Atomic Notes privacy policy
- https://atomic-notes-community.vercel.app/privacy
+ https://atomic-notes.devbehindyou.com/privacy
Atomic Notes source code and releases
https://github.com/DevBehindYou/Atomic-Notes-App-V0.2
How Notesnook encrypts your data
@@ -79,7 +79,7 @@ How to publish:
2. Re-upload each image from this folder at its place (Medium does not keep pasted Word images reliably).
3. Check that the bullet lists and the Sources links survived the paste.
4. Story settings > Advanced: if this article is also published on the Atomic Notes website, set the canonical link to:
- https://atomic-notes-community.vercel.app/blog/best-end-to-end-encrypted-notes-apps
+ https://atomic-notes.devbehindyou.com/blog/best-end-to-end-encrypted-notes-apps
Otherwise leave the canonical link empty.
The .md file is the source of truth. It passes the blog pipeline validator:
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/05 - 5 Best End to End Encrypted Notes Apps in 2026/best-end-to-end-encrypted-notes-apps.md b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/05 - 5 Best End to End Encrypted Notes Apps in 2026/best-end-to-end-encrypted-notes-apps.md
index 7cabf06..7df9309 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/05 - 5 Best End to End Encrypted Notes Apps in 2026/best-end-to-end-encrypted-notes-apps.md
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/05 - 5 Best End to End Encrypted Notes Apps in 2026/best-end-to-end-encrypted-notes-apps.md
@@ -12,7 +12,7 @@ tags: ["encryption", "e2ee", "privacy", "notes-app", "comparison"]
draft: false
coverImage: "01-banner.png"
coverAlt: "Banner reading 5 Best End to End Encrypted Notes Apps, with a ranked list led by Atomic Notes"
-canonical: "https://atomic-notes-community.vercel.app/blog/best-end-to-end-encrypted-notes-apps"
+canonical: "https://atomic-notes.devbehindyou.com/blog/best-end-to-end-encrypted-notes-apps"
keywords: "best encrypted notes apps, end to end encrypted notes, encrypted notes app, E2EE notes app, private encrypted notes, secure note taking app, zero knowledge notes app, encrypted notes Android, private notes app"
readingTime: "6 min read"
---
@@ -147,7 +147,7 @@ Barely. Modern phones encrypt a note in a blink. The real cost shows up in setup
## Sources
-- [Atomic Notes privacy policy](https://atomic-notes-community.vercel.app/privacy)
+- [Atomic Notes privacy policy](https://atomic-notes.devbehindyou.com/privacy)
- [Atomic Notes source code and releases](https://github.com/DevBehindYou/Atomic-Notes-App-V0.2)
- [How Notesnook encrypts your data](https://notesnook.com/help/how-is-my-data-encrypted)
- [Standard Notes encryption whitepaper](https://standardnotes.com/help/security/encryption)
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/06 - 8 Best Offline Notes Apps for Android in 2026/Medium publishing notes.txt b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/06 - 8 Best Offline Notes Apps for Android in 2026/Medium publishing notes.txt
index 8660354..707866b 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/06 - 8 Best Offline Notes Apps for Android in 2026/Medium publishing notes.txt
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/06 - 8 Best Offline Notes Apps for Android in 2026/Medium publishing notes.txt
@@ -80,7 +80,7 @@ How to publish:
2. Re-upload each image from this folder at its place (Medium does not keep pasted Word images reliably).
3. Check that the bullet lists and the Sources links survived the paste.
4. Story settings > Advanced: if this article is also published on the Atomic Notes website, set the canonical link to:
- https://atomic-notes-community.vercel.app/blog/best-offline-notes-apps-android
+ https://atomic-notes.devbehindyou.com/blog/best-offline-notes-apps-android
Otherwise leave the canonical link empty.
The .md file is the source of truth. It passes the blog pipeline validator:
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/06 - 8 Best Offline Notes Apps for Android in 2026/best-offline-notes-apps-android.md b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/06 - 8 Best Offline Notes Apps for Android in 2026/best-offline-notes-apps-android.md
index 02f3e03..7d75a42 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/06 - 8 Best Offline Notes Apps for Android in 2026/best-offline-notes-apps-android.md
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/06 - 8 Best Offline Notes Apps for Android in 2026/best-offline-notes-apps-android.md
@@ -12,7 +12,7 @@ tags: ["android", "offline", "notes-app", "local-first", "comparison"]
draft: false
coverImage: "01-banner.png"
coverAlt: "Banner reading 8 Best Offline Notes Apps for Android, with a ranked list led by Atomic Notes"
-canonical: "https://atomic-notes-community.vercel.app/blog/best-offline-notes-apps-android"
+canonical: "https://atomic-notes.devbehindyou.com/blog/best-offline-notes-apps-android"
keywords: "best offline notes app Android, offline notes app, offline note taking app Android, notes app without internet, Android notes offline, local notes Android, notes app without account, offline notebook app, best notes app without internet"
readingTime: "6 min read"
---
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/07 - 3 Best Private Notion Alternatives in 2026/Medium publishing notes.txt b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/07 - 3 Best Private Notion Alternatives in 2026/Medium publishing notes.txt
index e654241..5955bcc 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/07 - 3 Best Private Notion Alternatives in 2026/Medium publishing notes.txt
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/07 - 3 Best Private Notion Alternatives in 2026/Medium publishing notes.txt
@@ -54,7 +54,7 @@ Sources (listed after the article, under "Sources"):
Atomic Notes source code and releases
https://github.com/DevBehindYou/Atomic-Notes-App-V0.2
Atomic Notes privacy policy
- https://atomic-notes-community.vercel.app/privacy
+ https://atomic-notes.devbehindyou.com/privacy
Anytype desktop client on GitHub
https://github.com/anyproto/anytype-ts
Anytype Android client on GitHub
@@ -75,7 +75,7 @@ How to publish:
2. Re-upload each image from this folder at its place (Medium does not keep pasted Word images reliably).
3. Check that the bullet lists and the Sources links survived the paste.
4. Story settings > Advanced: if this article is also published on the Atomic Notes website, set the canonical link to:
- https://atomic-notes-community.vercel.app/blog/private-local-first-notion-alternatives
+ https://atomic-notes.devbehindyou.com/blog/private-local-first-notion-alternatives
Otherwise leave the canonical link empty.
The .md file is the source of truth. It passes the blog pipeline validator:
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/07 - 3 Best Private Notion Alternatives in 2026/private-local-first-notion-alternatives.md b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/07 - 3 Best Private Notion Alternatives in 2026/private-local-first-notion-alternatives.md
index d780655..f8046da 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/07 - 3 Best Private Notion Alternatives in 2026/private-local-first-notion-alternatives.md
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 02/07 - 3 Best Private Notion Alternatives in 2026/private-local-first-notion-alternatives.md
@@ -12,7 +12,7 @@ tags: ["notion-alternative", "local-first", "privacy", "productivity", "comparis
draft: false
coverImage: "01-banner.png"
coverAlt: "Banner reading 3 Best Private Notion Alternatives, with a ranked list led by Atomic Notes"
-canonical: "https://atomic-notes-community.vercel.app/blog/private-local-first-notion-alternatives"
+canonical: "https://atomic-notes.devbehindyou.com/blog/private-local-first-notion-alternatives"
keywords: "private Notion alternatives, local first Notion alternative, private alternative to Notion, offline Notion alternative, open source Notion alternative, encrypted Notion alternative, privacy focused productivity app, local notes alternative to Notion, Notion alternative without AI"
readingTime: "6 min read"
---
@@ -129,7 +129,7 @@ Some are. AppFlowy and Anytype both support shared workspaces. Atomic Notes is p
## Sources
- [Atomic Notes source code and releases](https://github.com/DevBehindYou/Atomic-Notes-App-V0.2)
-- [Atomic Notes privacy policy](https://atomic-notes-community.vercel.app/privacy)
+- [Atomic Notes privacy policy](https://atomic-notes.devbehindyou.com/privacy)
- [Anytype desktop client on GitHub](https://github.com/anyproto/anytype-ts)
- [Anytype Android client on GitHub](https://github.com/anyproto/anytype-kotlin)
- [any-sync protocol on GitHub](https://github.com/anyproto/any-sync)
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/01 - 10 Privacy Mistakes People Make With Notes Apps in 2026/10-notes-app-privacy-mistakes-2026.md b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/01 - 10 Privacy Mistakes People Make With Notes Apps in 2026/10-notes-app-privacy-mistakes-2026.md
index 914991a..21e787d 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/01 - 10 Privacy Mistakes People Make With Notes Apps in 2026/10-notes-app-privacy-mistakes-2026.md
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/01 - 10 Privacy Mistakes People Make With Notes Apps in 2026/10-notes-app-privacy-mistakes-2026.md
@@ -12,7 +12,7 @@ tags: ["privacy", "notes-app", "security", "checklist", "data-ownership"]
draft: false
coverImage: "01-banner.png"
coverAlt: "Banner reading 10 Privacy Mistakes People Make With Notes Apps, with ten numbered warning tiles"
-canonical: "https://atomic-notes-community.vercel.app/blog/10-notes-app-privacy-mistakes-2026"
+canonical: "https://atomic-notes.devbehindyou.com/blog/10-notes-app-privacy-mistakes-2026"
keywords: "notes app privacy mistakes, notes app security mistakes, note taking privacy, private notes security, password storage risk, recovery phrase security, notes app permissions, AI notes privacy, data backup, end to end encryption, APK security, data ownership, cloud notes privacy"
readingTime: "7 min read"
---
@@ -167,4 +167,4 @@ Slightly. Notes app security mistakes let someone break in, like reused password
- [AI (and other) companies: quietly changing your terms of service could be unfair or deceptive, FTC, February 13, 2024](https://www.ftc.gov/policy/advocacy-research/tech-at-ftc/2024/02/ai-other-companies-quietly-changing-your-terms-service-could-be-unfair-or-deceptive)
- [Install unknown apps, Android Developers](https://developer.android.com/distribute/marketing-tools/alternative-distribution)
- [apksigner, Android Developers](https://developer.android.com/tools/apksigner)
-- [Atomic Notes privacy policy](https://atomic-notes-community.vercel.app/privacy)
+- [Atomic Notes privacy policy](https://atomic-notes.devbehindyou.com/privacy)
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/01 - 10 Privacy Mistakes People Make With Notes Apps in 2026/Medium publishing notes.txt b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/01 - 10 Privacy Mistakes People Make With Notes Apps in 2026/Medium publishing notes.txt
index 5ab77c9..ec8c99c 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/01 - 10 Privacy Mistakes People Make With Notes Apps in 2026/Medium publishing notes.txt
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/01 - 10 Privacy Mistakes People Make With Notes Apps in 2026/Medium publishing notes.txt
@@ -60,14 +60,14 @@ Sources (listed after the article, under "Sources"):
apksigner, Android Developers
https://developer.android.com/tools/apksigner
Atomic Notes privacy policy
- https://atomic-notes-community.vercel.app/privacy
+ https://atomic-notes.devbehindyou.com/privacy
How to publish:
1. Open "Medium article.docx", select all and copy, then paste into a new Medium story.
2. Re-upload each image from this folder at its place (Medium does not keep pasted Word images reliably).
3. Check that the bullet lists and the Sources links survived the paste.
4. Story settings > Advanced: if this article is also published on the Atomic Notes website, set the canonical link to:
- https://atomic-notes-community.vercel.app/blog/10-notes-app-privacy-mistakes-2026
+ https://atomic-notes.devbehindyou.com/blog/10-notes-app-privacy-mistakes-2026
Otherwise leave the canonical link empty.
The .md file is the source of truth. It passes the blog pipeline validator:
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/02 - 5 Dangers of Storing Passwords in a Notes App/5-risks-storing-passwords-in-notes-app.md b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/02 - 5 Dangers of Storing Passwords in a Notes App/5-risks-storing-passwords-in-notes-app.md
index 9dfe0c6..7f24611 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/02 - 5 Dangers of Storing Passwords in a Notes App/5-risks-storing-passwords-in-notes-app.md
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/02 - 5 Dangers of Storing Passwords in a Notes App/5-risks-storing-passwords-in-notes-app.md
@@ -12,7 +12,7 @@ tags: ["passwords", "security", "notes-app", "privacy", "password-manager"]
draft: false
coverImage: "01-banner.png"
coverAlt: "Banner reading 5 Dangers of Storing Passwords in Notes, with one note connected to five account icons"
-canonical: "https://atomic-notes-community.vercel.app/blog/5-risks-storing-passwords-in-notes-app"
+canonical: "https://atomic-notes.devbehindyou.com/blog/5-risks-storing-passwords-in-notes-app"
keywords: "storing passwords in notes app, is it safe to store passwords in notes, secure password storage, password security, notes app security, credential theft, account takeover, identity theft, password manager, credential reuse attack, financial account security, recovery email compromise, plaintext passwords"
readingTime: "7 min read"
---
@@ -160,4 +160,4 @@ If you must, keep it short-lived. Use end-to-end encryption and an app lock, nev
- [Use strong passwords, CISA](https://www.cisa.gov/secure-our-world/use-strong-passwords)
- [Credential stuffing, OWASP](https://community.owasp.org/attacks/Credential_stuffing)
- [Notice of recent security incident, LastPass, December 22, 2022](https://blog.lastpass.com/posts/notice-of-recent-security-incident)
-- [Atomic Notes privacy policy](https://atomic-notes-community.vercel.app/privacy)
+- [Atomic Notes privacy policy](https://atomic-notes.devbehindyou.com/privacy)
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/02 - 5 Dangers of Storing Passwords in a Notes App/Medium publishing notes.txt b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/02 - 5 Dangers of Storing Passwords in a Notes App/Medium publishing notes.txt
index 7302b01..3978886 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/02 - 5 Dangers of Storing Passwords in a Notes App/Medium publishing notes.txt
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/02 - 5 Dangers of Storing Passwords in a Notes App/Medium publishing notes.txt
@@ -56,14 +56,14 @@ Sources (listed after the article, under "Sources"):
Notice of recent security incident, LastPass, December 22, 2022
https://blog.lastpass.com/posts/notice-of-recent-security-incident
Atomic Notes privacy policy
- https://atomic-notes-community.vercel.app/privacy
+ https://atomic-notes.devbehindyou.com/privacy
How to publish:
1. Open "Medium article.docx", select all and copy, then paste into a new Medium story.
2. Re-upload each image from this folder at its place (Medium does not keep pasted Word images reliably).
3. Check that the bullet lists and the Sources links survived the paste.
4. Story settings > Advanced: if this article is also published on the Atomic Notes website, set the canonical link to:
- https://atomic-notes-community.vercel.app/blog/5-risks-storing-passwords-in-notes-app
+ https://atomic-notes.devbehindyou.com/blog/5-risks-storing-passwords-in-notes-app
Otherwise leave the canonical link empty.
The .md file is the source of truth. It passes the blog pipeline validator:
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/03 - 6 Questions Before Giving an AI Notes App Your Thoughts/6-privacy-questions-ai-notes-app.md b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/03 - 6 Questions Before Giving an AI Notes App Your Thoughts/6-privacy-questions-ai-notes-app.md
index 4bc2469..879dfcc 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/03 - 6 Questions Before Giving an AI Notes App Your Thoughts/6-privacy-questions-ai-notes-app.md
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/03 - 6 Questions Before Giving an AI Notes App Your Thoughts/6-privacy-questions-ai-notes-app.md
@@ -12,7 +12,7 @@ tags: ["ai", "privacy", "notes-app", "data-retention", "no-ai"]
draft: false
coverImage: "01-banner.png"
coverAlt: "Banner reading 6 Questions Before an AI Reads Your Notes, with six question cards"
-canonical: "https://atomic-notes-community.vercel.app/blog/6-privacy-questions-ai-notes-app"
+canonical: "https://atomic-notes.devbehindyou.com/blog/6-privacy-questions-ai-notes-app"
keywords: "AI notes app privacy, AI note taking privacy, AI data privacy, AI notes security, AI data processing, private notes AI, generative AI privacy, AI training data, note content processing, AI data retention, third party AI provider, AI privacy settings, notes without AI"
readingTime: "7 min read"
---
@@ -144,4 +144,4 @@ Five things: when AI runs, where notes go, which providers receive them, how lon
- [AI (and other) companies: quietly changing your terms of service could be unfair or deceptive, FTC, February 13, 2024](https://www.ftc.gov/policy/advocacy-research/tech-at-ftc/2024/02/ai-other-companies-quietly-changing-your-terms-service-could-be-unfair-or-deceptive)
- [AI chat (off by default, remote providers blocked by default), Joplin documentation](https://github.com/laurent22/joplin/blob/dev/readme/apps/ai_chat.md)
-- [Atomic Notes privacy policy](https://atomic-notes-community.vercel.app/privacy)
+- [Atomic Notes privacy policy](https://atomic-notes.devbehindyou.com/privacy)
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/03 - 6 Questions Before Giving an AI Notes App Your Thoughts/Medium publishing notes.txt b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/03 - 6 Questions Before Giving an AI Notes App Your Thoughts/Medium publishing notes.txt
index df1f4c8..e65efe9 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/03 - 6 Questions Before Giving an AI Notes App Your Thoughts/Medium publishing notes.txt
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/03 - 6 Questions Before Giving an AI Notes App Your Thoughts/Medium publishing notes.txt
@@ -54,14 +54,14 @@ Sources (listed after the article, under "Sources"):
AI chat (off by default, remote providers blocked by default), Joplin documentation
https://github.com/laurent22/joplin/blob/dev/readme/apps/ai_chat.md
Atomic Notes privacy policy
- https://atomic-notes-community.vercel.app/privacy
+ https://atomic-notes.devbehindyou.com/privacy
How to publish:
1. Open "Medium article.docx", select all and copy, then paste into a new Medium story.
2. Re-upload each image from this folder at its place (Medium does not keep pasted Word images reliably).
3. Check that the bullet lists and the Sources links survived the paste.
4. Story settings > Advanced: if this article is also published on the Atomic Notes website, set the canonical link to:
- https://atomic-notes-community.vercel.app/blog/6-privacy-questions-ai-notes-app
+ https://atomic-notes.devbehindyou.com/blog/6-privacy-questions-ai-notes-app
Otherwise leave the canonical link empty.
The .md file is the source of truth. It passes the blog pipeline validator:
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/04 - 8 Pieces of Data a Notes App May Know About You/8-types-of-data-notes-apps-may-collect.md b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/04 - 8 Pieces of Data a Notes App May Know About You/8-types-of-data-notes-apps-may-collect.md
index 9ff1056..2089c78 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/04 - 8 Pieces of Data a Notes App May Know About You/8-types-of-data-notes-apps-may-collect.md
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/04 - 8 Pieces of Data a Notes App May Know About You/8-types-of-data-notes-apps-may-collect.md
@@ -12,7 +12,7 @@ tags: ["metadata", "privacy", "notes-app", "data-minimization", "tracking"]
draft: false
coverImage: "01-banner.png"
coverAlt: "Banner reading 8 Things a Notes App Knows Without Reading Your Notes, with an envelope showing metadata labels"
-canonical: "https://atomic-notes-community.vercel.app/blog/8-types-of-data-notes-apps-may-collect"
+canonical: "https://atomic-notes.devbehindyou.com/blog/8-types-of-data-notes-apps-may-collect"
keywords: "notes app data collection, notes app metadata, notes app tracking, metadata privacy, IP address tracking, device fingerprinting, login activity, sync metadata, usage analytics, device information, account metadata, data minimization, privacy telemetry"
readingTime: "7 min read"
---
@@ -163,4 +163,4 @@ Anything that builds a profile over time: behavior analytics, device fingerprint
- [Why metadata matters, Electronic Frontier Foundation](https://ssd.eff.org/module/why-metadata-matters)
- [Simple demographics often identify people uniquely, Latanya Sweeney, Carnegie Mellon University, 2000](https://dataprivacylab.org/projects/identifiability/)
-- [Atomic Notes privacy policy](https://atomic-notes-community.vercel.app/privacy)
+- [Atomic Notes privacy policy](https://atomic-notes.devbehindyou.com/privacy)
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/04 - 8 Pieces of Data a Notes App May Know About You/Medium publishing notes.txt b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/04 - 8 Pieces of Data a Notes App May Know About You/Medium publishing notes.txt
index a4b2269..37e1bc7 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/04 - 8 Pieces of Data a Notes App May Know About You/Medium publishing notes.txt
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/04 - 8 Pieces of Data a Notes App May Know About You/Medium publishing notes.txt
@@ -54,14 +54,14 @@ Sources (listed after the article, under "Sources"):
Simple demographics often identify people uniquely, Latanya Sweeney, Carnegie Mellon University, 2000
https://dataprivacylab.org/projects/identifiability/
Atomic Notes privacy policy
- https://atomic-notes-community.vercel.app/privacy
+ https://atomic-notes.devbehindyou.com/privacy
How to publish:
1. Open "Medium article.docx", select all and copy, then paste into a new Medium story.
2. Re-upload each image from this folder at its place (Medium does not keep pasted Word images reliably).
3. Check that the bullet lists and the Sources links survived the paste.
4. Story settings > Advanced: if this article is also published on the Atomic Notes website, set the canonical link to:
- https://atomic-notes-community.vercel.app/blog/8-types-of-data-notes-apps-may-collect
+ https://atomic-notes.devbehindyou.com/blog/8-types-of-data-notes-apps-may-collect
Otherwise leave the canonical link empty.
The .md file is the source of truth. It passes the blog pipeline validator:
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/05 - 4 Layers Behind Atomic Notes/4-layers-atomic-notes-architecture.md b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/05 - 4 Layers Behind Atomic Notes/4-layers-atomic-notes-architecture.md
index 22cba7d..cb01488 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/05 - 4 Layers Behind Atomic Notes/4-layers-atomic-notes-architecture.md
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/05 - 4 Layers Behind Atomic Notes/4-layers-atomic-notes-architecture.md
@@ -12,7 +12,7 @@ tags: ["architecture", "local-first", "encryption", "google-drive", "flutter"]
draft: false
coverImage: "01-banner.png"
coverAlt: "Banner reading 4 Layers Behind Atomic Notes, with a stacked diagram of phone, vault, server and Google Drive"
-canonical: "https://atomic-notes-community.vercel.app/blog/4-layers-atomic-notes-architecture"
+canonical: "https://atomic-notes.devbehindyou.com/blog/4-layers-atomic-notes-architecture"
keywords: "local first notes architecture, Atomic Notes architecture, local first app architecture, Flutter notes app, Hive local storage, Google Drive notes sync, MongoDB metadata, client side encryption, local first software, offline first architecture, end to end encrypted notes, notes synchronization architecture, user owned cloud storage"
readingTime: "7 min read"
---
@@ -144,6 +144,6 @@ A cloud notes app keeps the primary copy on company servers. The Atomic Notes ar
## Sources
- [Atomic Notes source code and releases](https://github.com/DevBehindYou/Atomic-Notes-App-V0.2)
-- [Atomic Notes privacy policy](https://atomic-notes-community.vercel.app/privacy)
+- [Atomic Notes privacy policy](https://atomic-notes.devbehindyou.com/privacy)
- [Choose Google Drive API scopes (drive.file), Google for Developers](https://developers.google.com/workspace/drive/api/guides/api-specific-auth)
- [Local-first software, Ink & Switch](https://www.inkandswitch.com/essay/local-first/)
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/05 - 4 Layers Behind Atomic Notes/Medium publishing notes.txt b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/05 - 4 Layers Behind Atomic Notes/Medium publishing notes.txt
index bc7939e..4c70eb8 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/05 - 4 Layers Behind Atomic Notes/Medium publishing notes.txt
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/05 - 4 Layers Behind Atomic Notes/Medium publishing notes.txt
@@ -52,7 +52,7 @@ Sources (listed after the article, under "Sources"):
Atomic Notes source code and releases
https://github.com/DevBehindYou/Atomic-Notes-App-V0.2
Atomic Notes privacy policy
- https://atomic-notes-community.vercel.app/privacy
+ https://atomic-notes.devbehindyou.com/privacy
Choose Google Drive API scopes (drive.file), Google for Developers
https://developers.google.com/workspace/drive/api/guides/api-specific-auth
Local-first software, Ink & Switch
@@ -63,7 +63,7 @@ How to publish:
2. Re-upload each image from this folder at its place (Medium does not keep pasted Word images reliably).
3. Check that the bullet lists and the Sources links survived the paste.
4. Story settings > Advanced: if this article is also published on the Atomic Notes website, set the canonical link to:
- https://atomic-notes-community.vercel.app/blog/4-layers-atomic-notes-architecture
+ https://atomic-notes.devbehindyou.com/blog/4-layers-atomic-notes-architecture
Otherwise leave the canonical link empty.
The .md file is the source of truth. It passes the blog pipeline validator:
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/06 - 9 Privacy Red Flags Before Trusting Any Notes App/9-notes-app-privacy-red-flags.md b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/06 - 9 Privacy Red Flags Before Trusting Any Notes App/9-notes-app-privacy-red-flags.md
index 4270f56..542b3a3 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/06 - 9 Privacy Red Flags Before Trusting Any Notes App/9-notes-app-privacy-red-flags.md
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/06 - 9 Privacy Red Flags Before Trusting Any Notes App/9-notes-app-privacy-red-flags.md
@@ -12,7 +12,7 @@ tags: ["privacy", "notes-app", "checklist", "encryption", "tracking"]
draft: false
coverImage: "01-banner.png"
coverAlt: "Banner reading 9 Privacy Red Flags Before Trusting a Notes App, with nine red flag markers"
-canonical: "https://atomic-notes-community.vercel.app/blog/9-notes-app-privacy-red-flags"
+canonical: "https://atomic-notes.devbehindyou.com/blog/9-notes-app-privacy-red-flags"
keywords: "private notes app, privacy focused notes app, secure notes app, notes app encryption, notes app permissions, data ownership, third party tracking, offline notes app, notes app telemetry, cloud notes privacy, open source notes app, AI notes privacy, data export options"
readingTime: "7 min read"
---
@@ -179,4 +179,4 @@ Yes. Privacy depends on who holds the key and what the server can see. A private
- [What Exodus Privacy does, Exodus Privacy](https://exodus-privacy.eu.org/en/page/what/)
- [FTC enforcement action against GoodRx, February 2023](https://www.ftc.gov/news-events/news/press-releases/2023/02/ftc-enforcement-action-bar-goodrx-sharing-consumers-sensitive-health-info-advertising)
- [Right to data portability, GDPR Article 20](https://gdpr-info.eu/art-20-gdpr/)
-- [Atomic Notes privacy policy](https://atomic-notes-community.vercel.app/privacy)
+- [Atomic Notes privacy policy](https://atomic-notes.devbehindyou.com/privacy)
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/06 - 9 Privacy Red Flags Before Trusting Any Notes App/Medium publishing notes.txt b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/06 - 9 Privacy Red Flags Before Trusting Any Notes App/Medium publishing notes.txt
index 82ca921..ec79011 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/06 - 9 Privacy Red Flags Before Trusting Any Notes App/Medium publishing notes.txt
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/06 - 9 Privacy Red Flags Before Trusting Any Notes App/Medium publishing notes.txt
@@ -56,14 +56,14 @@ Sources (listed after the article, under "Sources"):
Right to data portability, GDPR Article 20
https://gdpr-info.eu/art-20-gdpr/
Atomic Notes privacy policy
- https://atomic-notes-community.vercel.app/privacy
+ https://atomic-notes.devbehindyou.com/privacy
How to publish:
1. Open "Medium article.docx", select all and copy, then paste into a new Medium story.
2. Re-upload each image from this folder at its place (Medium does not keep pasted Word images reliably).
3. Check that the bullet lists and the Sources links survived the paste.
4. Story settings > Advanced: if this article is also published on the Atomic Notes website, set the canonical link to:
- https://atomic-notes-community.vercel.app/blog/9-notes-app-privacy-red-flags
+ https://atomic-notes.devbehindyou.com/blog/9-notes-app-privacy-red-flags
Otherwise leave the canonical link empty.
The .md file is the source of truth. It passes the blog pipeline validator:
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/07 - 7 Ways Your Notes App Could Expose You/7-ways-notes-apps-can-expose-your-data.md b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/07 - 7 Ways Your Notes App Could Expose You/7-ways-notes-apps-can-expose-your-data.md
index cb18d05..8a2fcf6 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/07 - 7 Ways Your Notes App Could Expose You/7-ways-notes-apps-can-expose-your-data.md
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/07 - 7 Ways Your Notes App Could Expose You/7-ways-notes-apps-can-expose-your-data.md
@@ -12,7 +12,7 @@ tags: ["privacy", "notes-app", "security", "tracking", "backups"]
draft: false
coverImage: "01-banner.png"
coverAlt: "Banner reading 7 Ways Your Notes App Could Expose You, with a note at the center and seven paths leading out"
-canonical: "https://atomic-notes-community.vercel.app/blog/7-ways-notes-apps-can-expose-your-data"
+canonical: "https://atomic-notes.devbehindyou.com/blog/7-ways-notes-apps-can-expose-your-data"
keywords: "notes app privacy, private notes app, note taking app security, notes app data privacy, secure note taking, cloud notes security, third party trackers, app telemetry, notes app analytics, AI data processing, unencrypted backups, personal data exposure, digital privacy risks"
readingTime: "7 min read"
---
@@ -151,4 +151,4 @@ Only part of it. End-to-end encryption protects note content, but telemetry, tra
- [What Exodus Privacy does, Exodus Privacy](https://exodus-privacy.eu.org/en/page/what/)
- [iCloud data security overview, Apple Support](https://support.apple.com/en-us/102651)
- [Why metadata matters, Electronic Frontier Foundation](https://ssd.eff.org/module/why-metadata-matters)
-- [Atomic Notes privacy policy](https://atomic-notes-community.vercel.app/privacy)
+- [Atomic Notes privacy policy](https://atomic-notes.devbehindyou.com/privacy)
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/07 - 7 Ways Your Notes App Could Expose You/Medium publishing notes.txt b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/07 - 7 Ways Your Notes App Could Expose You/Medium publishing notes.txt
index edbe51b..aab7cd0 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/07 - 7 Ways Your Notes App Could Expose You/Medium publishing notes.txt
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/07 - 7 Ways Your Notes App Could Expose You/Medium publishing notes.txt
@@ -58,14 +58,14 @@ Sources (listed after the article, under "Sources"):
Why metadata matters, Electronic Frontier Foundation
https://ssd.eff.org/module/why-metadata-matters
Atomic Notes privacy policy
- https://atomic-notes-community.vercel.app/privacy
+ https://atomic-notes.devbehindyou.com/privacy
How to publish:
1. Open "Medium article.docx", select all and copy, then paste into a new Medium story.
2. Re-upload each image from this folder at its place (Medium does not keep pasted Word images reliably).
3. Check that the bullet lists and the Sources links survived the paste.
4. Story settings > Advanced: if this article is also published on the Atomic Notes website, set the canonical link to:
- https://atomic-notes-community.vercel.app/blog/7-ways-notes-apps-can-expose-your-data
+ https://atomic-notes.devbehindyou.com/blog/7-ways-notes-apps-can-expose-your-data
Otherwise leave the canonical link empty.
The .md file is the source of truth. It passes the blog pipeline validator:
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/08 - 5 Reasons Encrypted Is Not Private/5-reasons-encryption-does-not-guarantee-notes-privacy.md b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/08 - 5 Reasons Encrypted Is Not Private/5-reasons-encryption-does-not-guarantee-notes-privacy.md
index 9bfd0ec..71b459c 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/08 - 5 Reasons Encrypted Is Not Private/5-reasons-encryption-does-not-guarantee-notes-privacy.md
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/08 - 5 Reasons Encrypted Is Not Private/5-reasons-encryption-does-not-guarantee-notes-privacy.md
@@ -12,7 +12,7 @@ tags: ["encryption", "e2ee", "privacy", "notes-app", "metadata"]
draft: false
coverImage: "01-banner.png"
coverAlt: "Banner reading Encrypted Is Not the Same as Private, with a padlock and five warning labels"
-canonical: "https://atomic-notes-community.vercel.app/blog/5-reasons-encryption-does-not-guarantee-notes-privacy"
+canonical: "https://atomic-notes.devbehindyou.com/blog/5-reasons-encryption-does-not-guarantee-notes-privacy"
keywords: "encrypted notes privacy, encrypted notes app, end to end encrypted notes, E2EE notes, transport encryption, encryption at rest, client side encryption, zero knowledge encryption, encryption keys, metadata privacy, HTTPS encryption, server side encryption, private note taking"
readingTime: "7 min read"
---
@@ -153,4 +153,4 @@ Not automatically. Phone backups and exports often sit outside the app's encrypt
- [iCloud data security overview, Apple Support](https://support.apple.com/en-us/102651)
- [Notice of recent security incident, LastPass, December 22, 2022](https://blog.lastpass.com/posts/notice-of-recent-security-incident)
- [What Exodus Privacy does, Exodus Privacy](https://exodus-privacy.eu.org/en/page/what/)
-- [Atomic Notes privacy policy](https://atomic-notes-community.vercel.app/privacy)
+- [Atomic Notes privacy policy](https://atomic-notes.devbehindyou.com/privacy)
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/08 - 5 Reasons Encrypted Is Not Private/Medium publishing notes.txt b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/08 - 5 Reasons Encrypted Is Not Private/Medium publishing notes.txt
index 39c1506..71d1575 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/08 - 5 Reasons Encrypted Is Not Private/Medium publishing notes.txt
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/08 - 5 Reasons Encrypted Is Not Private/Medium publishing notes.txt
@@ -56,14 +56,14 @@ Sources (listed after the article, under "Sources"):
What Exodus Privacy does, Exodus Privacy
https://exodus-privacy.eu.org/en/page/what/
Atomic Notes privacy policy
- https://atomic-notes-community.vercel.app/privacy
+ https://atomic-notes.devbehindyou.com/privacy
How to publish:
1. Open "Medium article.docx", select all and copy, then paste into a new Medium story.
2. Re-upload each image from this folder at its place (Medium does not keep pasted Word images reliably).
3. Check that the bullet lists and the Sources links survived the paste.
4. Story settings > Advanced: if this article is also published on the Atomic Notes website, set the canonical link to:
- https://atomic-notes-community.vercel.app/blog/5-reasons-encryption-does-not-guarantee-notes-privacy
+ https://atomic-notes.devbehindyou.com/blog/5-reasons-encryption-does-not-guarantee-notes-privacy
Otherwise leave the canonical link empty.
The .md file is the source of truth. It passes the blog pipeline validator:
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/09 - 3 Places Your Notes Can Live/3-ways-notes-apps-store-your-data.md b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/09 - 3 Places Your Notes Can Live/3-ways-notes-apps-store-your-data.md
index 8a9a1a2..756e996 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/09 - 3 Places Your Notes Can Live/3-ways-notes-apps-store-your-data.md
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/09 - 3 Places Your Notes Can Live/3-ways-notes-apps-store-your-data.md
@@ -12,7 +12,7 @@ tags: ["storage", "privacy", "notes-app", "local-first", "data-ownership"]
draft: false
coverImage: "01-banner.png"
coverAlt: "Banner reading 3 Places Your Notes Can Live, with icons for a phone, a company cloud and your own cloud"
-canonical: "https://atomic-notes-community.vercel.app/blog/3-ways-notes-apps-store-your-data"
+canonical: "https://atomic-notes.devbehindyou.com/blog/3-ways-notes-apps-store-your-data"
keywords: "where are notes stored, notes storage privacy, where do notes apps store data, local notes storage, cloud notes storage, user owned cloud storage, notes data ownership, offline notes, cloud privacy, notes backup, notes synchronization, encrypted cloud notes, local first storage"
readingTime: "7 min read"
---
@@ -170,4 +170,4 @@ It can, because data laws differ by country. Where are notes stored geographical
- [iCloud data security overview, Apple Support](https://support.apple.com/en-us/102651)
- [Choose Google Drive API scopes (drive.file), Google for Developers](https://developers.google.com/workspace/drive/api/guides/api-specific-auth)
- [Local-first software, Ink & Switch](https://www.inkandswitch.com/essay/local-first/)
-- [Atomic Notes privacy policy](https://atomic-notes-community.vercel.app/privacy)
+- [Atomic Notes privacy policy](https://atomic-notes.devbehindyou.com/privacy)
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/09 - 3 Places Your Notes Can Live/Medium publishing notes.txt b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/09 - 3 Places Your Notes Can Live/Medium publishing notes.txt
index 95bc365..a01b6af 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/09 - 3 Places Your Notes Can Live/Medium publishing notes.txt
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/09 - 3 Places Your Notes Can Live/Medium publishing notes.txt
@@ -56,14 +56,14 @@ Sources (listed after the article, under "Sources"):
Local-first software, Ink & Switch
https://www.inkandswitch.com/essay/local-first/
Atomic Notes privacy policy
- https://atomic-notes-community.vercel.app/privacy
+ https://atomic-notes.devbehindyou.com/privacy
How to publish:
1. Open "Medium article.docx", select all and copy, then paste into a new Medium story.
2. Re-upload each image from this folder at its place (Medium does not keep pasted Word images reliably).
3. Check that the bullet lists and the Sources links survived the paste.
4. Story settings > Advanced: if this article is also published on the Atomic Notes website, set the canonical link to:
- https://atomic-notes-community.vercel.app/blog/3-ways-notes-apps-store-your-data
+ https://atomic-notes.devbehindyou.com/blog/3-ways-notes-apps-store-your-data
Otherwise leave the canonical link empty.
The .md file is the source of truth. It passes the blog pipeline validator:
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/10 - 7 Things to Check Before Moving Your Notes/7-things-check-before-switching-notes-app.md b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/10 - 7 Things to Check Before Moving Your Notes/7-things-check-before-switching-notes-app.md
index 3740b56..bae3c19 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/10 - 7 Things to Check Before Moving Your Notes/7-things-check-before-switching-notes-app.md
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/10 - 7 Things to Check Before Moving Your Notes/7-things-check-before-switching-notes-app.md
@@ -12,7 +12,7 @@ tags: ["migration", "privacy", "notes-app", "backup", "data-portability"]
draft: false
coverImage: "01-banner.png"
coverAlt: "Banner reading 7 Things to Check Before Moving Your Notes, with an arrow carrying notes from an old app to a new one"
-canonical: "https://atomic-notes-community.vercel.app/blog/7-things-check-before-switching-notes-app"
+canonical: "https://atomic-notes.devbehindyou.com/blog/7-things-check-before-switching-notes-app"
keywords: "secure notes app, switch notes app securely, private note taking app, notes migration, notes backup, data export, end to end encryption, offline notes, cloud storage provider, account recovery, data portability, notes ownership, secure data migration"
readingTime: "7 min read"
---
@@ -161,4 +161,4 @@ It shouldn't be. A private note taking app should export in open formats and kee
- [Right to data portability, GDPR Article 20](https://gdpr-info.eu/art-20-gdpr/)
- [Atomic Notes 2.03.5 release notes](https://github.com/DevBehindYou/Atomic-Notes-App-V0.2/releases/tag/v2.03.5)
-- [Atomic Notes privacy policy](https://atomic-notes-community.vercel.app/privacy)
+- [Atomic Notes privacy policy](https://atomic-notes.devbehindyou.com/privacy)
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/10 - 7 Things to Check Before Moving Your Notes/Medium publishing notes.txt b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/10 - 7 Things to Check Before Moving Your Notes/Medium publishing notes.txt
index a0275f4..9bc9bff 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/10 - 7 Things to Check Before Moving Your Notes/Medium publishing notes.txt
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Blogs/Blog List 03/10 - 7 Things to Check Before Moving Your Notes/Medium publishing notes.txt
@@ -54,14 +54,14 @@ Sources (listed after the article, under "Sources"):
Atomic Notes 2.03.5 release notes
https://github.com/DevBehindYou/Atomic-Notes-App-V0.2/releases/tag/v2.03.5
Atomic Notes privacy policy
- https://atomic-notes-community.vercel.app/privacy
+ https://atomic-notes.devbehindyou.com/privacy
How to publish:
1. Open "Medium article.docx", select all and copy, then paste into a new Medium story.
2. Re-upload each image from this folder at its place (Medium does not keep pasted Word images reliably).
3. Check that the bullet lists and the Sources links survived the paste.
4. Story settings > Advanced: if this article is also published on the Atomic Notes website, set the canonical link to:
- https://atomic-notes-community.vercel.app/blog/7-things-check-before-switching-notes-app
+ https://atomic-notes.devbehindyou.com/blog/7-things-check-before-switching-notes-app
Otherwise leave the canonical link empty.
The .md file is the source of truth. It passes the blog pipeline validator:
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Posts/Ko-fi/10 - Thank You for Helping an Independent App Stay Independent/post.txt b/Atomic-Blog-Generation-Pipeline/Atomic Notes Posts/Ko-fi/10 - Thank You for Helping an Independent App Stay Independent/post.txt
index 95d30d7..b5574d3 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Posts/Ko-fi/10 - Thank You for Helping an Independent App Stay Independent/post.txt
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Posts/Ko-fi/10 - Thank You for Helping an Independent App Stay Independent/post.txt
@@ -26,4 +26,4 @@ You're helping prove that small software can still be built around user ownershi
Local first. Private by design. ⚛️
-https://atomic-notes-community.vercel.app/
+https://atomic-notes.devbehindyou.com/
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Posts/Patreon/10 - Atomic Notes Is Becoming More Than an App/post.txt b/Atomic-Blog-Generation-Pipeline/Atomic Notes Posts/Patreon/10 - Atomic Notes Is Becoming More Than an App/post.txt
index f7a4e95..2f310cb 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Posts/Patreon/10 - Atomic Notes Is Becoming More Than an App/post.txt
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Posts/Patreon/10 - Atomic Notes Is Becoming More Than an App/post.txt
@@ -25,4 +25,4 @@ If you follow the project here, test releases, report bugs, share feedback, or s
Thank you. ⚛️
-https://atomic-notes-community.vercel.app/
+https://atomic-notes.devbehindyou.com/
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Posts/Reddit/01 - Would you trust a notes app more if your notes synced to your own Google Drive/body.md b/Atomic-Blog-Generation-Pipeline/Atomic Notes Posts/Reddit/01 - Would you trust a notes app more if your notes synced to your own Google Drive/body.md
index ae03699..00393a8 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Posts/Reddit/01 - Would you trust a notes app more if your notes synced to your own Google Drive/body.md
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Posts/Reddit/01 - Would you trust a notes app more if your notes synced to your own Google Drive/body.md
@@ -10,7 +10,7 @@ I'm curious how people here think about this model.
Would user owned cloud storage make you trust a notes app more? Or would you still prefer self-hosting, WebDAV, Syncthing or device-only notes?
-Project: https://atomic-notes-community.vercel.app/
+Project: https://atomic-notes.devbehindyou.com/
Code: https://github.com/DevBehindYou/Atomic-Notes-App-V0.2
Negative feedback is welcome. I'm trying to learn where this design is strong and where it adds complexity for no good reason.
diff --git a/Atomic-Blog-Generation-Pipeline/Atomic Notes Posts/X/01 - Your Notes Should Work Without Permission/post.txt b/Atomic-Blog-Generation-Pipeline/Atomic Notes Posts/X/01 - Your Notes Should Work Without Permission/post.txt
index 10334b5..15ef934 100644
--- a/Atomic-Blog-Generation-Pipeline/Atomic Notes Posts/X/01 - Your Notes Should Work Without Permission/post.txt
+++ b/Atomic-Blog-Generation-Pipeline/Atomic Notes Posts/X/01 - Your Notes Should Work Without Permission/post.txt
@@ -7,6 +7,6 @@ Your notes shouldn't stop working because:
Atomic Notes is local first. Write first, sync later. ⚛️
-https://atomic-notes-community.vercel.app/
+https://atomic-notes.devbehindyou.com/
#AtomicNotes #LocalFirst
diff --git a/Atomic-Blog-Generation-Pipeline/config/site.config.json b/Atomic-Blog-Generation-Pipeline/config/site.config.json
index 9a9b01e..c28bab7 100644
--- a/Atomic-Blog-Generation-Pipeline/config/site.config.json
+++ b/Atomic-Blog-Generation-Pipeline/config/site.config.json
@@ -2,7 +2,7 @@
"site": {
"name": "Atomic Notes",
"brand": "DevBehindYou",
- "baseUrl": "https://atomic-notes-community.vercel.app",
+ "baseUrl": "https://atomic-notes.devbehindyou.com",
"blogBasePath": "/blog",
"contentDir": "../content/blog",
"publicImageDir": "../public/blog"
diff --git a/Atomic-Blog-Generation-Pipeline/generated/atomic-notes-v1-18-2/atomic-notes-v1-18-2.md b/Atomic-Blog-Generation-Pipeline/generated/atomic-notes-v1-18-2/atomic-notes-v1-18-2.md
index e602313..7afe3e4 100644
--- a/Atomic-Blog-Generation-Pipeline/generated/atomic-notes-v1-18-2/atomic-notes-v1-18-2.md
+++ b/Atomic-Blog-Generation-Pipeline/generated/atomic-notes-v1-18-2/atomic-notes-v1-18-2.md
@@ -12,7 +12,7 @@ featured: false
draft: true
coverImage: "/blog/atomic-notes-v1-18-2/cover.png"
coverAlt: "Atomic Notes v1.18.2 release cover with the atom mark on a paper background"
-canonical: "https://atomic-notes-community.vercel.app/blog/atomic-notes-v1-18-2"
+canonical: "https://atomic-notes.devbehindyou.com/blog/atomic-notes-v1-18-2"
keywords: "atomic notes, release notes, local-first notes, atomic energy, demo build"
readingTime: "3 min read"
---
diff --git a/Atomic-Blog-Generation-Pipeline/topics/Blog List 02 - AtomicNotes.txt b/Atomic-Blog-Generation-Pipeline/topics/Blog List 02 - AtomicNotes.txt
index f786f46..553fff3 100644
--- a/Atomic-Blog-Generation-Pipeline/topics/Blog List 02 - AtomicNotes.txt
+++ b/Atomic-Blog-Generation-Pipeline/topics/Blog List 02 - AtomicNotes.txt
@@ -783,7 +783,7 @@ I kept the competitor overlap rule intact. **Atomic Notes is the only app repeat
**Why it fits:** Local first Android notes, offline operation, optional end to end encryption, no trackers or ads, and user owned Google Drive storage for synced note content.
**Sources:**
-[Atomic Notes Website](https://atomic-notes-community.vercel.app/?utm_source=chatgpt.com)
+[Atomic Notes Website](https://atomic-notes.devbehindyou.com/?utm_source=chatgpt.com)
[Atomic Notes GitHub](https://github.com/DevBehindYou/Atomic-Notes-App-V0.2?utm_source=chatgpt.com)
## 2. SilentNotes
@@ -845,7 +845,7 @@ Current FOSS Android discussions also mention tools such as NotallyX, Quillpad,
**Why it fits:** Core notes are written to local Hive storage first. Cloud synchronization is a separate layer, while synced note content can live as `.atomic` files in the user's own Google Drive.
**Sources:**
-[Atomic Notes Website](https://atomic-notes-community.vercel.app/?utm_source=chatgpt.com)
+[Atomic Notes Website](https://atomic-notes.devbehindyou.com/?utm_source=chatgpt.com)
[Atomic Notes GitHub](https://github.com/DevBehindYou/Atomic-Notes-App-V0.2?utm_source=chatgpt.com)
## 2. Obsidian
@@ -901,7 +901,7 @@ Current FOSS Android discussions also mention tools such as NotallyX, Quillpad,
**Why it fits:** Optional E2E vault where note content can be encrypted on device before synchronization. The current implementation derives a key from the user's recovery phrase and protects encrypted notes before they reach cloud storage.
**Sources:**
-[Atomic Notes Website](https://atomic-notes-community.vercel.app/?utm_source=chatgpt.com)
+[Atomic Notes Website](https://atomic-notes.devbehindyou.com/?utm_source=chatgpt.com)
[Atomic Notes GitHub](https://github.com/DevBehindYou/Atomic-Notes-App-V0.2?utm_source=chatgpt.com)
**Editorial wording:** Always describe Atomic Notes as supporting **optional end to end encryption**.
@@ -946,7 +946,7 @@ Current FOSS Android discussions also mention tools such as NotallyX, Quillpad,
**Why it fits:** Local note creation, editing, reading and organization continue without an internet connection. Synchronization happens separately.
**Sources:**
-[Atomic Notes Website](https://atomic-notes-community.vercel.app/?utm_source=chatgpt.com)
+[Atomic Notes Website](https://atomic-notes.devbehindyou.com/?utm_source=chatgpt.com)
[Atomic Notes GitHub](https://github.com/DevBehindYou/Atomic-Notes-App-V0.2?utm_source=chatgpt.com)
## 2. Butterfly
@@ -1013,7 +1013,7 @@ That definition should be stated because plugins and external integrations can c
**Why it fits:** Atomic Notes does not include an AI assistant that reads or processes user notes.
**Sources:**
-[Atomic Notes Website](https://atomic-notes-community.vercel.app/?utm_source=chatgpt.com)
+[Atomic Notes Website](https://atomic-notes.devbehindyou.com/?utm_source=chatgpt.com)
[Atomic Notes GitHub](https://github.com/DevBehindYou/Atomic-Notes-App-V0.2?utm_source=chatgpt.com)
## 2. Markor
@@ -1073,7 +1073,7 @@ That definition should be stated because plugins and external integrations can c
**Why it fits:** Offers lightweight notes and checklists with offline operation, while shifting synced content toward a user owned Google Drive model instead of vendor owned note storage.
**Sources:**
-[Atomic Notes Website](https://atomic-notes-community.vercel.app/?utm_source=chatgpt.com)
+[Atomic Notes Website](https://atomic-notes.devbehindyou.com/?utm_source=chatgpt.com)
[Atomic Notes GitHub](https://github.com/DevBehindYou/Atomic-Notes-App-V0.2?utm_source=chatgpt.com)
## 2. NotallyX
@@ -1143,7 +1143,7 @@ Users in r/selfhosted consistently ask for Keep replacements that preserve quick
**Best for:** Users who discover that they do not actually need a full Notion style workspace and instead want a simple private, local first notes application.
**Sources:**
-[Atomic Notes Website](https://atomic-notes-community.vercel.app/?utm_source=chatgpt.com)
+[Atomic Notes Website](https://atomic-notes.devbehindyou.com/?utm_source=chatgpt.com)
[Atomic Notes GitHub](https://github.com/DevBehindYou/Atomic-Notes-App-V0.2?utm_source=chatgpt.com)
**Important positioning:** Do not describe Atomic Notes as a feature for feature Notion replacement. It does not attempt to reproduce Notion databases, team workspaces or its full collaboration stack.
diff --git a/Atomic-Blog-Generation-Pipeline/topics/Posts List 01 - AtomicNotes.txt b/Atomic-Blog-Generation-Pipeline/topics/Posts List 01 - AtomicNotes.txt
index 14b073c..bbfe24f 100644
--- a/Atomic-Blog-Generation-Pipeline/topics/Posts List 01 - AtomicNotes.txt
+++ b/Atomic-Blog-Generation-Pipeline/topics/Posts List 01 - AtomicNotes.txt
@@ -32,7 +32,7 @@ Write first. Sync later.
Your notes stay usable on your device. ⚛️
-https://atomic-notes-community.vercel.app/
+https://atomic-notes.devbehindyou.com/
#AtomicNotes #LocalFirst #OpenSource
@@ -217,7 +217,7 @@ I am curious how people here think about this model.
Would user owned cloud storage make you trust a notes app more, or would you still prefer fully self hosted storage, WebDAV, Syncthing, or device only notes?
Project:
-https://atomic-notes-community.vercel.app/
+https://atomic-notes.devbehindyou.com/
Source:
https://github.com/DevBehindYou/Atomic-Notes-App-V0.2
@@ -867,7 +867,7 @@ If you are following the project here, testing releases, reporting bugs, sharing
Thank you. ⚛️
-https://atomic-notes-community.vercel.app/
+https://atomic-notes.devbehindyou.com/
---
@@ -1150,4 +1150,4 @@ You are helping prove that smaller software can still be built around user owner
**Open source. Local first. Private by design. ⚛️**
-https://atomic-notes-community.vercel.app/
+https://atomic-notes.devbehindyou.com/
diff --git a/SESSION-HANDOFF.md b/SESSION-HANDOFF.md
index 5a5c219..47ff26d 100644
--- a/SESSION-HANDOFF.md
+++ b/SESSION-HANDOFF.md
@@ -4,7 +4,7 @@ This repository has **uncommitted** changes. Nothing was committed, pushed or
deployed; no live integration or production deployment is verified. Resume only
on a new user request.
-Intended site: `https://atomic-notes-community.vercel.app`. Its Server origin is
+Intended site: `https://atomic-notes.devbehindyou.com`. Its Server origin is
`https://atomic-notes-server-gde2e.vercel.app` (no `/api` suffix in
`ATOMIC_SERVER_URL`). Atlas and Google Cloud are not configured yet.
diff --git a/content/blog/atomic-notes-v1-18-2.md b/content/blog/atomic-notes-v1-18-2.md
index 18a06b6..947a74f 100644
--- a/content/blog/atomic-notes-v1-18-2.md
+++ b/content/blog/atomic-notes-v1-18-2.md
@@ -12,7 +12,7 @@ featured: true
draft: false
coverImage: "/og-banner.png"
coverAlt: "Atomic Notes release cover with the atom mark on a paper background"
-canonical: "https://atomic-notes-community.vercel.app/blog/atomic-notes-v1-18-2"
+canonical: "https://atomic-notes.devbehindyou.com/blog/atomic-notes-v1-18-2"
keywords: "atomic notes, release notes, local-first notes, atomic energy, demo build"
readingTime: "3 min read"
---
diff --git a/public/llms.txt b/public/llms.txt
index 9cc8cfa..1c2922a 100644
--- a/public/llms.txt
+++ b/public/llms.txt
@@ -13,10 +13,10 @@ Key facts:
## Main pages
-- [Home](https://atomic-notes-community.vercel.app/): features, how sync works, what each party can see, Atomic Energy, FAQ
-- [Updates](https://atomic-notes-community.vercel.app/updates): live release notes and service status
-- [Blog](https://atomic-notes-community.vercel.app/blog): development updates and technical write-ups
-- [Support](https://atomic-notes-community.vercel.app/support-atomic-notes): support on Patreon or Ko-fi and get Atomic Coins early
+- [Home](https://atomic-notes.devbehindyou.com/): features, how sync works, what each party can see, Atomic Energy, FAQ
+- [Updates](https://atomic-notes.devbehindyou.com/updates): live release notes and service status
+- [Blog](https://atomic-notes.devbehindyou.com/blog): development updates and technical write-ups
+- [Support](https://atomic-notes.devbehindyou.com/support-atomic-notes): support on Patreon or Ko-fi and get Atomic Coins early
## Source and downloads
diff --git a/src/lib/site.ts b/src/lib/site.ts
index f47f803..543513b 100644
--- a/src/lib/site.ts
+++ b/src/lib/site.ts
@@ -1,6 +1,6 @@
// Public, non-secret site settings. Only NEXT_PUBLIC_* variables belong here:
// this module is also bundled into client components.
-const DEFAULT_SITE_URL = "https://atomic-notes-community.vercel.app";
+const DEFAULT_SITE_URL = "https://atomic-notes.devbehindyou.com";
// The App is built from Atomic-Notes-App-V0.2 (the older Atomic-Notes-App repository has no releases).
const DEFAULT_APK_URL = "https://github.com/DevBehindYou/Atomic-Notes-App-V0.2/releases/latest";
diff --git a/tests/runtime.test.mjs b/tests/runtime.test.mjs
index b775875..1e81553 100644
--- a/tests/runtime.test.mjs
+++ b/tests/runtime.test.mjs
@@ -208,16 +208,16 @@ test('production routes preserve authentication and public content', { timeout:
assert.equal(article.status, 200);
const html = await article.text();
assert.match(html, /[^<]*Atomic/i);
- assert.match(html, /rel="canonical" href="https:\/\/atomic-notes-community\.vercel\.app\/blog\/atomic-notes-v1-18-2"/);
+ assert.match(html, /rel="canonical" href="https:\/\/atomic-notes\.devbehindyou\.com\/blog\/atomic-notes-v1-18-2"/);
assert.equal((await request('/blog/nonexistent-smoke-test-article')).status, 404);
const feed = await request('/feed.xml');
assert.equal(feed.status, 200);
const xml = await feed.text();
assert.match(xml, /]/);
- assert.match(xml, /https:\/\/atomic-notes-community\.vercel\.app\/blog\//);
+ assert.match(xml, /https:\/\/atomic-notes\.devbehindyou\.com\/blog\//);
assert.equal(xml.includes('atomic-notes.vercel.app'), false);
const sitemap = await (await request('/sitemap.xml')).text();
- assert.match(sitemap, /https:\/\/atomic-notes-community\.vercel\.app<\/loc>|https:\/\/atomic-notes-community\.vercel\.app\/<\/loc>/);
+ assert.match(sitemap, /https:\/\/atomic-notes\.devbehindyou\.com<\/loc>|https:\/\/atomic-notes\.devbehindyou\.com\/<\/loc>/);
});
await t.test('download links point at the App repository, not a tag that may not exist', async () => {
From 4eaa25cfbff1dab1f44d48657c769ed9aa4c38c2 Mon Sep 17 00:00:00 2001
From: Claude
Date: Tue, 6 Oct 2026 03:22:27 +0000
Subject: [PATCH 2/5] fix(seo): per-page canonicals and share cards, redirect
old domain
- Every page now sets its own og:url, og:title and Twitter card. Before,
/privacy, /terms, /updates and /support-atomic-notes inherited the home
page's card (og:url pointed at the home page) and /blog had no og:url.
- Blog posts: full Open Graph article tags (section, tags, author), Twitter
handle, absolute image URLs, BlogPosting + BreadcrumbList JSON-LD linked to
the site graph, and a canonical guard that moves old-domain values onto
the current origin.
- 308 redirect from atomic-notes-community.vercel.app to the new domain.
- robots.txt declares the sitemap and host; RSS gets atom:link self,
lastBuildDate and a discovery link on every page; sitemap dates /blog.
- llms.txt lists the legal pages, blog posts, feed and sitemap.
- Smoke tests cover the per-page cards, robots sitemap and the redirect.
Co-Authored-By: Claude Opus 5.5
Claude-Session: https://claude.ai/code/session_01N6CCeSeEEcvpWot2tB7XgJ
---
next.config.mjs | 12 +++++
public/llms.txt | 7 +++
src/app/blog/[slug]/page.tsx | 66 +++++++++++++++++------
src/app/blog/page.tsx | 15 ++----
src/app/feed.xml/route.ts | 7 ++-
src/app/layout.tsx | 6 ++-
src/app/privacy/page.tsx | 7 +--
src/app/robots.ts | 3 ++
src/app/sitemap.ts | 4 +-
src/app/support-atomic-notes/page.tsx | 8 +--
src/app/terms/page.tsx | 7 +--
src/app/updates/page.tsx | 7 +--
src/lib/seo.ts | 76 +++++++++++++++++++++++++++
src/lib/site.ts | 3 ++
tests/runtime.test.mjs | 26 ++++++++-
15 files changed, 211 insertions(+), 43 deletions(-)
create mode 100644 src/lib/seo.ts
diff --git a/next.config.mjs b/next.config.mjs
index 2f19678..0a8551b 100644
--- a/next.config.mjs
+++ b/next.config.mjs
@@ -5,6 +5,18 @@ const nextConfig = {
// This project is a standalone repository even inside a shared checkout folder.
outputFileTracingRoot: fileURLToPath(new URL(".", import.meta.url)),
reactStrictMode: true,
+ async redirects() {
+ // The site moved to atomic-notes.devbehindyou.com. A permanent redirect from the old
+ // Vercel address moves its search rankings and backlinks onto the new domain.
+ return [
+ {
+ source: "/:path*",
+ has: [{ type: "host", value: "atomic-notes-community.vercel.app" }],
+ destination: "https://atomic-notes.devbehindyou.com/:path*",
+ permanent: true,
+ },
+ ];
+ },
async headers() {
// Keep the secret admin surface out of search engines even if a URL leaks, out of other sites'
// frames (no clickjacking of the login or the adjust buttons), and out of every cache.
diff --git a/public/llms.txt b/public/llms.txt
index 1c2922a..a31c558 100644
--- a/public/llms.txt
+++ b/public/llms.txt
@@ -17,6 +17,13 @@ Key facts:
- [Updates](https://atomic-notes.devbehindyou.com/updates): live release notes and service status
- [Blog](https://atomic-notes.devbehindyou.com/blog): development updates and technical write-ups
- [Support](https://atomic-notes.devbehindyou.com/support-atomic-notes): support on Patreon or Ko-fi and get Atomic Coins early
+- [Privacy Policy](https://atomic-notes.devbehindyou.com/privacy): what the app and server keep, Google user data, the vault, retention
+- [Terms of Service](https://atomic-notes.devbehindyou.com/terms): terms for the app, sync service, Atomic Energy and Atomic Coins
+
+## Blog posts
+
+- [Atomic Notes v1.18.2 Demo Build](https://atomic-notes.devbehindyou.com/blog/atomic-notes-v1-18-2): Atomic Energy, in-app email flows, notification center, offline launch fix
+- [RSS feed](https://atomic-notes.devbehindyou.com/feed.xml) and [sitemap](https://atomic-notes.devbehindyou.com/sitemap.xml): every published page and post
## Source and downloads
diff --git a/src/app/blog/[slug]/page.tsx b/src/app/blog/[slug]/page.tsx
index 0d93995..ef88446 100644
--- a/src/app/blog/[slug]/page.tsx
+++ b/src/app/blog/[slug]/page.tsx
@@ -3,6 +3,7 @@ import Link from "next/link";
import { notFound } from "next/navigation";
import { getPost, getAllSlugs, relatedPosts, type PostMeta } from "@/lib/blog";
import { SITE_URL } from "@/lib/site";
+import { FEED_ALTERNATE, SITE_NAME, TWITTER_HANDLE, absoluteUrl, canonicalUrl } from "@/lib/seo";
import { SiteNav } from "@/components/SiteNav";
import { SiteFooter } from "@/components/SiteFooter";
@@ -26,21 +27,35 @@ export async function generateMetadata({ params }: { params: Promise<{ slug: str
const post = await getPost((await params).slug);
if (!post) return { title: "Not found" };
const url = `${BASE}/blog/${post.slug}`;
+ const image = { url: absoluteUrl(post.coverImage), alt: post.coverAlt };
+ const author = AUTHORS[post.author];
return {
title: post.title,
description: post.description,
keywords: post.keywords,
- alternates: { canonical: post.canonical || url },
+ alternates: { canonical: canonicalUrl(post.canonical, url), types: FEED_ALTERNATE },
openGraph: {
type: "article",
+ siteName: SITE_NAME,
+ locale: "en_US",
title: post.title,
description: post.description,
url,
- images: [post.coverImage],
+ images: [image],
publishedTime: post.publishedAt,
modifiedTime: post.updatedAt || post.publishedAt,
+ section: post.category,
+ tags: post.tags,
+ authors: author ? [author.url] : undefined,
+ },
+ twitter: {
+ card: "summary_large_image",
+ site: TWITTER_HANDLE,
+ creator: TWITTER_HANDLE,
+ title: post.title,
+ description: post.description,
+ images: [image],
},
- twitter: { card: "summary_large_image", title: post.title, description: post.description, images: [post.coverImage] },
};
}
@@ -60,19 +75,38 @@ export default async function ArticlePage({ params }: { params: Promise<{ slug:
const jsonLd = {
"@context": "https://schema.org",
- "@type": "BlogPosting",
- headline: post.title,
- description: post.description,
- image: `${BASE}${post.coverImage}`,
- author: { "@type": "Person", name: author.name, url: author.url },
- datePublished: post.publishedAt,
- dateModified: post.updatedAt || post.publishedAt,
- publisher: {
- "@type": "Organization",
- name: "Atomic Notes",
- logo: { "@type": "ImageObject", url: `${BASE}/icon.png` },
- },
- mainEntityOfPage: { "@type": "WebPage", "@id": url },
+ "@graph": [
+ {
+ "@type": "BlogPosting",
+ "@id": `${url}#article`,
+ url,
+ headline: post.title,
+ description: post.description,
+ image: absoluteUrl(post.coverImage),
+ author: { "@type": "Person", name: author.name, url: author.url },
+ datePublished: post.publishedAt,
+ dateModified: post.updatedAt || post.publishedAt,
+ inLanguage: "en",
+ articleSection: post.category,
+ keywords: post.keywords || post.tags.join(", "),
+ publisher: {
+ "@type": "Organization",
+ name: SITE_NAME,
+ url: BASE,
+ logo: { "@type": "ImageObject", url: `${BASE}/icon.png` },
+ },
+ isPartOf: { "@id": `${BASE}/#website` },
+ mainEntityOfPage: { "@type": "WebPage", "@id": url },
+ },
+ {
+ "@type": "BreadcrumbList",
+ itemListElement: [
+ { "@type": "ListItem", position: 1, name: "Home", item: BASE },
+ { "@type": "ListItem", position: 2, name: "Blog", item: `${BASE}/blog` },
+ { "@type": "ListItem", position: 3, name: post.title, item: url },
+ ],
+ },
+ ],
};
return (
diff --git a/src/app/blog/page.tsx b/src/app/blog/page.tsx
index 8b00f6b..d1099fb 100644
--- a/src/app/blog/page.tsx
+++ b/src/app/blog/page.tsx
@@ -1,22 +1,17 @@
import type { Metadata } from "next";
import Link from "next/link";
import { getAllPosts, getFeatured } from "@/lib/blog";
-import { SITE_URL } from "@/lib/site";
+import { pageMetadata } from "@/lib/seo";
import { SiteNav } from "@/components/SiteNav";
import { SiteFooter } from "@/components/SiteFooter";
-export const metadata: Metadata = {
+export const metadata: Metadata = pageMetadata({
title: "Blog",
description:
"Development updates, release notes, and technical deep dives on Atomic Notes: local-first, privacy-first notes with optional end-to-end encryption.",
- alternates: { canonical: `${SITE_URL}/blog` },
- openGraph: {
- title: "Atomic Notes Blog",
- description: "Local-first, privacy-first. Development updates and deep dives.",
- images: ["/og-banner.png"],
- type: "website",
- },
-};
+ path: "/blog",
+ socialTitle: "Atomic Notes Blog",
+});
function fmtDate(d: string): string {
if (!d) return "";
diff --git a/src/app/feed.xml/route.ts b/src/app/feed.xml/route.ts
index 3d6fdc8..665744f 100644
--- a/src/app/feed.xml/route.ts
+++ b/src/app/feed.xml/route.ts
@@ -17,6 +17,8 @@ function esc(s: string): string {
export async function GET() {
const posts = getAllPosts();
+ const newest = new Date(posts[0]?.updatedAt || posts[0]?.publishedAt || "");
+ const built = isNaN(newest.getTime()) ? "" : newest.toUTCString();
const items = posts
.map((p) => {
const link = `${BASE}/blog/${p.slug}`;
@@ -34,13 +36,14 @@ export async function GET() {
.join("\n");
const xml = `
-
+Atomic Notes Blog
${BASE}/blog
+ Development updates, releases, and deep dives on local-first, privacy-first Atomic Notes.en
-${items}
+${built ? ` ${built}\n` : ""}${items}
`;
diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index 6a8fb64..ba90a74 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -2,6 +2,7 @@ import type { Metadata, Viewport } from "next";
import { Bebas_Neue, Hanken_Grotesk, JetBrains_Mono } from "next/font/google";
import "./globals.css";
import { SITE_URL } from "@/lib/site";
+import { FEED_ALTERNATE } from "@/lib/seo";
import { SiteAnalytics } from "@/components/SiteAnalytics";
import { CommunityPopup } from "@/components/CommunityPopup";
@@ -42,7 +43,10 @@ export const metadata: Metadata = {
"offline notes app",
"privacy-first notes app",
],
- alternates: { canonical: "/" },
+ alternates: {
+ canonical: "/",
+ types: FEED_ALTERNATE,
+ },
icons: { icon: "/icon.png", apple: "/icon.png" },
openGraph: {
type: "website",
diff --git a/src/app/privacy/page.tsx b/src/app/privacy/page.tsx
index ec77874..9eb3d12 100644
--- a/src/app/privacy/page.tsx
+++ b/src/app/privacy/page.tsx
@@ -1,13 +1,14 @@
import type { Metadata } from "next";
import { LegalPage } from "@/components/LegalPage";
import { REPO_URL } from "@/lib/content";
+import { pageMetadata } from "@/lib/seo";
-export const metadata: Metadata = {
+export const metadata: Metadata = pageMetadata({
title: "Privacy Policy",
description:
"How Atomic Notes handles your data: what the app and server keep, how Google user data is used, the end-to-end vault, retention, and your choices.",
- alternates: { canonical: "/privacy" },
-};
+ path: "/privacy",
+});
const CONTACT = "https://github.com/DevBehindYou";
diff --git a/src/app/robots.ts b/src/app/robots.ts
index 4e9a206..8b8d36f 100644
--- a/src/app/robots.ts
+++ b/src/app/robots.ts
@@ -1,4 +1,5 @@
import type { MetadataRoute } from "next";
+import { SITE_URL } from "@/lib/site";
export default function robots(): MetadataRoute.Robots {
return {
@@ -9,5 +10,7 @@ export default function robots(): MetadataRoute.Robots {
// of search results by its noindex header and meta tag instead.
disallow: ["/api/"],
},
+ sitemap: `${SITE_URL}/sitemap.xml`,
+ host: SITE_URL,
};
}
diff --git a/src/app/sitemap.ts b/src/app/sitemap.ts
index c1fb511..b8b2136 100644
--- a/src/app/sitemap.ts
+++ b/src/app/sitemap.ts
@@ -12,9 +12,11 @@ export default function sitemap(): MetadataRoute.Sitemap {
priority: 0.7,
}));
+ const newest = posts.map((p) => p.lastModified).filter(Boolean).sort().pop();
+
return [
{ url: BASE, changeFrequency: "weekly", priority: 1 },
- { url: `${BASE}/blog`, changeFrequency: "weekly", priority: 0.8 },
+ { url: `${BASE}/blog`, lastModified: newest, changeFrequency: "weekly", priority: 0.8 },
{ url: `${BASE}/updates`, changeFrequency: "daily", priority: 0.6 },
{ url: `${BASE}/support-atomic-notes`, changeFrequency: "monthly", priority: 0.5 },
{ url: `${BASE}/privacy`, changeFrequency: "yearly", priority: 0.3 },
diff --git a/src/app/support-atomic-notes/page.tsx b/src/app/support-atomic-notes/page.tsx
index d8cc53a..b263313 100644
--- a/src/app/support-atomic-notes/page.tsx
+++ b/src/app/support-atomic-notes/page.tsx
@@ -2,13 +2,15 @@ import type { Metadata } from "next";
import { SiteNav } from "@/components/SiteNav";
import { SiteFooter } from "@/components/SiteFooter";
import { KOFI_URL, PATREON_URL } from "@/lib/content";
+import { pageMetadata } from "@/lib/seo";
-export const metadata: Metadata = {
+export const metadata: Metadata = pageMetadata({
title: "Support Atomic Notes, get Atomic Coins early",
description:
"Support Atomic Notes on Patreon or Ko-fi at the amount you choose. Send your Atomic Notes account email, and the developer sends you Atomic Coins as an early-supporter reward.",
- alternates: { canonical: "/support-atomic-notes" },
-};
+ path: "/support-atomic-notes",
+ socialTitle: "Support Atomic Notes, get Atomic Coins early",
+});
const STEPS: { t: string; d: React.ReactNode }[] = [
{
diff --git a/src/app/terms/page.tsx b/src/app/terms/page.tsx
index 9072fa2..069bc41 100644
--- a/src/app/terms/page.tsx
+++ b/src/app/terms/page.tsx
@@ -2,12 +2,13 @@ import type { Metadata } from "next";
import Link from "next/link";
import { LegalPage } from "@/components/LegalPage";
import { REPO_URL } from "@/lib/content";
+import { pageMetadata } from "@/lib/seo";
-export const metadata: Metadata = {
+export const metadata: Metadata = pageMetadata({
title: "Terms of Service",
description: "The terms for using the Atomic Notes app, its sync service, Atomic Energy and Atomic Coins.",
- alternates: { canonical: "/terms" },
-};
+ path: "/terms",
+});
export default function TermsPage() {
return (
diff --git a/src/app/updates/page.tsx b/src/app/updates/page.tsx
index c90b197..1bcad8f 100644
--- a/src/app/updates/page.tsx
+++ b/src/app/updates/page.tsx
@@ -3,15 +3,16 @@ import { SiteNav } from "@/components/SiteNav";
import { SiteFooter } from "@/components/SiteFooter";
import { fetchActiveNotifications } from "@/lib/atomicServer";
import type { NotificationRow } from "@/lib/content";
+import { pageMetadata } from "@/lib/seo";
export const dynamic = "force-dynamic";
-export const metadata: Metadata = {
+export const metadata: Metadata = pageMetadata({
title: "Updates and status",
description:
"Live release notes, maintenance notices and service status for Atomic Notes. The same messages appear in the app's notification center.",
- alternates: { canonical: "/updates" },
-};
+ path: "/updates",
+});
async function getActive(): Promise<{ rows: NotificationRow[]; error: string | null }> {
try {
diff --git a/src/lib/seo.ts b/src/lib/seo.ts
new file mode 100644
index 0000000..8842a0c
--- /dev/null
+++ b/src/lib/seo.ts
@@ -0,0 +1,76 @@
+import type { Metadata } from "next";
+import { LEGACY_HOSTS, SITE_URL } from "@/lib/site";
+
+export const SITE_NAME = "Atomic Notes";
+export const TWITTER_HANDLE = "@devbehindyou";
+export const OG_IMAGE = {
+ url: "/og-banner.png",
+ width: 1200,
+ height: 630,
+ alt: "Atomic Notes, local-first notes for Android",
+};
+
+/** RSS discovery link. Pages that set `alternates` replace the root one, so each includes this. */
+export const FEED_ALTERNATE = { "application/rss+xml": [{ url: "/feed.xml", title: "Atomic Notes Blog" }] };
+
+/** Absolute URL on the canonical origin. Absolute inputs are returned unchanged. */
+export function absoluteUrl(pathOrUrl: string): string {
+ if (/^https?:\/\//i.test(pathOrUrl)) return pathOrUrl;
+ return `${SITE_URL}${pathOrUrl.startsWith("/") ? "" : "/"}${pathOrUrl}`;
+}
+
+/**
+ * A canonical taken from content (blog front matter) is kept as written unless it is on a
+ * retired host; those are moved onto the current origin so a stale draft can never point
+ * search engines back at the old address.
+ */
+export function canonicalUrl(candidate: string | undefined, fallback: string): string {
+ if (!candidate) return fallback;
+ try {
+ const u = new URL(candidate);
+ return LEGACY_HOSTS.includes(u.host.toLowerCase()) ? absoluteUrl(u.pathname + u.search) : candidate;
+ } catch {
+ return fallback;
+ }
+}
+
+/**
+ * Metadata for a standalone page. Next.js replaces (not merges) the root `openGraph` and
+ * `twitter` objects when a page sets its own, so every page sets the full card here instead
+ * of inheriting the home page's title and URL.
+ */
+export function pageMetadata({
+ title,
+ description,
+ path,
+ socialTitle,
+}: {
+ title: string;
+ description: string;
+ path: string;
+ socialTitle?: string;
+}): Metadata {
+ const card = socialTitle ?? `${title} | ${SITE_NAME}`;
+ return {
+ title,
+ description,
+ alternates: { canonical: path, types: FEED_ALTERNATE },
+ openGraph: {
+ type: "website",
+ siteName: SITE_NAME,
+ locale: "en_US",
+ url: path,
+ title: card,
+ description,
+ images: [OG_IMAGE],
+ },
+ twitter: {
+ card: "summary_large_image",
+ site: TWITTER_HANDLE,
+ creator: TWITTER_HANDLE,
+ title: card,
+ description,
+ images: [OG_IMAGE.url],
+ },
+ };
+}
diff --git a/src/lib/site.ts b/src/lib/site.ts
index 543513b..915ed9a 100644
--- a/src/lib/site.ts
+++ b/src/lib/site.ts
@@ -15,6 +15,9 @@ function originOf(value: string | undefined, fallback: string): string {
/** Canonical origin for metadata, sitemap and feed links. No trailing slash. */
export const SITE_URL = originOf(process.env.NEXT_PUBLIC_SITE_URL, DEFAULT_SITE_URL);
+/** Hosts the site used to live on. They redirect to SITE_URL and never appear as canonical. */
+export const LEGACY_HOSTS = ["atomic-notes-community.vercel.app"];
+
/** Where the download buttons point. */
export const APK_URL = process.env.NEXT_PUBLIC_APK_URL || DEFAULT_APK_URL;
diff --git a/tests/runtime.test.mjs b/tests/runtime.test.mjs
index 1e81553..6f5ceed 100644
--- a/tests/runtime.test.mjs
+++ b/tests/runtime.test.mjs
@@ -2,7 +2,7 @@ import assert from 'node:assert/strict';
import { spawn } from 'node:child_process';
import { createHmac } from 'node:crypto';
import { once } from 'node:events';
-import { createServer as createHttpServer } from 'node:http';
+import { createServer as createHttpServer, get as httpGet } from 'node:http';
import { createServer } from 'node:net';
import { resolve } from 'node:path';
import { setTimeout as delay } from 'node:timers/promises';
@@ -220,6 +220,30 @@ test('production routes preserve authentication and public content', { timeout:
assert.match(sitemap, /https:\/\/atomic-notes\.devbehindyou\.com<\/loc>|https:\/\/atomic-notes\.devbehindyou\.com\/<\/loc>/);
});
+ await t.test('every public page carries its own canonical and share card', async () => {
+ for (const path of ['/blog', '/updates', '/support-atomic-notes', '/privacy', '/terms']) {
+ const html = await (await request(path)).text();
+ const url = `https://atomic-notes.devbehindyou.com${path}`;
+ assert.ok(html.includes(``), path);
+ assert.ok(html.includes(``), path);
+ assert.ok(html.includes('type="application/rss+xml"'), path);
+ }
+ const robots = await (await request('/robots.txt')).text();
+ assert.match(robots, /Sitemap: https:\/\/atomic-notes\.devbehindyou\.com\/sitemap\.xml/);
+ });
+
+ await t.test('the retired Vercel address redirects permanently to the new domain', async () => {
+ // fetch() always sends the real Host, so this request is made with node:http.
+ const moved = await new Promise((done, fail) => {
+ httpGet(`${base}/blog?x=1`, { headers: { host: 'atomic-notes-community.vercel.app' } }, (res) => {
+ res.resume();
+ done(res);
+ }).on('error', fail);
+ });
+ assert.equal(moved.statusCode, 308);
+ assert.equal(moved.headers.location, 'https://atomic-notes.devbehindyou.com/blog?x=1');
+ });
+
await t.test('download links point at the App repository, not a tag that may not exist', async () => {
const home = await (await request('/')).text();
// Unless NEXT_PUBLIC_APK_URL was set when the site was built, the button uses the default.
From 7f78fe7abc5c26ce055078976d83cf5553fe8a83 Mon Sep 17 00:00:00 2001
From: Claude
Date: Tue, 6 Oct 2026 09:28:59 +0000
Subject: [PATCH 3/5] fix(seo): ignore stale site URLs, move developer links to
devbehindyou.com
- SITE_URL ignores NEXT_PUBLIC_SITE_URL values on the retired
atomic-notes-community.vercel.app host or any *.vercel.app host. The live
sitemap and robots.txt still listed the old host because that value was
baked in at build time; with this guard a stale value cannot leak into
canonicals, the sitemap, robots.txt or the feed.
- Developer links (author meta, footer, Person and BlogPosting JSON-LD,
pipeline authors.json, llms.txt) point at https://devbehindyou.com via one
DEVELOPER_URL constant. Person.sameAs adds LinkedIn and YouTube.
- Sitemap lastmod for home (release date) and legal pages, from one
LEGAL_UPDATED source that the pages also render inside
- The Atomic Notes Community Server is live. Join for feature discussions, app updates and
- release news, straight from the developer.
+ The Atomic Notes Community Server is live. Join for feature discussions, app updates,
+ and release news, straight from the developer.