Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions src/app/globals.css
Original file line number Diff line number Diff line change
Expand Up @@ -1756,3 +1756,26 @@ section h2 {
grid-template-columns: 1fr;
}
}

/* ---------- privacy policy and terms ---------- */
.legal {
max-width: 760px;
padding-top: 48px;
padding-bottom: 64px;
}
.legal h1 {
font-size: clamp(2.6rem, 7vw, 4rem);
margin-top: 4px;
}
.legal-updated {
margin: 10px 0 26px;
}
.legal .prose ul {
list-style: disc;
padding-left: 20px;
margin: 0 0 18px;
line-height: 1.7;
}
.legal .prose li {
margin-bottom: 6px;
}
155 changes: 155 additions & 0 deletions src/app/privacy/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
import type { Metadata } from "next";
import { LegalPage } from "@/components/LegalPage";
import { REPO_URL } from "@/lib/content";

export const metadata: Metadata = {
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" },
};

const CONTACT = "https://github.com/DevBehindYou";

export default function PrivacyPage() {
return (
<LegalPage eyebrow="ATOMIC NOTES" title="Privacy Policy" updated="29 September 2026">
<p>
This policy explains how the Atomic Notes Android app, its sync server and this website handle your
information. Atomic Notes is built and operated by Ashutosh Sharma, who publishes as DevBehindYou (&ldquo;we&rdquo;,
&ldquo;us&rdquo;).
</p>

<h2>The short version</h2>
<ul>
<li>Your notes are saved on your phone first. When you sync, they go to a folder in your own Google Drive.</li>
<li>Our server never stores your note titles, text or checklist items.</li>
<li>There is no analytics, no crash reporting, no advertising and no AI in the app.</li>
<li>We never sell your data, and we never use it to train AI models.</li>
</ul>

<h2>Information we collect</h2>
<p>To run your account and sync, our server keeps:</p>
<ul>
<li>Your Google account ID, email address and name, from Google sign-in, and the username you choose.</li>
<li>Your Atomic Energy and Atomic Coin balances, and a record of how they changed.</li>
<li>
Metadata for each note: its ID, whether it is a note or a checklist, the pinned and deleted flags, timestamps,
and the ID of its file in your Google Drive.
</li>
<li>Your Google access and refresh tokens, encrypted with AES-256-GCM before they are stored.</li>
<li>A short log of account and security events, such as sign-ins.</li>
<li>Which in-app announcements you have read or dismissed.</li>
</ul>
<p>
We do not collect your note content, contacts, location, advertising IDs, analytics or crash reports. Our hosting
provider processes standard request data, such as IP addresses, to deliver the app&apos;s server and this
website. This website sets no tracking or advertising cookies.
</p>

<h2>How we use Google user data</h2>
<p>Atomic Notes asks Google for these permissions, and uses each one only as described:</p>
<ul>
<li>
<b>openid, email and profile:</b> to sign you in, create your account, and show your name and email in the app.
</li>
<li>
<b>drive.file:</b> to create a <code>My-Atomic-Notes</code> folder in your Google Drive, and to create, read,
update and delete the note files Atomic Notes makes there, so your notes sync between your devices. This
permission only covers files the app created. Atomic Notes cannot see any other file in your Drive.
</li>
</ul>
<p>
We use Google user data only to provide and improve these features for you. We do not sell it, use it for
advertising, or use it to train artificial-intelligence or machine-learning models. We do not transfer it to
anyone except as needed to run the service (see &ldquo;Service providers&rdquo; below), for security, or to comply
with the law. No person reads your Google data unless you ask for help and give permission, it is needed to
investigate abuse or a security problem, or the law requires it.
</p>
<p>
Atomic Notes&apos; use and transfer to any other app of information received from Google APIs will adhere to the{" "}
<a href="https://developers.google.com/terms/api-services-user-data-policy" target="_blank" rel="noreferrer">
Google API Services User Data Policy
</a>
, including the Limited Use requirements.
</p>

<h2>The end-to-end vault</h2>
<p>
If you turn on Encryption, the app derives a key on your phone from a 6-word recovery phrase and encrypts every
note with AES-256-GCM before it leaves the device. Your Drive and our server then hold only ciphertext. The phrase
and the key never leave your phone, so we cannot recover vault notes if you lose the phrase. With the vault off,
note content is stored as plain text in your own Drive and passes through our server on its way there, without
being stored.
</p>

<h2>Where data is stored and how it is protected</h2>
<ul>
<li>Note content: on your phone, and in your own Google Drive when you sync.</li>
<li>Account data: in our database (MongoDB Atlas), used by our server on Vercel (Mumbai, India region).</li>
<li>All traffic between the app and the server uses HTTPS.</li>
<li>In the app, the session and vault key are kept in Android&apos;s secure storage.</li>
</ul>

<h2>How long we keep it</h2>
<ul>
<li>Account and balance data: for as long as your account exists.</li>
<li>Security event log: 30 days.</li>
<li>Records of deleted notes and of each sync: 30 days.</li>
</ul>

<h2>Your choices</h2>
<ul>
<li>Turn cloud sync off in Settings. Your notes then stay on your phone only.</li>
<li>
Use Settings &gt; Danger Zone to delete the cloud copies (this deletes the note files from your Drive and their
metadata from our server) or the notes on your phone.
</li>
<li>
Remove Atomic Notes&apos; access to your Google account at any time at{" "}
<a href="https://myaccount.google.com/permissions" target="_blank" rel="noreferrer">
myaccount.google.com/permissions
</a>
.
</li>
<li>
To delete your account, or to get a copy of the data we hold about you, contact us (below). We delete account
data within 30 days of a verified request.
</li>
</ul>

<h2>Service providers</h2>
<ul>
<li>Google: sign-in and Google Drive storage.</li>
<li>Vercel: hosting for the server and this website.</li>
<li>MongoDB Atlas: the database for account data.</li>
</ul>
<p>
If you choose to support the project, the payment is handled by the platform you use, under its own policies. We
only use the account email you send us to add your supporter reward.
</p>

<h2>Children</h2>
<p>Atomic Notes is not directed at children under 13, and we do not knowingly collect their information.</p>

<h2>Changes to this policy</h2>
<p>
We will update the date at the top when this policy changes, and announce significant changes in the app&apos;s
notification center.
</p>

<h2>Contact</h2>
<p>
Questions or requests: reach the developer through{" "}
<a href={CONTACT} target="_blank" rel="noreferrer">
github.com/DevBehindYou
</a>
. The app&apos;s source code, including how it handles data, is public to read at{" "}
<a href={REPO_URL} target="_blank" rel="noreferrer">
Atomic-Notes-App-V0.2
</a>
.
</p>
</LegalPage>
);
}
2 changes: 2 additions & 0 deletions src/app/sitemap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ export default function sitemap(): MetadataRoute.Sitemap {
{ url: `${BASE}/blog`, 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 },
{ url: `${BASE}/terms`, changeFrequency: "yearly", priority: 0.3 },
...posts,
];
}
115 changes: 115 additions & 0 deletions src/app/terms/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
import type { Metadata } from "next";
import Link from "next/link";
import { LegalPage } from "@/components/LegalPage";
import { REPO_URL } from "@/lib/content";

