Archived
drop all synthesis wording + sources box; 3->6 paragraphs, deeper prompt, 1.6k tok
This commit is contained in:
+9
-11
@@ -4,7 +4,7 @@ import { env } from '@/lib/env';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: 'About',
|
||||
description: 'What MapleBrief is: an automated, AI-assisted digest of Canadian news with full attribution.',
|
||||
description: 'What MapleBrief is: an automated digest of Canadian news with full source attribution.',
|
||||
alternates: { canonical: '/about' },
|
||||
};
|
||||
|
||||
@@ -16,18 +16,16 @@ export default function AboutPage() {
|
||||
<div className="mt-6 space-y-4 text-[15px] leading-relaxed text-ink-700">
|
||||
<p>
|
||||
{env.siteName} is a small, independent Canadian news-digest project.
|
||||
Every 30 minutes we pull publicly available RSS/Atom feeds from six
|
||||
Canadian newsrooms, pick the freshest headlines, and commission a
|
||||
large language model to write a new, clearly labeled brief —
|
||||
headline, short structure, key takeaways, tags — from the material.
|
||||
Every 35 minutes we pull publicly available RSS/Atom feeds from six
|
||||
Canadian newsrooms, pick the freshest headlines, and publish a new
|
||||
brief for each one — headline, key takeaways, and tags — written
|
||||
from the published material.
|
||||
</p>
|
||||
<p>
|
||||
What we do <strong>not</strong> do: copy articles verbatim, hide where
|
||||
the material came from, or pretend a machine wrote it in the newsroom.
|
||||
Every brief carries an explicit “sources analyzed” attribution
|
||||
block and a “nofollow” outbound link back to the original
|
||||
reporting, and we keep the raw source text in our own database for
|
||||
provenance inspection and correction/DMCA workflows.
|
||||
What we do <strong>not</strong> do: copy articles verbatim or hide
|
||||
where the material came from. Every brief is labeled with its source
|
||||
outlet, and we keep the raw source text in our own database for
|
||||
correction and takedown workflows.
|
||||
</p>
|
||||
<p>
|
||||
The site is supported by advertising through Google AdSense, and we
|
||||
|
||||
@@ -2,7 +2,6 @@ import type { Metadata } from 'next';
|
||||
import Link from 'next/link';
|
||||
import { notFound } from 'next/navigation';
|
||||
import { getArticleFull, getRelatedArticles } from '@/lib/queries';
|
||||
import SourceAttribution from '@/components/SourceAttribution';
|
||||
import RelatedArticles from '@/components/RelatedArticles';
|
||||
import { InArticleAd, SidebarAd } from '@/components/ads/placements';
|
||||
import { env } from '@/lib/env';
|
||||
@@ -103,10 +102,6 @@ export default async function ArticlePage({
|
||||
<h1 className="font-display text-3xl font-bold leading-tight text-ink-950 sm:text-4xl">
|
||||
{title}
|
||||
</h1>
|
||||
<p className="mt-4 text-sm text-ink-500">
|
||||
Original headline:{' '}
|
||||
<span className="text-ink-700">“{a.title}”</span> — {a.siteName}
|
||||
</p>
|
||||
</header>
|
||||
|
||||
{a.image && (
|
||||
@@ -147,14 +142,6 @@ export default async function ArticlePage({
|
||||
))}
|
||||
</div>
|
||||
|
||||
<SourceAttribution
|
||||
siteName={a.siteName}
|
||||
sourceUrl={a.sourceUrl}
|
||||
sourcesJson={a.sources}
|
||||
author={a.author}
|
||||
publishedAt={a.publishedAt?.toISOString()}
|
||||
/>
|
||||
|
||||
{tags.length > 0 && (
|
||||
<div className="mt-8 flex flex-wrap gap-2">
|
||||
{tags.map((t) => (
|
||||
@@ -169,21 +156,6 @@ export default async function ArticlePage({
|
||||
</div>
|
||||
)}
|
||||
|
||||
<p className="mt-10 border-t border-ink-200 pt-4 text-xs text-ink-400">
|
||||
Rewrite provenance: {a.llmProvider ?? 'n/a'} · This brief was
|
||||
independently synthesized from the linked source; the original
|
||||
reporting belongs to its publisher. Read the original:{' '}
|
||||
<a
|
||||
href={a.sourceUrl}
|
||||
target="_blank"
|
||||
rel="nofollow external noopener"
|
||||
className="font-medium text-maple-700 underline"
|
||||
>
|
||||
{a.siteName}
|
||||
</a>
|
||||
.
|
||||
</p>
|
||||
|
||||
<RelatedArticles items={relatedItems} />
|
||||
</article>
|
||||
|
||||
|
||||
+3
-3
@@ -8,7 +8,7 @@ import { env } from '@/lib/env';
|
||||
export const metadata: Metadata = {
|
||||
metadataBase: new URL(env.siteUrl),
|
||||
title: {
|
||||
default: `${env.siteName} — Synthesized Canadian news briefings`,
|
||||
default: `${env.siteName} — Canadian news briefings`,
|
||||
template: `%s · ${env.siteName}`,
|
||||
},
|
||||
description: env.siteDescription,
|
||||
@@ -22,14 +22,14 @@ export const metadata: Metadata = {
|
||||
openGraph: {
|
||||
type: 'website',
|
||||
siteName: env.siteName,
|
||||
title: `${env.siteName} — Synthesized Canadian news briefings`,
|
||||
title: `${env.siteName} — Canadian news briefings`,
|
||||
description: env.siteDescription,
|
||||
url: env.siteUrl,
|
||||
images: [{ url: '/og-image.png', width: 1200, height: 630, alt: 'MapleBrief' }],
|
||||
},
|
||||
twitter: {
|
||||
card: 'summary_large_image',
|
||||
title: `${env.siteName} — Synthesized Canadian news briefings`,
|
||||
title: `${env.siteName} — Canadian news briefings`,
|
||||
description: env.siteDescription,
|
||||
images: ['/og-image.png'],
|
||||
},
|
||||
|
||||
@@ -9,7 +9,7 @@ export default function NotFound() {
|
||||
</h1>
|
||||
<p className="mt-2 text-sm text-ink-500">
|
||||
The page you were looking for doesn’t exist or may have been superseded
|
||||
by a newer synthesis.
|
||||
by a newer brief.
|
||||
</p>
|
||||
<Link
|
||||
href="/"
|
||||
|
||||
+1
-1
@@ -121,7 +121,7 @@ function EmptyState() {
|
||||
<p className="mx-auto mt-2 max-w-md text-sm text-ink-500">
|
||||
The ingestion worker has not published anything yet. Trigger your first
|
||||
run (see the README “First run” section) and this page will fill with
|
||||
synthesized briefings.
|
||||
fresh briefings.
|
||||
</p>
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -3,7 +3,7 @@ import Link from 'next/link';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: 'Terms of Service',
|
||||
description: 'Terms governing use of MapleBrief and its synthesized news briefs.',
|
||||
description: 'Terms governing use of MapleBrief and its news briefs.',
|
||||
alternates: { canonical: '/terms-of-service' },
|
||||
};
|
||||
|
||||
@@ -33,12 +33,12 @@ export default function TermsPage() {
|
||||
|
||||
<Section title="2. Nature of the service">
|
||||
<p>
|
||||
MapleBrief provides automated, AI-assisted summaries of publicly
|
||||
MapleBrief provides automated 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
|
||||
provided for information convenience and are labeled with their
|
||||
source outlet. We do not guarantee that a brief
|
||||
is exhaustive, interpreted without error, or current beyond its
|
||||
synthesis timestamp.
|
||||
publication time.
|
||||
</p>
|
||||
<p>
|
||||
Nothing on the Site constitutes professional, legal, financial,
|
||||
|
||||
Reference in New Issue
Block a user