PageSourceSearch

https://endgame.ai/tournaments

html endgame.ai collected 2026-10-02 19:32:36 UTC 9,801 bytes, 214 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3
4<head>
5  <meta charset="UTF-8">
6  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
7  <title>Endgame - Play Chess Online | Free Games, Puzzles & Tournaments</title>
8  <link rel="canonical" href="https://endgame.ai/" />
9
10  <!-- SEO Meta -->
11  <meta name="description" content="Play chess online for free on Endgame. Challenge friends, compete in tournaments, solve daily puzzles, analyze games with AI, and play against chess bots Hans & Caïssa. Join the chess revolution.">
12  <meta name="keywords" content="chess, online chess, play chess online, free chess, chess game, chess puzzles, chess tournaments, chess analysis, chess AI, chess bot, daily chess puzzle, live chess, FIDE players, chess rating, chess platform, endgame chess" />
13  <meta name="robots" content="index, follow" />
14  <meta name="author" content="Endgame" />
15
16  <!-- Open Graph / Facebook -->
17  <meta property="og:type" content="website" />
18  <meta property="og:site_name" content="Endgame" />
19  <meta property="og:title" content="Endgame - Play Chess Online | Free Games, Puzzles & Tournaments" />
20  <meta property="og:description" content="Play chess online for free. Challenge friends, compete in tournaments, solve daily puzzles, analyze games with AI, and play against chess bots. Join the chess revolution." />
21  <meta property="og:image" content="https://endgame.ai/img/og-image.png" />
22  <meta property="og:image:width" content="1200" />
23  <meta property="og:image:height" content="630" />
24  <meta property="og:image:alt" content="Endgame Chess Platform" />
25  <meta property="og:url" content="https://endgame.ai/" />
26  <meta property="og:locale" content="en_US" />
27
28  <!-- Twitter Card -->
29  <meta name="twitter:card" content="summary_large_image" />
30  <meta name="twitter:title" content="Endgame - Play Chess Online | Free Games & Tournaments" />
31  <meta name="twitter:description" content="Play chess online for free. Challenge friends, compete in tournaments, solve daily puzzles, and analyze games with AI." />
32  <meta name="twitter:image" content="https://endgame.ai/img/og-image.png" />
33  <meta name="twitter:image:alt" content="Endgame Chess Platform" />
34
35  <!-- Structured Data: Organization -->
36  
36<script type="application/ld+json">
37  {
38    "@context": "https://schema.org",
39    "@type": "Organization",
40    "name": "Endgame",
41    "url": "https://endgame.ai",
42    "logo": "https://endgame.ai/android-chrome-512x512.png",
43    "description": "Online chess platform for playing, competing in tournaments, solving puzzles, and analyzing games with AI.",
44    "sameAs": []
45  }
46  </script>
46
47
48  <!-- Structured Data: WebSite with search -->
49  
49<script type="application/ld+json">
50  {
51    "@context": "https://schema.org",
52    "@type": "WebSite",
53    "name": "Endgame",
54    "url": "https://endgame.ai",
55    "description": "Play chess online for free. Tournaments, puzzles, AI analysis, and chess bots.",
56    "potentialAction": {
57      "@type": "SearchAction",
58      "target": "https://endgame.ai/search/players?q={search_term_string}",
59      "query-input": "required name=search_term_string"
60    }
61  }
62  </script>
62
63
64  <!-- Structured Data: WebApplication -->
65  
65<script type="application/ld+json">
66  {
67    "@context": "https://schema.org",
68    "@type": "WebApplication",
69    "name": "Endgame",
70    "url": "https://endgame.ai",
71    "applicationCategory": "GameApplication",
72    "operatingSystem": "Any",
73    "offers": {
74      "@type": "Offer",
75      "price": "0",
76      "priceCurrency": "USD"
77    }
78  }
79  </script>
79
80
81  <!-- Fonts -->
82  <link rel="preconnect" href="https://fonts.googleapis.com">
83  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
84  <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@100;300;400;500&display=swap" rel="stylesheet">
85  <link href="https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap" rel="stylesheet">
86  <link href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@200;300;400&display=swap" rel="stylesheet">
87  <link href="https://fonts.googleapis.com/css2?family=Handjet:wght@400;500;600;700&display=swap" rel="stylesheet">
88
89  <!-- Favicons -->
90  <link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96" />
91  <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
92  <link rel="shortcut icon" href="/favicon.ico" />
93  <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
94  <link rel="manifest" href="/site.webmanifest" />
95  <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
96  <meta name="msapplication-TileColor" content="#da532c">
97  <meta name="theme-color" content="#17181C">
98  <!-- Prevent dark mode extensions from overriding site colors -->
99  <meta name="darkreader-lock" content="true">
100  <meta name="color-scheme" content="light dark">
101  
101<script>
102    /*
103     * Color-schema pre-boot bootstrap.
104     * Applies the chosen schema class to <html> BEFORE first paint to prevent
105     * FOUC. Mirrors src/composables/useTheme.ts — if you change SUPPORTED,
106     * DEFAULT_SCHEMA, STORAGE_KEY, META_BY_SCHEMA, or the dark-schema +
107     * transparent pairing here, mirror it there.
108     *
109     * `.transparent` is paired with `.dark-schema` because the legacy --cs-*
110     * tokens in src/assets/base.css use `.dark-schema.transparent { ... }` for
111     * alpha panel surfaces. Pairing is dropped only when those legacy tokens
112     * are retired.
113     */
114    (function () {
115      var SUPPORTED = ['dark-schema', 'light-schema', 'gray-schema'];
116      var DEFAULT_SCHEMA = 'dark-schema';
117      var STORAGE_KEY = 'color-schema';
118      var META_BY_SCHEMA = {
119        'dark-schema':  '#17181C',
120        'light-schema': '#FFFFFF',
121        'gray-schema':  '#F5F5F5'
122      };
123
124      var root = document.documentElement;
125      var stored = null;
126      try { stored = localStorage.getItem(STORAGE_KEY); } catch (_) { /* private mode */ }
127      var schema = SUPPORTED.indexOf(stored) >= 0 ? stored : DEFAULT_SCHEMA;
128
129      root.classList.add(schema);
130      if (schema === 'dark-schema') {
131        root.classList.add('transparent');
132      }
133
134      var meta = document.querySelector('meta[name="theme-color"]');
135      if (meta) {
136        meta.setAttribute('content', META_BY_SCHEMA[schema] || META_BY_SCHEMA[DEFAULT_SCHEMA]);
137      }
138    })();
139
140    // odd exception handling
141    window.addEventListener('unhandledrejection', (event) => {
142      console.warn('Uhandled exception: unhandledrejection', event);
143      // Check if the error message contains the specific error you want to handle
144      if (event.reason && event.reason.message && event.reason.message.includes('Failed to fetch dynamically imported module')) {
145        console.error('Detected module fetch error.');
146        let reloadCount = getReloadCount();
147
148        if (reloadCount < 2) {
149          incrementReloadCount();
150          console.error('Refreshing page...');
151          location.reload();
152        } else {
153          console.error('Max reload attempts reached. Not refreshing page.');
154        }
155      }
156    });
157
158    function getReloadCount() {
159      const reloadCount = sessionStorage.getItem('reloadCount');
160      return reloadCount ? parseInt(reloadCount, 10) : 0;
161    }
162
163    function incrementReloadCount() {
164        let reloadCount = getReloadCount();
165        reloadCount++;
166        sessionStorage.setItem('reloadCount', reloadCount);
167    }
168  </script>
168
169  
169<script type="module" crossorigin src="/assets/index-A0Cx28Hu.js"></script>
169
170  <link rel="stylesheet" crossorigin href="/assets/index-Ds-gSs_T.css">
171<link rel="manifest" href="/manifest.webmanifest">
171<script id="vite-plugin-pwa:register-sw" src="/registerSW.js"></script>
171</head>
172
173<body>
174  <div id="app"></div>
175  <noscript>
176    <div style="max-width:960px;margin:0 auto;padding:40px 20px;font-family:Inter,sans-serif;color:#fff;background:#17181C;">
177      <h1>Endgame - Play Chess Online for Free</h1>
178      <p>Endgame is a modern online chess platform where you can play chess against friends, compete in tournaments, solve puzzles, and analyze your games with AI-powered insights.</p>
179
180      <h2>Play Chess</h2>
181      <p>Start a game instantly. Play rapid, blitz, or classical chess. Challenge friends or get matched with opponents at your skill level.</p>
182      <ul>
183        <li><a href="/bots">Play Chess vs AI Bots</a> - Challenge Hans and Caïssa, our unique chess AI personalities</li>
184        <li><a href="/tournaments">Chess Tournaments</a> - Join and compete in online chess tournaments</li>
185        <li><a href="/events">Watch Live Chess</a> - Stream and watch live chess broadcasts</li>
186      </ul>
187
188      <h2>Improve Your Chess</h2>
189      <ul>
190        <li><a href="/puzzles">Chess Puzzles</a> - Sharpen your tactical skills with curated puzzles</li>
191        <li><a href="/daily-puzzle">Daily Chess Puzzle</a> - A fresh puzzle every day to train your tactics</li>
192        <li><a href="/analysis">Chess Game Analysis</a> - AI-powered analysis and insights for your games</li>
193        <li><a href="/chesssweeper">ChessSweeper</a> - A fun chess-minesweeper mashup game</li>
194      </ul>
195
196      <h2>Community</h2>
197      <ul>
198        <li><a href="/players">Top Chess Players</a> - Browse FIDE rated players, ratings, and stats</li>
199        <li><a href="/clubs">Chess Clubs</a> - Join or create chess clubs</li>
200        <li><a href="/chesssweeper/leaderboard">Leaderboards</a> - See top performers</li>
201      </ul>
202
203      <h2>More</h2>
204      <ul>
205        <li><a href="/career">Careers at Endgame</a></li>
206        <li><a href="/terms">Terms of Service</a></li>
207        <li><a href="/privacy">Privacy Policy</a></li>
208        <li><a href="/contact">Contact Us</a></li>
209      </ul>
210    </div>
211  </noscript>
212</body>
213
214</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.