feat(web): ARES logo SVG + full SEO (metadata, sitemap, robots, favicon, per-page titles)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
romysaputrasihananda
2026-06-11 16:30:05 +07:00
parent 6cd8959c2d
commit daabb65f30
7 changed files with 95 additions and 14 deletions
+6
View File
@@ -1,5 +1,11 @@
import type { Metadata } from "next";
import Link from "next/link";
export const metadata: Metadata = {
title: "Backtest Results",
description: "ARES backtest results: M5 Momentum FVG scalper on XAUUSDm. Best run: PF 1.42, +43.2% net return, 11.5% max drawdown.",
};
const results = [
{ period: "1 Month", tf: "M5", risk: "1%", trades: 159, wr: 55.3, pf: 1.42, ret: 43.2, dd: -11.5, highlight: true },
{ period: "1 Month", tf: "M5", risk: "5%", trades: 159, wr: 55.3, pf: 1.26, ret: 390, dd: -156, highlight: false },
+49 -11
View File
@@ -2,13 +2,44 @@ import type { Metadata } from "next";
import "./globals.css";
import Nav from "@/components/Nav";
const SITE_URL = "https://ares-six-peach.vercel.app";
export const metadata: Metadata = {
title: "ARES — Automated Trading Bot",
description: "Live forward-test results for ARES, an M5 Momentum FVG scalper built in Rust.",
metadataBase: new URL(SITE_URL),
title: {
default: "ARES — Automated Gold Trading Bot",
template: "%s · ARES",
},
description:
"Live forward-test results for ARES, an M5 Momentum FVG scalper built in Rust. Trades XAUUSDm with EMA-20 trend filter and automated risk management.",
keywords: [
"algorithmic trading", "gold trading bot", "XAUUSD EA",
"MT5 expert advisor", "Rust trading bot", "FVG scalper",
"forex robot", "automated trading", "ICT strategy",
],
authors: [{ name: "Romy Saputra Sihananda" }],
creator: "Romy Saputra Sihananda",
robots: {
index: true,
follow: true,
googleBot: { index: true, follow: true, "max-snippet": -1, "max-image-preview": "large" },
},
openGraph: {
title: "ARES Trading Bot",
description: "Live forward-test · M5 Momentum FVG · XAUUSDm",
type: "website",
url: SITE_URL,
siteName: "ARES Trading Bot",
title: "ARES — Automated Gold Trading Bot",
description: "Live forward-test · M5 Momentum FVG scalper · XAUUSDm · Built in Rust",
locale: "en_US",
},
twitter: {
card: "summary_large_image",
title: "ARES — Automated Gold Trading Bot",
description: "Live forward-test · M5 Momentum FVG scalper · XAUUSDm · Built in Rust",
},
icons: {
icon: "/favicon.svg",
shortcut: "/favicon.svg",
},
};
@@ -20,25 +51,32 @@ export default function RootLayout({ children }: { children: React.ReactNode })
<main className="max-w-5xl mx-auto px-4 sm:px-6 py-12">
{children}
</main>
<footer className="border-t border-hl mt-section">
<footer style={{ borderTop: "1px solid var(--c-hl)" }} className="mt-24">
<div className="max-w-5xl mx-auto px-6 py-16 grid grid-cols-1 sm:grid-cols-3 gap-10">
<div>
<span className="font-mono text-xs tracking-widest text-ink-sub uppercase">ARES</span>
<p className="text-sm text-ink-sub mt-3 leading-relaxed">
<div className="flex items-center gap-2 mb-3">
<svg width="22" height="22" viewBox="0 0 26 26" fill="none" aria-hidden="true">
<rect width="26" height="26" rx="6" fill="#5e6ad2"/>
<path d="M8 19 L13 8 L18 19" stroke="white" strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round"/>
<path d="M10.2 15.5 H15.8" stroke="white" strokeWidth="1.8" strokeLinecap="round"/>
</svg>
<span className="font-mono text-sm font-semibold" style={{ letterSpacing: "0.18em", color: "var(--c-ink)" }}>ARES</span>
</div>
<p className="text-sm leading-relaxed" style={{ color: "var(--c-ink-sub)" }}>
M5 Momentum FVG Scalper<br />Built in Rust · XAUUSDm
</p>
</div>
<div>
<p className="text-xs font-medium text-ink-sub uppercase tracking-eyebrow mb-4">Navigation</p>
<ul className="space-y-2 text-sm text-ink-sub">
<p className="eyebrow mb-4">Navigation</p>
<ul className="space-y-2 text-sm" style={{ color: "var(--c-ink-sub)" }}>
<li><a href="/" className="hover:text-ink transition-colors">Dashboard</a></li>
<li><a href="/trades" className="hover:text-ink transition-colors">Trades</a></li>
<li><a href="/backtest" className="hover:text-ink transition-colors">Backtest</a></li>
</ul>
</div>
<div>
<p className="text-xs font-medium text-ink-sub uppercase tracking-eyebrow mb-4">Disclaimer</p>
<p className="text-xs text-ink-ter leading-relaxed">
<p className="eyebrow mb-4">Disclaimer</p>
<p className="text-xs leading-relaxed" style={{ color: "var(--c-ink-ter)" }}>
Past performance does not guarantee future results. Demo account forward test. Not financial advice.
</p>
</div>
+8
View File
@@ -0,0 +1,8 @@
import type { MetadataRoute } from "next";
export default function robots(): MetadataRoute.Robots {
return {
rules: { userAgent: "*", allow: "/" },
sitemap: "https://ares-six-peach.vercel.app/sitemap.xml",
};
}
+11
View File
@@ -0,0 +1,11 @@
import type { MetadataRoute } from "next";
const BASE = "https://ares-six-peach.vercel.app";
export default function sitemap(): MetadataRoute.Sitemap {
return [
{ url: BASE, lastModified: new Date(), changeFrequency: "hourly", priority: 1.0 },
{ url: `${BASE}/trades`, lastModified: new Date(), changeFrequency: "hourly", priority: 0.9 },
{ url: `${BASE}/backtest`,lastModified: new Date(), changeFrequency: "monthly", priority: 0.7 },
];
}
+6
View File
@@ -1,8 +1,14 @@
import type { Metadata } from "next";
import { getAccount, getAllDeals, type Deal } from "@/lib/mt5";
import { formatCurrency, formatDate } from "@/lib/format";
import EquityChart from "@/components/EquityChart";
import TradesRefresher from "@/components/TradesRefresher";
export const metadata: Metadata = {
title: "Trade History",
description: "Live closed trades and equity curve for ARES — M5 Momentum FVG scalper on XAUUSDm.",
};
export const dynamic = "force-dynamic";
const MAGIC = 19730;
+10 -3
View File
@@ -14,9 +14,16 @@ export default function Nav() {
return (
<nav className="sticky top-0 z-50" style={{ backgroundColor: 'var(--c-canvas)', borderBottom: '1px solid var(--c-hl)' }}>
<div className="max-w-5xl mx-auto px-4 sm:px-6 h-14 flex items-center gap-6">
{/* wordmark */}
<Link href="/" className="font-mono text-xs tracking-widest text-ink-sub uppercase hover:text-ink transition-colors">
ARES
{/* logo + wordmark */}
<Link href="/" className="flex items-center gap-2 group">
<svg width="26" height="26" viewBox="0 0 26 26" fill="none" aria-hidden="true">
<rect width="26" height="26" rx="6" fill="#5e6ad2"/>
<path d="M8 19 L13 8 L18 19" stroke="white" strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round"/>
<path d="M10.2 15.5 H15.8" stroke="white" strokeWidth="1.8" strokeLinecap="round"/>
</svg>
<span className="font-mono text-sm font-semibold tracking-widest text-ink group-hover:text-accent transition-colors" style={{ letterSpacing: '0.18em' }}>
ARES
</span>
</Link>
{/* nav links */}
+5
View File
@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="none">
<rect width="32" height="32" rx="8" fill="#5e6ad2"/>
<path d="M9 23 L16 9 L23 23" stroke="white" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M11.8 18.5 H20.2" stroke="white" stroke-width="2.2" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 360 B