export const metadata: Metadata = {
title: "Terms of Service",
description: "The terms for using the Atomic Notes app, its sync service, Atomic Energy and Atomic Coins.",
alternates: { canonical: "/terms" },
};

export default function TermsPage() {
return (
<LegalPage eyebrow="ATOMIC NOTES" title="Terms of Service" updated="29 September 2026">
<p>
These terms apply to the Atomic Notes Android app, its sync service and this website (together, &ldquo;the
service&rdquo;), operated by Ashutosh Sharma, who publishes as DevBehindYou (&ldquo;we&rdquo;). By using the
service, you agree to them. How we handle your data is described in the{" "}
<Link href="/privacy">Privacy Policy</Link>.
</p>

<h2>1. The service</h2>
<p>
Atomic Notes is a free notes app. Notes are stored on your phone, and cloud sync stores them in your own Google
Drive. Sync needs a Google account and depends on Google&apos;s services being available. The service is under
active development, and features may change.
</p>

<h2>2. Your account and your notes</h2>
<ul>
<li>You own your notes. We claim no rights over their content.</li>
<li>You are responsible for keeping your Google account and your phone secure.</li>
<li>
If you use the end-to-end vault, keep your 6-word recovery phrase safe. We cannot recover vault notes without
it.
</li>
<li>Keep your own backups of anything important.</li>
</ul>

<h2>3. Atomic Energy and Atomic Coins</h2>
<ul>
<li>
Atomic Energy and Atomic Coins are virtual items used only inside Atomic Notes, for cloud sync and note
capacity.
</li>
<li>They have no cash value, cannot be exchanged for money, and cannot be transferred to another account.</li>
<li>
We may change how much energy or how many coins features cost, and how they are granted. We will announce
significant changes in the app.
</li>
<li>
Coins sent as a thank-you for supporting the project are a gift from the developer. Payments you make to
support the project are handled by the payment platform under its own terms.
</li>
</ul>

<h2>4. Acceptable use</h2>
<p>You agree not to:</p>
<ul>
<li>attack, overload or try to get unauthorized access to the service or other people&apos;s accounts;</li>
<li>use automated means to create accounts, earn energy or coins, or send excessive requests;</li>
<li>use the service to break the law.</li>
</ul>

<h2>5. The software</h2>
<p>
The app&apos;s source code is public to read under the{" "}
<a href={`${REPO_URL}/blob/main/LICENSE`} target="_blank" rel="noreferrer">
Atomic Notes Source-Available License
</a>
. Install only official releases from the Atomic Notes GitHub Releases page.
</p>

<h2>6. Availability and changes</h2>
<p>
We try to keep the service running, but we do not guarantee it will always be available or error-free. We may
change, suspend or end any part of it. If we end cloud sync, the notes on your phone and the files in your Drive
stay yours.
</p>

<h2>7. No warranty</h2>
<p>
The service is provided &ldquo;as is&rdquo; and &ldquo;as available&rdquo;, without warranties of any kind, to
the fullest extent the law allows.
</p>

<h2>8. Limitation of liability</h2>
<p>
To the fullest extent the law allows, we are not liable for any indirect or consequential loss, or for any loss
of data, profits or goodwill, arising from your use of the service.
</p>

<h2>9. Ending your use</h2>
<p>
You can stop using the service at any time and ask us to delete your account. We may suspend or close accounts
that break these terms.
</p>

<h2>10. Changes to these terms</h2>
<p>
We will update the date at the top when these terms change, and announce significant changes in the app.
Continuing to use the service after a change means you accept the new terms.
</p>

<h2>Contact</h2>
<p>
Questions about these terms: reach the developer through{" "}
<a href="https://github.com/DevBehindYou" target="_blank" rel="noreferrer">
github.com/DevBehindYou
</a>
.
</p>
</LegalPage>
);
}
30 changes: 30 additions & 0 deletions src/components/LegalPage.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import { SiteNav } from "@/components/SiteNav";
import { SiteFooter } from "@/components/SiteFooter";

/** Shared frame for the privacy policy and the terms: site chrome, a title block and readable prose. */
export function LegalPage({
eyebrow,
title,
updated,
children,
}: {
eyebrow: string;
title: string;
updated: string;
children: React.ReactNode;
}) {
return (
<>
<SiteNav />
<main>
<article className="wrap legal">
<p className="eyebrow">{eyebrow}</p>
<h1>{title}</h1>
<p className="mono-label legal-updated">Last updated: {updated}</p>
<div className="prose">{children}</div>
</article>
</main>
<SiteFooter />
</>
);
}
2 changes: 2 additions & 0 deletions src/components/SiteFooter.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ export function SiteFooter() {
<a href={`${REPO_URL}/blob/main/TRANSPARENCY.md`} target="_blank" rel="noreferrer">
Transparency
</a>
<Link href="/privacy">Privacy</Link>
<Link href="/terms">Terms</Link>
<Link href="/blog">Blog</Link>
<Link href="/updates">Updates</Link>
<a href="/feed.xml">RSS</a>
Expand Down