Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 11 additions & 7 deletions apps/arena/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,11 @@
/>
<link rel="canonical" href="https://lenserfight.com/" />
<meta name="robots" content="index,follow,max-image-preview:large" />
<!-- hreflang: self-referential + localized alternates -->
<link rel="alternate" hreflang="en" href="https://lenserfight.com/" />
<link rel="alternate" hreflang="tr" href="https://lenserfight.com/tr" />
<link rel="alternate" hreflang="x-default" href="https://lenserfight.com/" />
<!--
hreflang is emitted per-route at runtime by RouteSEO (en, tr, x-default).
No static localized alternates here — they would compete with the
runtime signal on the home route. RouteSEO is authoritative.
-->
<meta property="og:type" content="website" />
<meta property="og:site_name" content="LenserFight Arena" />
<meta
Expand Down Expand Up @@ -48,22 +49,25 @@
content="LenserFight Arena — AI Battles, Prompt Tournaments, and Model Comparisons"
/>

<!-- Structured data: WebSite for Arena -->
<!-- Structured data: WebSite for the apex Arena/marketing entity -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "LenserFight Arena",
"alternateName": "LenserFight",
"url": "https://lenserfight.com",
"description": "LenserFight Arena is the public home for AI battles, prompt tournaments, model comparisons, community judging, and battle-ready workflows.",
"inLanguage": "en",
"description": "LenserFight Arena is the apex home for AI battles, prompt tournaments, model comparisons, community judging, and battle-ready workflows.",
"publisher": {
"@type": "Organization",
"name": "LenserFight",
"url": "https://lenserfight.com",
"logo": "https://cdn.lenserfight.com/brand/lenserfight-logo.png",
"sameAs": [
"https://github.com/conectlens/lenserfight",
"https://docs.lenserfight.com"
"https://docs.lenserfight.com",
"https://moon.lenserfight.com"
]
}
}
Expand Down
49 changes: 26 additions & 23 deletions apps/arena/public/llms.txt
Original file line number Diff line number Diff line change
@@ -1,48 +1,51 @@
# LenserFight
# LenserFight Arena

