diff --git a/site/content/examples/14-composition/04-modal/meta.json b/site/content/examples/14-composition/04-modal/meta.json
new file mode 100644
index 0000000000..c39791fcf6
--- /dev/null
+++ b/site/content/examples/14-composition/04-modal/meta.json
@@ -0,0 +1,3 @@
+{
+ "title": "Modal"
+}
\ No newline at end of file
diff --git a/site/content/OLD.examples/hacker-news/App.svelte b/site/content/examples/20-miscellaneous/01-hacker-news/App.svelte
similarity index 100%
rename from site/content/OLD.examples/hacker-news/App.svelte
rename to site/content/examples/20-miscellaneous/01-hacker-news/App.svelte
diff --git a/site/content/OLD.examples/hacker-news/Comment.svelte b/site/content/examples/20-miscellaneous/01-hacker-news/Comment.svelte
similarity index 100%
rename from site/content/OLD.examples/hacker-news/Comment.svelte
rename to site/content/examples/20-miscellaneous/01-hacker-news/Comment.svelte
diff --git a/site/content/OLD.examples/hacker-news/Item.svelte b/site/content/examples/20-miscellaneous/01-hacker-news/Item.svelte
similarity index 100%
rename from site/content/OLD.examples/hacker-news/Item.svelte
rename to site/content/examples/20-miscellaneous/01-hacker-news/Item.svelte
diff --git a/site/content/OLD.examples/hacker-news/List.svelte b/site/content/examples/20-miscellaneous/01-hacker-news/List.svelte
similarity index 100%
rename from site/content/OLD.examples/hacker-news/List.svelte
rename to site/content/examples/20-miscellaneous/01-hacker-news/List.svelte
diff --git a/site/content/OLD.examples/hacker-news/Summary.svelte b/site/content/examples/20-miscellaneous/01-hacker-news/Summary.svelte
similarity index 100%
rename from site/content/OLD.examples/hacker-news/Summary.svelte
rename to site/content/examples/20-miscellaneous/01-hacker-news/Summary.svelte
diff --git a/site/content/examples/20-miscellaneous/01-hacker-news/meta.json b/site/content/examples/20-miscellaneous/01-hacker-news/meta.json
new file mode 100644
index 0000000000..becbac4ea7
--- /dev/null
+++ b/site/content/examples/20-miscellaneous/01-hacker-news/meta.json
@@ -0,0 +1,3 @@
+{
+ "title": "Hacker News"
+}
\ No newline at end of file
diff --git a/site/content/OLD.examples/immutable/App.svelte b/site/content/examples/20-miscellaneous/02-immutable-data/App.svelte
similarity index 89%
rename from site/content/OLD.examples/immutable/App.svelte
rename to site/content/examples/20-miscellaneous/02-immutable-data/App.svelte
index b4ae34285f..e81d781677 100644
--- a/site/content/OLD.examples/immutable/App.svelte
+++ b/site/content/examples/20-miscellaneous/02-immutable-data/App.svelte
@@ -30,7 +30,7 @@
Immutable
{#each todos as todo}
{/each}
@@ -38,7 +38,7 @@
Mutable
{#each todos as todo}
{/each}
diff --git a/site/content/OLD.examples/immutable/ImmutableTodo.svelte b/site/content/examples/20-miscellaneous/02-immutable-data/ImmutableTodo.svelte
similarity index 100%
rename from site/content/OLD.examples/immutable/ImmutableTodo.svelte
rename to site/content/examples/20-miscellaneous/02-immutable-data/ImmutableTodo.svelte
diff --git a/site/content/OLD.examples/immutable/MutableTodo.svelte b/site/content/examples/20-miscellaneous/02-immutable-data/MutableTodo.svelte
similarity index 100%
rename from site/content/OLD.examples/immutable/MutableTodo.svelte
rename to site/content/examples/20-miscellaneous/02-immutable-data/MutableTodo.svelte
diff --git a/site/content/OLD.examples/immutable/flash.js b/site/content/examples/20-miscellaneous/02-immutable-data/flash.js
similarity index 100%
rename from site/content/OLD.examples/immutable/flash.js
rename to site/content/examples/20-miscellaneous/02-immutable-data/flash.js
diff --git a/site/content/examples/20-miscellaneous/02-immutable-data/meta.json b/site/content/examples/20-miscellaneous/02-immutable-data/meta.json
new file mode 100644
index 0000000000..68e56ee7fa
--- /dev/null
+++ b/site/content/examples/20-miscellaneous/02-immutable-data/meta.json
@@ -0,0 +1,3 @@
+{
+ "title": "Immutable data"
+}
\ No newline at end of file
diff --git a/site/content/examples/20-miscellaneous/meta.json b/site/content/examples/20-miscellaneous/meta.json
new file mode 100644
index 0000000000..116634ec42
--- /dev/null
+++ b/site/content/examples/20-miscellaneous/meta.json
@@ -0,0 +1,3 @@
+{
+ "title": "Miscellaneous"
+}
\ No newline at end of file
diff --git a/site/src/routes/index.svelte b/site/src/routes/index.svelte
index 0171d4a450..edde4372c6 100644
--- a/site/src/routes/index.svelte
+++ b/site/src/routes/index.svelte
@@ -233,7 +233,7 @@ npm run dev & open http://localhost:5000
@@ -245,7 +245,7 @@ npm run dev & open http://localhost:5000
@@ -257,7 +257,7 @@ npm run dev & open http://localhost:5000
@@ -269,7 +269,7 @@ npm run dev & open http://localhost:5000
diff --git a/site/src/routes/repl/_utils/process_example.js b/site/src/routes/repl/_utils/process_example.js
new file mode 100644
index 0000000000..fc61d79ad3
--- /dev/null
+++ b/site/src/routes/repl/_utils/process_example.js
@@ -0,0 +1,16 @@
+export function process_example(files) {
+ return files
+ .map(file => {
+ const [name, type] = file.name.split('.');
+ return { name, type, source: file.source };
+ })
+ .sort((a, b) => {
+ if (a.name === 'App' && a.type === 'svelte') return -1;
+ if (b.name === 'App' && b.type === 'svelte') return 1;
+
+ if (a.type === b.type) return a.name < b.name ? -1 : 1;
+
+ if (a.type === 'svelte') return -1;
+ if (b.type === 'svelte') return 1;
+ });
+}
\ No newline at end of file
diff --git a/site/src/routes/repl/embed.svelte b/site/src/routes/repl/embed.svelte
index 0dc123ce22..9cc680afb0 100644
--- a/site/src/routes/repl/embed.svelte
+++ b/site/src/routes/repl/embed.svelte
@@ -3,16 +3,17 @@
return {
version: query.version || 'beta',
gist: query.gist,
- demo: query.demo
+ example: query.example
};
}