diff --git a/src/pages/api/std/Array.mdx b/src/pages/en/latest/api/std/Array.mdx
similarity index 100%
rename from src/pages/api/std/Array.mdx
rename to src/pages/en/latest/api/std/Array.mdx
diff --git a/src/pages/api/std/Array/concat.mdx b/src/pages/en/latest/api/std/Array/concat.mdx
similarity index 100%
rename from src/pages/api/std/Array/concat.mdx
rename to src/pages/en/latest/api/std/Array/concat.mdx
diff --git a/src/pages/api/std/Array/fold.mdx b/src/pages/en/latest/api/std/Array/fold.mdx
similarity index 100%
rename from src/pages/api/std/Array/fold.mdx
rename to src/pages/en/latest/api/std/Array/fold.mdx
diff --git a/src/pages/api/std/Array/map.mdx b/src/pages/en/latest/api/std/Array/map.mdx
similarity index 100%
rename from src/pages/api/std/Array/map.mdx
rename to src/pages/en/latest/api/std/Array/map.mdx
diff --git a/src/pages/api/std/index.mdx b/src/pages/en/latest/api/std/index.mdx
similarity index 100%
rename from src/pages/api/std/index.mdx
rename to src/pages/en/latest/api/std/index.mdx
diff --git a/src/pages/api/std/print.mdx b/src/pages/en/latest/api/std/print.mdx
similarity index 100%
rename from src/pages/api/std/print.mdx
rename to src/pages/en/latest/api/std/print.mdx
diff --git a/src/pages/spec/_wrapper.astro b/src/pages/en/latest/spec/_wrapper.astro
similarity index 83%
rename from src/pages/spec/_wrapper.astro
rename to src/pages/en/latest/spec/_wrapper.astro
index 30013a2..9878f54 100644
--- a/src/pages/spec/_wrapper.astro
+++ b/src/pages/en/latest/spec/_wrapper.astro
@@ -9,7 +9,8 @@ const posts = (await Astro.glob(
)) as unknown as Array
;
// The base of every URL under this glob
-const base_url = "/spec";
+const version = "latest";
+const base_url = `/en/${version}/spec`;
---
diff --git a/src/pages/spec/ast/ast.md b/src/pages/en/latest/spec/ast/ast.md
similarity index 100%
rename from src/pages/spec/ast/ast.md
rename to src/pages/en/latest/spec/ast/ast.md
diff --git a/src/pages/spec/ast/expression.md b/src/pages/en/latest/spec/ast/expression.md
similarity index 100%
rename from src/pages/spec/ast/expression.md
rename to src/pages/en/latest/spec/ast/expression.md
diff --git a/src/pages/spec/index.mdx b/src/pages/en/latest/spec/index.mdx
similarity index 100%
rename from src/pages/spec/index.mdx
rename to src/pages/en/latest/spec/index.mdx
diff --git a/src/pages/spec/tokens/comments.mdx b/src/pages/en/latest/spec/tokens/comments.mdx
similarity index 100%
rename from src/pages/spec/tokens/comments.mdx
rename to src/pages/en/latest/spec/tokens/comments.mdx
diff --git a/src/pages/spec/tokens/grouping.md b/src/pages/en/latest/spec/tokens/grouping.md
similarity index 100%
rename from src/pages/spec/tokens/grouping.md
rename to src/pages/en/latest/spec/tokens/grouping.md
diff --git a/src/pages/spec/tokens/identifier.mdx b/src/pages/en/latest/spec/tokens/identifier.mdx
similarity index 100%
rename from src/pages/spec/tokens/identifier.mdx
rename to src/pages/en/latest/spec/tokens/identifier.mdx
diff --git a/src/pages/spec/tokens/newline.md b/src/pages/en/latest/spec/tokens/newline.md
similarity index 100%
rename from src/pages/spec/tokens/newline.md
rename to src/pages/en/latest/spec/tokens/newline.md
diff --git a/src/pages/spec/tokens/numbers.mdx b/src/pages/en/latest/spec/tokens/numbers.mdx
similarity index 100%
rename from src/pages/spec/tokens/numbers.mdx
rename to src/pages/en/latest/spec/tokens/numbers.mdx
diff --git a/src/pages/spec/tokens/operator.mdx b/src/pages/en/latest/spec/tokens/operator.mdx
similarity index 100%
rename from src/pages/spec/tokens/operator.mdx
rename to src/pages/en/latest/spec/tokens/operator.mdx
diff --git a/src/pages/spec/tokens/string.mdx b/src/pages/en/latest/spec/tokens/string.mdx
similarity index 100%
rename from src/pages/spec/tokens/string.mdx
rename to src/pages/en/latest/spec/tokens/string.mdx
diff --git a/src/pages/spec/tokens/tokens.md b/src/pages/en/latest/spec/tokens/tokens.md
similarity index 100%
rename from src/pages/spec/tokens/tokens.md
rename to src/pages/en/latest/spec/tokens/tokens.md