diff --git a/src/app/globals.css b/src/app/globals.css index 7c39f45..4cbe882 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -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; +} diff --git a/src/app/privacy/page.tsx b/src/app/privacy/page.tsx new file mode 100644 index 0000000..9116535 --- /dev/null +++ b/src/app/privacy/page.tsx @@ -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 ( + +

+ 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 (“we”, + “us”). +

+ +

The short version

+ + +

Information we collect

+

To run your account and sync, our server keeps:

+ +

+ 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's server and this + website. This website sets no tracking or advertising cookies. +

+ +

How we use Google user data

+

Atomic Notes asks Google for these permissions, and uses each one only as described:

+ +

+ 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 “Service providers” 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. +

+

+ Atomic Notes' use and transfer to any other app of information received from Google APIs will adhere to the{" "} + + Google API Services User Data Policy + + , including the Limited Use requirements. +

+ +

The end-to-end vault

+

+ 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. +

+ +

Where data is stored and how it is protected

+ + +

How long we keep it

+ + +

Your choices

+ + +

Service providers

+ +

+ 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. +

+ +

Children

+

Atomic Notes is not directed at children under 13, and we do not knowingly collect their information.

+ +

Changes to this policy

+

+ We will update the date at the top when this policy changes, and announce significant changes in the app's + notification center. +

+ +

Contact

+

+ Questions or requests: reach the developer through{" "} + + github.com/DevBehindYou + + . The app's source code, including how it handles data, is public to read at{" "} + + Atomic-Notes-App-V0.2 + + . +

+
+ ); +} diff --git a/src/app/sitemap.ts b/src/app/sitemap.ts index b6e87fb..c1fb511 100644 --- a/src/app/sitemap.ts +++ b/src/app/sitemap.ts @@ -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, ]; } diff --git a/src/app/terms/page.tsx b/src/app/terms/page.tsx new file mode 100644 index 0000000..9072fa2 --- /dev/null +++ b/src/app/terms/page.tsx @@ -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 ( + +

+ These terms apply to the Atomic Notes Android app, its sync service and this website (together, “the + service”), operated by Ashutosh Sharma, who publishes as DevBehindYou (“we”). By using the + service, you agree to them. How we handle your data is described in the{" "} + Privacy Policy. +

+ +

1. The service

+

+ 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's services being available. The service is under + active development, and features may change. +

+ +

2. Your account and your notes

+ + +

3. Atomic Energy and Atomic Coins

+ + +

4. Acceptable use

+

You agree not to:

+ + +

5. The software

+

+ The app's source code is public to read under the{" "} + + Atomic Notes Source-Available License + + . Install only official releases from the Atomic Notes GitHub Releases page. +

+ +

6. Availability and changes

+

+ 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. +

+ +

7. No warranty

+

+ The service is provided “as is” and “as available”, without warranties of any kind, to + the fullest extent the law allows. +

+ +

8. Limitation of liability

+

+ 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. +

+ +

9. Ending your use

+

+ 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. +

+ +

10. Changes to these terms

+

+ 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. +

+ +

Contact

+

+ Questions about these terms: reach the developer through{" "} + + github.com/DevBehindYou + + . +

+
+ ); +} diff --git a/src/components/LegalPage.tsx b/src/components/LegalPage.tsx new file mode 100644 index 0000000..97a50fc --- /dev/null +++ b/src/components/LegalPage.tsx @@ -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 ( + <> + +
+
+

{eyebrow}

+

{title}

+

Last updated: {updated}

+
{children}
+
+
+ + + ); +} diff --git a/src/components/SiteFooter.tsx b/src/components/SiteFooter.tsx index b31670e..bff0829 100644 --- a/src/components/SiteFooter.tsx +++ b/src/components/SiteFooter.tsx @@ -32,6 +32,8 @@ export function SiteFooter() { Transparency + Privacy + Terms Blog Updates RSS