Forked from Forthena (PERSONAL/forthena) and retargeted: - NO login, NO LLM: the edition is public and the ranking is deterministic (stories that name Sen. BAM lead; freshest first) — Daniel: no like/dislike or store profile for visitors. - Crawler scoped to BAM: Bing news keyword queries + Inquirer/Rappler fallback wires, with a two-tier relevance gate (named-BAM always; Aquino+legislative-context only from fallback) so op-eds and non-Bam senators are dropped. - Desks: BAM (lead), Gaming, Education, Politics, Energy, PH, Business. - Community board /board: 'Thank you Senator BAM' — nickname-only posts, HTML-stripped, URL-only rejected, IP rate-limited (3/10min, 20/day). - Yellow-gamer theme (Orbitron/Rajdhani/JetBrains Mono, dark + gold, HUD corners), supporter disclaimer in header and footer. - Tests: category/date/relevance/text suites + Mongo board suite + full HTTP e2e (all passing). Infra: 66.181.46.132 (bidaangmamamayan.com), local Mongo 7.0, nginx + certbot TLS, PM2 bama (:3000) + 15-min crawl cron.
43 lines
1.8 KiB
JavaScript
43 lines
1.8 KiB
JavaScript
import "./globals.css";
|
|
|
|
export const metadata = {
|
|
title: "BidaAngMamamayan — BIDA ANG MAMAMAYAN",
|
|
description:
|
|
"A tribute news desk for Senator BAM Aquino — the gamer senator, champion of college students and education. Every story that names him, crawled live from the Philippine wire.",
|
|
keywords:
|
|
"Bam Aquino, Bida ang Mamamayan, senator, education, college, esports, gaming, Philippines Senate, supporter tribute",
|
|
openGraph: {
|
|
title: "BidaAngMamamayan — BIDA ANG MAMAMAYAN",
|
|
description:
|
|
"A supporter tribute news desk for Senator BAM Aquino: the latest news on the gamer senator and his fight for college students and education.",
|
|
siteName: "BidaAngMamamayan",
|
|
type: "website",
|
|
},
|
|
};
|
|
|
|
export const viewport = {
|
|
width: "device-width",
|
|
initialScale: 1,
|
|
themeColor: "#0c0b09",
|
|
};
|
|
|
|
export default function RootLayout({ children }) {
|
|
return (
|
|
<html lang="en">
|
|
<head>
|
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossOrigin="anonymous" />
|
|
<link
|
|
href="https://fonts.googleapis.com/css2?family=Orbitron:wght@600;800;900&family=Rajdhani:wght@400;500;600;700&family=JetBrains+Mono:wght@400;700&display=swap"
|
|
rel="stylesheet"
|
|
/>
|
|
<link
|
|
rel="icon"
|
|
href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Crect width='64' height='64' rx='12' fill='%230c0b09'/%3E%3Ctext x='32' y='45' font-family='Arial Black, sans-serif' font-size='34' font-weight='900' text-anchor='middle' fill='%23ffd426'%3EB%3C/text%3E%3Crect x='40' y='14' width='14' height='14' rx='3' fill='%232bff88'/%3E%3C/svg%3E"
|
|
/>
|
|
</head>
|
|
<body>{children}</body>
|
|
</html>
|
|
);
|
|
}
|