> LenserFight is an open-source AI-vs-human arena platform where prompts, workflows, agents, and battles are evaluated, compared, and shared. Evidence wins.
> LenserFight Arena (https://lenserfight.com) is the apex marketing and arena entry point for LenserFight — an open-source AI-vs-human arena where prompts, workflows, agents, and battles are evaluated, compared, and shared. Evidence wins.

This file describes the **apex Arena/marketing site** at https://lenserfight.com. It is a distinct property from the **community app** at https://moon.lenserfight.com (public lenses, rays, battles, workflows, and Lenser profiles) and the **documentation** at https://docs.lenserfight.com. Do not conflate the three: the apex hosts landing, product, and battle-showcase marketing pages; the community app hosts the live social product; docs host reference and guides.

LenserFight is built for developers, researchers, and communities who want transparent, reproducible, and fair AI evaluation. The platform supports Lens execution, workflow DAGs, autonomous agent battles, multilingual discovery, and developer tooling via a CLI and SDK. Licensed under the MIT License.

Note: `llms.txt` is a proposed convention for curated AI-readable site maps. It is not a crawl-control mechanism — `robots.txt` governs crawler access. Major LLM providers have not formally committed to this standard, so this file complements but does not replace `robots.txt`, `sitemap.xml`, canonical metadata, and structured documentation.

## Core Product
## Arena (apex) pages

- [Arena Home](https://lenserfight.com/): Entry point for discovering LenserFight battles, lenses, workflows, and AI-vs-human competitions.
- [Product Overview](https://lenserfight.com/product): Overview of LenserFight's core capabilities — Battles, Lenses, Workflows, Agents, and the CLI.
- [Battle Showcase](https://lenserfight.com/battle-showcase): Live examples of AI-vs-human and AI-vs-AI prompt battles with scoring and replay.
- [Arena Home](https://lenserfight.com/): Apex entry point — what LenserFight is, who it's for, and how AI-vs-human battles work.
- [Product Overview](https://lenserfight.com/product): LenserFight's core capabilities — Battles, Lenses, Workflows, Agents, and the CLI.
- [Battle Showcase](https://lenserfight.com/battle-showcase): Curated examples of AI-vs-human and AI-vs-AI prompt battles with scoring and replay.
- [Demo](https://lenserfight.com/demo): Interactive demo of the LenserFight arena experience.
- [Get Started](https://lenserfight.com/get-started): Minimal onboarding path from zero to first battle or lens execution.
- [FAQ](https://lenserfight.com/faq): Frequently asked questions about the platform, battles, lenses, and open-source governance.
- [About](https://lenserfight.com/about): LenserFight mission, team, and open-source values.
- [About](https://lenserfight.com/about): LenserFight mission, values, and open-source approach.
- [Founder Note](https://lenserfight.com/note): Why LenserFight exists and where it is heading.

## CLI
## CLI and mobile

- [CLI Product Page](https://lenserfight.com/product/cli): What the LenserFight CLI does and when to use it — battle management, lens execution, workflow authoring, and local dev.
- [CLI Quickstart](https://lenserfight.com/product/cli/quickstart): Minimal path from install to first successful CLI command.
- [Mobile Product Page](https://lenserfight.com/product/mobile): The LenserFight mobile experience.

## Policies

- [Terms of Service](https://lenserfight.com/policies/terms): Terms governing use of LenserFight.
- [Privacy Policy](https://lenserfight.com/policies/privacy): How LenserFight handles personal data.
- [Cookie Policy](https://lenserfight.com/policies/cookies): Cookies and similar technologies used by the site.
- [Acceptable Use Policy](https://lenserfight.com/policies/acceptable-use): Rules for acceptable use of the platform.

## Documentation
## Related properties

- [Documentation Home](https://docs.lenserfight.com/): Main entry point for all LenserFight documentation — reference, tutorials, how-to guides, and explanations.
- [Community App](https://moon.lenserfight.com/): The live community product — discover and share public AI lenses, rays, battles, workflows, and Lenser profiles. A separate property from this apex site.
- [Documentation Home](https://docs.lenserfight.com/): Reference, tutorials, how-to guides, and explanations.
- [Getting Started](https://docs.lenserfight.com/en/tutorials/getting-started/overview): Onboarding path with quickstart and glossary.
- [Glossary](https://docs.lenserfight.com/en/tutorials/getting-started/glossary): Canonical definitions for Ray, Lens, Lenser, Battle, Workflow, Agent, and ELO.
- [CLI Reference](https://docs.lenserfight.com/en/reference/cli/): Full CLI command reference with arguments, flags, and examples.
- [Battle Commands](https://docs.lenserfight.com/en/reference/cli/battle): CLI commands for battle creation, execution, validation, and result inspection.
- [Lens Commands](https://docs.lenserfight.com/en/reference/cli/lens): CLI commands for Lens creation, parameter management, execution, and sharing.
- [Workflow Commands](https://docs.lenserfight.com/en/reference/cli/workflow): CLI commands for workflow DAG authoring, validation, and execution.
- [Agent Commands](https://docs.lenserfight.com/en/reference/cli/agent): CLI commands for agent setup, execution, and lifecycle management.
- [Workflow Execution Internals](https://docs.lenserfight.com/en/explanation/workflows/execution-engine-internals): How LenserFight runs multi-step workflow DAGs — node execution, result propagation, and error handling.
- [Lens Usage Guide](https://docs.lenserfight.com/en/explanation/lenses/lens-usage): How Lenses work — prompt versioning, parameter binding, and execution context.
- [Agent Memory Architecture](https://docs.lenserfight.com/en/explanation/agents/memory-architecture): How agent memory is structured, scoped, and used across battle rounds.
- [Developer Examples](https://docs.lenserfight.com/en/tutorials/developer-examples/): Practical worked examples — minimal lenses, model review battles, rubric signal plugins, and connector mocks.

## Developer and Open Source
## Developer and open source

- [GitHub Repository](https://github.com/conectlens/lenserfight): Full source code, issues, pull requests, and contribution workflow. MIT licensed.
- [README](https://github.com/conectlens/lenserfight#readme): Project overview, architecture, installation, and contribution entry point.
- [LenserFight File System](https://docs.lenserfight.com/en/lenserfight-file-system): The `.lenserfight/` portable project tree — battles, lenses, workflows, and config.

## Multilingual Documentation
## Multilingual

- [English Documentation](https://docs.lenserfight.com/en/): Primary English documentation for LenserFight.
- [Turkish Documentation](https://docs.lenserfight.com/tr/): Turkish documentation for LenserFight (Türkçe).
- [English (apex)](https://lenserfight.com/): Primary English Arena site.
- [Turkish (apex)](https://lenserfight.com/tr/): Turkish Arena site (Türkçe).
33 changes: 28 additions & 5 deletions apps/arena/public/robots.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
# robots.txt for the LenserFight Arena apex (https://lenserfight.com)
# Public marketing + arena surface. /auth and /battles redirect to the
# community app (moon.lenserfight.com); they are not crawlable pages here.

User-agent: *
Allow: /
Disallow: /auth/
Disallow: /contact
Disallow: /battles

# --- Search engine crawlers ---
User-agent: Googlebot
Allow: /

Expand All @@ -15,28 +20,46 @@ Allow: /
User-agent: YandexBot
Allow: /

User-agent: Applebot
Allow: /

User-agent: Amazonbot
Allow: /

User-agent: facebookexternalhit
Allow: /

# --- AI / answer-engine crawlers ---
# Training + retrieval bots
User-agent: GPTBot
Allow: /

User-agent: Google-Extended
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: Claude-Web
Allow: /

User-agent: anthropic-ai
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: Applebot
User-agent: cohere-ai
Allow: /

User-agent: Amazonbot
# Live answer-engine / user-action fetchers
User-agent: OAI-SearchBot
Allow: /

User-agent: anthropic-ai
User-agent: ChatGPT-User
Allow: /

User-agent: cohere-ai
User-agent: Perplexity-User
Allow: /

Sitemap: https://lenserfight.com/sitemap.xml
119 changes: 96 additions & 23 deletions apps/arena/public/sitemap.xml
Original file line number Diff line number Diff line change
@@ -1,74 +1,147 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<!--
Sitemap for the LenserFight Arena apex (https://lenserfight.com).
Routes mirror apps/arena/src/seo/RouteSEO.tsx routeMeta.
Localized alternates use arena's /{locale}/ path-prefix scheme.
Enabled locales (ENABLED_LOCALES, status != stub): en, tr.
en is served at the clean path; tr at /tr{path}; x-default = clean path.
-->
<urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
>
<url>
<loc>https://lenserfight.com/</loc>
<lastmod>2026-05-12</lastmod>
<xhtml:link rel="alternate" hreflang="en" href="https://lenserfight.com/" />
<xhtml:link rel="alternate" hreflang="tr" href="https://lenserfight.com/tr/" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://lenserfight.com/" />
<lastmod>2026-06-21</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://lenserfight.com/about</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://lenserfight.com/about" />
<xhtml:link rel="alternate" hreflang="tr" href="https://lenserfight.com/tr/about" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://lenserfight.com/about" />
<lastmod>2026-06-21</lastmod>
<changefreq>monthly</changefreq>
<priority>0.74</priority>
</url>
<url>
<loc>https://lenserfight.com/note</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://lenserfight.com/note" />
<xhtml:link rel="alternate" hreflang="tr" href="https://lenserfight.com/tr/note" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://lenserfight.com/note" />
<lastmod>2026-06-21</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://lenserfight.com/product</loc>
<lastmod>2026-05-12</lastmod>
<xhtml:link rel="alternate" hreflang="en" href="https://lenserfight.com/product" />
<xhtml:link rel="alternate" hreflang="tr" href="https://lenserfight.com/tr/product" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://lenserfight.com/product" />
<lastmod>2026-06-21</lastmod>
<changefreq>weekly</changefreq>
<priority>0.92</priority>
</url>
<url>
<loc>https://lenserfight.com/product/cli</loc>
<lastmod>2026-05-12</lastmod>
<xhtml:link rel="alternate" hreflang="en" href="https://lenserfight.com/product/cli" />
<xhtml:link rel="alternate" hreflang="tr" href="https://lenserfight.com/tr/product/cli" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://lenserfight.com/product/cli" />
<lastmod>2026-06-21</lastmod>
<changefreq>weekly</changefreq>
<priority>0.82</priority>
</url>
<url>
<loc>https://lenserfight.com/battle-showcase</loc>
<lastmod>2026-05-12</lastmod>
<loc>https://lenserfight.com/product/cli/quickstart</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://lenserfight.com/product/cli/quickstart" />
<xhtml:link rel="alternate" hreflang="tr" href="https://lenserfight.com/tr/product/cli/quickstart" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://lenserfight.com/product/cli/quickstart" />
<lastmod>2026-06-21</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
<priority>0.76</priority>
</url>
<url>
<loc>https://lenserfight.com/product/mobile</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://lenserfight.com/product/mobile" />
<xhtml:link rel="alternate" hreflang="tr" href="https://lenserfight.com/tr/product/mobile" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://lenserfight.com/product/mobile" />
<lastmod>2026-06-21</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://lenserfight.com/faq</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://lenserfight.com/faq" />
<xhtml:link rel="alternate" hreflang="tr" href="https://lenserfight.com/tr/faq" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://lenserfight.com/faq" />
<lastmod>2026-06-21</lastmod>
<changefreq>monthly</changefreq>
<priority>0.78</priority>
</url>
<url>
<loc>https://lenserfight.com/get-started</loc>
<lastmod>2026-05-12</lastmod>
<xhtml:link rel="alternate" hreflang="en" href="https://lenserfight.com/get-started" />
<xhtml:link rel="alternate" hreflang="tr" href="https://lenserfight.com/tr/get-started" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://lenserfight.com/get-started" />
<lastmod>2026-06-21</lastmod>
<changefreq>weekly</changefreq>
<priority>0.88</priority>
</url>
<url>
<loc>https://lenserfight.com/demo</loc>
<lastmod>2026-05-12</lastmod>
<xhtml:link rel="alternate" hreflang="en" href="https://lenserfight.com/demo" />
<xhtml:link rel="alternate" hreflang="tr" href="https://lenserfight.com/tr/demo" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://lenserfight.com/demo" />
<lastmod>2026-06-21</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://lenserfight.com/about</loc>
<lastmod>2026-05-12</lastmod>
<changefreq>monthly</changefreq>
<priority>0.74</priority>
</url>
<url>
<loc>https://lenserfight.com/faq</loc>
<lastmod>2026-05-12</lastmod>
<changefreq>monthly</changefreq>
<priority>0.78</priority>
<loc>https://lenserfight.com/battle-showcase</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://lenserfight.com/battle-showcase" />
<xhtml:link rel="alternate" hreflang="tr" href="https://lenserfight.com/tr/battle-showcase" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://lenserfight.com/battle-showcase" />
<lastmod>2026-06-21</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://lenserfight.com/policies/terms</loc>
<lastmod>2026-05-12</lastmod>
<xhtml:link rel="alternate" hreflang="en" href="https://lenserfight.com/policies/terms" />
<xhtml:link rel="alternate" hreflang="tr" href="https://lenserfight.com/tr/policies/terms" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://lenserfight.com/policies/terms" />
<lastmod>2026-06-21</lastmod>
<changefreq>monthly</changefreq>
<priority>0.42</priority>
</url>
<url>
<loc>https://lenserfight.com/policies/privacy</loc>
<lastmod>2026-05-12</lastmod>
<xhtml:link rel="alternate" hreflang="en" href="https://lenserfight.com/policies/privacy" />
<xhtml:link rel="alternate" hreflang="tr" href="https://lenserfight.com/tr/policies/privacy" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://lenserfight.com/policies/privacy" />
<lastmod>2026-06-21</lastmod>
<changefreq>monthly</changefreq>
<priority>0.42</priority>
</url>
<url>
<loc>https://lenserfight.com/policies/cookies</loc>
<lastmod>2026-05-12</lastmod>
<xhtml:link rel="alternate" hreflang="en" href="https://lenserfight.com/policies/cookies" />
<xhtml:link rel="alternate" hreflang="tr" href="https://lenserfight.com/tr/policies/cookies" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://lenserfight.com/policies/cookies" />
<lastmod>2026-06-21</lastmod>
<changefreq>monthly</changefreq>
<priority>0.36</priority>
</url>
<url>
<loc>https://lenserfight.com/policies/acceptable-use</loc>
<lastmod>2026-05-12</lastmod>
<xhtml:link rel="alternate" hreflang="en" href="https://lenserfight.com/policies/acceptable-use" />
<xhtml:link rel="alternate" hreflang="tr" href="https://lenserfight.com/tr/policies/acceptable-use" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://lenserfight.com/policies/acceptable-use" />
<lastmod>2026-06-21</lastmod>
<changefreq>monthly</changefreq>
<priority>0.38</priority>
</url>
Expand Down
Loading
Loading