+
+
+
+
+
+
+
+
+
+
diff --git a/content/ai.md b/content/ai.md
new file mode 100644
index 00000000..6b09f2d3
--- /dev/null
+++ b/content/ai.md
@@ -0,0 +1,7 @@
+Everything on this website is written by me, personally, not AI.
+
+I'm optimistic that LLMs will improve life for us, but not by substituting for us thinking or speaking in our own voices.
+
+You can read my thoughts on [using AI in open source](/blog/using-ai-in-open-source).
+
+Also, you might want to check out [this article on the `/ai` manifesto](https://www.bydamo.la/p/ai-manifesto).
diff --git a/nuxt.config.ts b/nuxt.config.ts
index 6c1d258c..2f363aad 100644
--- a/nuxt.config.ts
+++ b/nuxt.config.ts
@@ -156,7 +156,7 @@ export default defineNuxtConfig({
future: { nativeSWR: true },
prerender: {
crawlLinks: true,
- routes: ['/', '/rss.xml', '/voted', '/work', '/feedback', '/ama'],
+ routes: ['/', '/rss.xml', '/voted', '/work', '/feedback', '/ama', '/ai'],
},
hooks: {
'prerender:generate' (route) {
diff --git a/test/unit/bundle.spec.ts b/test/unit/bundle.spec.ts
index 19a73a3d..7b3b7552 100644
--- a/test/unit/bundle.spec.ts
+++ b/test/unit/bundle.spec.ts
@@ -36,7 +36,7 @@ describe('project sizes', () => {
stats.client = await analyzeSizes('**/*.js', publicDir)
expect
.soft(roundToKilobytes(stats.client.totalBytes))
- .toMatchInlineSnapshot(`"268k"`)
+ .toMatchInlineSnapshot(`"269k"`)
expect.soft(stats.client.files.map(f => f.replace(/\..*\.js/, '.js').replace(/_scripts\/.*\.js/, '_scripts/script.js')).sort())
.toMatchInlineSnapshot(`
[
@@ -80,7 +80,7 @@ describe('project sizes', () => {
stats.server = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir)
expect
.soft(roundToKilobytes(stats.server.totalBytes))
- .toMatchInlineSnapshot(`"426k"`)
+ .toMatchInlineSnapshot(`"427k"`)
const modules = await analyzeSizes('node_modules/**/*', serverDir)
expect