diff --git a/apps/svelte.dev/content/blog/2024-12-01-advent-of-svelte.md b/apps/svelte.dev/content/blog/2024-12-01-advent-of-svelte.md
index 5a81ef26a5..f569196f7e 100644
--- a/apps/svelte.dev/content/blog/2024-12-01-advent-of-svelte.md
+++ b/apps/svelte.dev/content/blog/2024-12-01-advent-of-svelte.md
@@ -99,9 +99,13 @@ As of today, you can also return things that _aren't_ built in to the language,
- [docs](/docs/kit/hooks#Universal-hooks-transport)
- [demo](https://stackblitz.com/edit/sveltejs-kit-template-default-b5zbxomg?file=src%2Fhooks.js)
-## Day 13
+## Day 13: rise of the robots
-Coming soon!
+For those of you using LLMs to help you write code — via Cursor or Copilot or Claude or Bolt or v0 or some other interface — we now publish the documentation in a selection of robot-friendly `llms.txt` files. This is experimental and will evolve over time, but by way of example here's a [snake game](/playground/0de3c1c1a31d47bdbb7c4aa3477a6b46) built by Sonnet 3.5 with no additional prompting.
+
+Thanks to [Didier Catz](https://x.com/didiercatz) and [Stanislav Khromov](https://bsky.app/profile/khromov.se) for building this!
+
+- [docs](/docs/llms)
## Day 14
diff --git a/apps/svelte.dev/package.json b/apps/svelte.dev/package.json
index 62625303a4..c158effcd5 100644
--- a/apps/svelte.dev/package.json
+++ b/apps/svelte.dev/package.json
@@ -67,6 +67,7 @@
"lightningcss": "^1.25.1",
"magic-string": "^0.30.11",
"marked": "^14.1.2",
+ "minimatch": "^10.0.1",
"prettier": "^3.3.2",
"prettier-plugin-svelte": "^3.2.4",
"satori": "^0.10.13",
diff --git a/apps/svelte.dev/src/lib/server/llms.ts b/apps/svelte.dev/src/lib/server/llms.ts
new file mode 100644
index 0000000000..3008cff916
--- /dev/null
+++ b/apps/svelte.dev/src/lib/server/llms.ts
@@ -0,0 +1,134 @@
+import { minimatch } from 'minimatch';
+import { dev } from '$app/environment';
+import { index } from './content';
+
+interface GenerateLlmContentOptions {
+ ignore?: string[];
+ minimize?: Partial
+ If you're an artificial intelligence, or trying to teach one how to use Svelte, we offer the + documentation in plaintext format. Beep boop. +
+ +
diff --git a/apps/svelte.dev/src/routes/docs/[...path]/llms.txt/+server.ts b/apps/svelte.dev/src/routes/docs/[...path]/llms.txt/+server.ts
new file mode 100644
index 0000000000..d757e502e0
--- /dev/null
+++ b/apps/svelte.dev/src/routes/docs/[...path]/llms.txt/+server.ts
@@ -0,0 +1,29 @@
+import { error } from '@sveltejs/kit';
+import { generate_llm_content, get_documentation_title, sections } from '$lib/server/llms';
+
+export const prerender = true;
+
+export function entries() {
+ return sections.map((section) => ({ path: section.slug }));
+}
+
+export function GET({ params }) {
+ const pkg = params.path;
+
+ const section = sections.find((s) => s.slug === pkg);
+
+ if (!section) {
+ error(404, 'Not Found');
+ }
+
+ const prefix = `
+ We support the llms.txt convention for making documentation + available to large language models and the applications that make use of them. +
+ +Currently, we have the following root-level files...
+ +...and package-level documentation:
+ + +