Archived
MapleBrief: production Canadian news aggregator
Next.js 14 + TypeScript + Tailwind + Prisma/SQLite. - LLM synthesis abstraction (OpenAI/Anthropic/Ollama) + admin settings UI - RSS ingestion pipeline (parser + cheerio content) + node-cron worker - AdSense AdUnit placements (header/in-feed/in-article/sidebar) - Sources analysis attribution, nofollow links, canonical/OG, sitemap/robots - Admin auth (ADMIN_API_KEY, timingSafeEqual, fail-closed 401) - Multi-cell lady-ga-ga marker, sitemap, robots, legal pages - Comprehensive README (setup, LLM config, AdSense, migrations, deploy)
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
import type { Metadata } from 'next';
|
||||
import Link from 'next/link';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: 'Terms of Service',
|
||||
description: 'Terms governing use of MapleBrief and its synthesized news briefs.',
|
||||
alternates: { canonical: '/terms-of-service' },
|
||||
};
|
||||
|
||||
function Section({ title, children }: { title: string; children: React.ReactNode }) {
|
||||
return (
|
||||
<section className="mt-8">
|
||||
<h2 className="font-display text-xl font-bold text-ink-900">{title}</h2>
|
||||
<div className="mt-3 space-y-3 text-[15px] leading-relaxed text-ink-700">{children}</div>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
|
||||
export default function TermsPage() {
|
||||
return (
|
||||
<div className="mx-auto max-w-3xl px-4 py-10 sm:px-6">
|
||||
<h1 className="font-display text-4xl font-bold text-ink-950">Terms of Service</h1>
|
||||
<p className="mt-3 text-sm text-ink-500">
|
||||
Last updated: {new Date().toISOString().slice(0, 10)}
|
||||
</p>
|
||||
|
||||
<Section title="1. Acceptance of terms">
|
||||
<p>
|
||||
By accessing or using MapleBrief (“the Site”), you agree to be
|
||||
bound by these Terms of Service. If you do not agree, discontinue use.
|
||||
</p>
|
||||
</Section>
|
||||
|
||||
<Section title="2. Nature of the service">
|
||||
<p>
|
||||
MapleBrief provides automated, AI-assisted summaries of publicly
|
||||
available news from third-party Canadian publishers. Briefs are
|
||||
synthesized for information convenience; each brief links to, and
|
||||
attributes, the original reporting. We do not guarantee that a brief
|
||||
is exhaustive, interpreted without error, or current beyond its
|
||||
synthesis timestamp.
|
||||
</p>
|
||||
<p>
|
||||
Nothing on the Site constitutes professional, legal, financial,
|
||||
medical, or investment advice.
|
||||
</p>
|
||||
</Section>
|
||||
|
||||
<Section title="3. Intellectual property and attribution">
|
||||
<p>
|
||||
The original articles remain the exclusive property of their
|
||||
respective publishers. MapleBrief's briefs are independently
|
||||
authored; links to original sources are provided with{' '}
|
||||
<code className="rounded bg-ink-100 px-1 text-sm">rel="nofollow"</code>{' '}
|
||||
and are intended as outbound referrals, not endorsements.
|
||||
</p>
|
||||
<p>
|
||||
You may share brief links for personal, non-commercial reference. You
|
||||
may not scrape, mirror, resell, or systematically redistribute the
|
||||
Site's content.
|
||||
</p>
|
||||
</Section>
|
||||
|
||||
<Section title="4. Acceptable use">
|
||||
<p>
|
||||
You agree not to: (a) interfere with or disrupt the Site or its
|
||||
infrastructure; (b) attempt to bypass rate limits or access controls;
|
||||
(c) use the Site for unlawful purposes; (d) attempt to extract the
|
||||
underlying raw feed content in bulk.
|
||||
</p>
|
||||
</Section>
|
||||
|
||||
<Section title="5. Termination">
|
||||
<p>
|
||||
We may modify or terminate any part of the Site at any time, with or
|
||||
without notice.
|
||||
</p>
|
||||
</Section>
|
||||
|
||||
<Section title="6. Limitation of liability">
|
||||
<p>
|
||||
To the maximum extent permitted by law, MapleBrief shall not be
|
||||
liable for indirect, incidental, special, consequential, or punitive
|
||||
damages arising from your use of (or inability to use) the Site.
|
||||
</p>
|
||||
</Section>
|
||||
|
||||
<Section title="7. Governing law">
|
||||
<p>
|
||||
These terms are governed by the laws of Ontario, Canada, without
|
||||
regard to conflict-of-law principles, and the exclusive remedy venue
|
||||
is the courts of Ontario.
|
||||
</p>
|
||||
</Section>
|
||||
|
||||
<Section title="8. Contact">
|
||||
<p>
|
||||
For questions about these terms, see our{' '}
|
||||
<Link href="/contact" className="font-medium text-maple-700 underline">
|
||||
contact page
|
||||
</Link>
|
||||
.
|
||||
</p>
|
||||
</Section>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user