diff --git a/app/ihatepdfs/page.tsx b/app/ihatepdfs/page.tsx new file mode 100644 index 0000000..2f1533d --- /dev/null +++ b/app/ihatepdfs/page.tsx @@ -0,0 +1,116 @@ +import Image from 'next/image'; +import Link from 'next/link'; +import type { Metadata } from 'next'; +import appIcon from '@/public/images/ihatepdfs/icon.png'; +import mainWindow from '@/public/images/ihatepdfs/main-window.png'; + +export const metadata: Metadata = { + title: 'I Hate PDFs', + description: 'A native macOS PDF reader for highlighting, commenting, reviewing, and saving annotated PDFs locally on your Mac.', + alternates: { + canonical: '/ihatepdfs', + }, + openGraph: { + title: 'I Hate PDFs', + description: 'A native macOS PDF reader for highlighting, commenting, reviewing, and saving annotated PDFs locally on your Mac.', + url: '/ihatepdfs', + images: [ + { + url: '/images/ihatepdfs/main-window.png', + width: 1440, + height: 1440, + alt: 'I Hate PDFs macOS app showing a PDF with comments sidebar', + }, + ], + }, +}; + +const features = [ + 'Open local PDF files without uploading them anywhere.', + 'Highlight text, add comments, underline passages, and place free-text notes.', + 'Review annotations in a compact comments sidebar with replies, filters, and search.', + 'Save annotations back into the original PDF or export an annotated copy.', + 'Customize highlight and comment colors from the macOS Settings window.', +]; + +export default function IHatePDFsPage() { + return ( +
+
+
+
+
+ +

macOS PDF reader

+
+ +
+

+ I Hate PDFs +

+

+ A native macOS PDF reader built for local annotation, review, and saving without accounts, tracking, or cloud upload. +

+
+ +
+ + Privacy policy + + + Contact + +
+
+ +
+ I Hate PDFs showing a marked-up PDF with the comments sidebar open +
+
+ +
+

Features

+
+ {features.map((feature) => ( +

+ {feature} +

+ ))} +
+
+ +
+

Privacy

+
+

+ I Hate PDFs keeps opened PDFs on your Mac. The app does not collect analytics, use advertising, create accounts, or send your documents to a server. +

+

+ See the full{' '} + + privacy policy + + . +

+
+
+
+
+ ); +} diff --git a/app/ihatepdfs/privacy/page.tsx b/app/ihatepdfs/privacy/page.tsx new file mode 100644 index 0000000..36f23cf --- /dev/null +++ b/app/ihatepdfs/privacy/page.tsx @@ -0,0 +1,93 @@ +import Link from 'next/link'; +import type { Metadata } from 'next'; + +export const metadata: Metadata = { + title: 'I Hate PDFs Privacy Policy', + description: 'Privacy policy for I Hate PDFs, a macOS PDF reader that keeps files local and does not collect personal data.', + alternates: { + canonical: '/ihatepdfs/privacy', + }, + openGraph: { + title: 'I Hate PDFs Privacy Policy', + description: 'I Hate PDFs does not collect, store, transmit, sell, or share personal data.', + url: '/ihatepdfs/privacy', + }, +}; + +const sections = [ + { + title: 'Data Collection', + body: 'I Hate PDFs does not collect, store, transmit, sell, or share personal data.', + }, + { + title: 'PDF Files', + body: 'PDF files opened in the app stay on your Mac. Annotations and comments are saved only when you choose to save or export a PDF.', + }, + { + title: 'Analytics And Tracking', + body: 'The app does not use analytics, advertising, tracking, accounts, or third-party SDKs.', + }, + { + title: 'macOS Sharing', + body: 'If you use macOS sharing features, Apple or the selected sharing service may process the file according to their own privacy policies.', + }, +]; + +export default function IHatePDFsPrivacyPage() { + return ( +
+
+
+

I Hate PDFs

+

+ Privacy Policy +

+

+ Effective date: June 21, 2026. +

+
+ +
+
+

+ Summary +

+

+ I Hate PDFs is designed as a local macOS app. It does not collect personal data and does not upload your PDF files to a server. +

+
+ + {sections.map((section) => ( +
+

+ {section.title} +

+

+ {section.body} +

+
+ ))} + +
+

+ Contact +

+

+ Questions about this policy can be sent to{' '} + + mathabbayi@icloud.com + + . +

+
+
+ + +
+
+ ); +} diff --git a/app/sitemap.ts b/app/sitemap.ts index e07d243..691c6e6 100644 --- a/app/sitemap.ts +++ b/app/sitemap.ts @@ -16,6 +16,8 @@ export default function sitemap(): MetadataRoute.Sitemap { { url: 'https://akkolli.net/projects/graph-attention-topology', lastModified: new Date('2024-10-26') }, { url: 'https://akkolli.net/blog', lastModified: latestPostDate }, { url: 'https://akkolli.net/inspire-me', lastModified: new Date('2026-06-19') }, + { url: 'https://akkolli.net/ihatepdfs', lastModified: new Date('2026-06-21') }, + { url: 'https://akkolli.net/ihatepdfs/privacy', lastModified: new Date('2026-06-21') }, { url: 'https://akkolli.net/resume' }, ...blogEntries, ]; diff --git a/public/images/ihatepdfs/icon.png b/public/images/ihatepdfs/icon.png new file mode 100644 index 0000000..1789970 Binary files /dev/null and b/public/images/ihatepdfs/icon.png differ diff --git a/public/images/ihatepdfs/main-window.png b/public/images/ihatepdfs/main-window.png new file mode 100644 index 0000000..9f58703 Binary files /dev/null and b/public/images/ihatepdfs/main-window.png differ