carlos / carloku Public

🤖 The docs table of contents, the slug fixture, and the index

Ten pages in two sections. The fixture is the platform's, non-ASCII
cases included, because this repo's slugify and the platform's Go Anchor
have to agree or a fragment link resolves in one and 404s in the other.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Paul Campbell pushed by claude agent, operated by paul@keymail.dev 517bdafb9cd3152da2d430eabda8312b93a6f2a6 parent 4be612b
3 files changed, +56 −0
  • src/_data/docsanchors.json +15 −0
  • src/_data/docsnav.json +24 −0
  • src/docs/index.md +17 −0
diff --git a/src/_data/docsanchors.json b/src/_data/docsanchors.json
new file mode 100644
index 0000000..d2f9211
--- /dev/null
+++ b/src/_data/docsanchors.json
@@ -0,0 +1,15 @@
+{
+ "Getting started": "getting-started",
+ "The `carlos ship` contract": "the-carlos-ship-contract",
+ "404, never 403": "404-never-403",
+ "Routes & instances": "routes-instances",
+ " Leading and trailing ": "leading-and-trailing",
+ "Hyphen-joined words": "hyphen-joined-words",
+ "`-app` and `--app`": "app-and-app",
+ "canary/rehearsal": "canary-rehearsal",
+ "X-Carlos-Version": "x-carlos-version",
+ "-app": "app",
+ "--app": "app",
+ "Ship — then promote": "ship-then-promote",
+ "Montréal edge": "montr-al-edge"
+}
diff --git a/src/_data/docsnav.json b/src/_data/docsnav.json
new file mode 100644
index 0000000..bb07b74
--- /dev/null
+++ b/src/_data/docsnav.json
@@ -0,0 +1,24 @@
+{
+ "sections": [
+ {
+ "title": "Running your app",
+ "pages": [
+ { "slug": "deploying", "label": "Deploying", "blurb": "Ship a version, put it in front of people, and know it landed." },
+ { "slug": "channels", "label": "Channels", "blurb": "How a release reaches production, and how to put it back." },
+ { "slug": "domains", "label": "Custom domains", "blurb": "Your own hostname on your app, and the DNS record it needs." },
+ { "slug": "config", "label": "Env and secrets", "blurb": "Two stores for configuration, and which one a value belongs in." },
+ { "slug": "storage", "label": "Object storage", "blurb": "A bucket per app: creating one, granting access, rotating keys." },
+ { "slug": "logs", "label": "Logs", "blurb": "One timeline of your app's output and the platform's events about it." },
+ { "slug": "sleeping", "label": "Restarting and sleeping", "blurb": "Cycling an app, and what hibernation means for your visitors." }
+ ]
+ },
+ {
+ "title": "Your account",
+ "pages": [
+ { "slug": "console", "label": "The console", "blurb": "What each page shows, and what you can do from it." },
+ { "slug": "members", "label": "Members and service credentials", "blurb": "Who can act on your apps, and credentials a server holds." },
+ { "slug": "limits", "label": "Limits and getting help", "blurb": "The rate limits you can hit, and where to ask when stuck." }
+ ]
+ }
+ ]
+}
diff --git a/src/docs/index.md b/src/docs/index.md
new file mode 100644
index 0000000..107b991
--- /dev/null
+++ b/src/docs/index.md
@@ -0,0 +1,17 @@
+---
+permalink: false
+---
+
+# Documentation
+
+Carloku is the hosted CARLOS platform. You deploy a binary, get a URL, and
+the platform handles certificates, restarts, and putting a quiet app to
+sleep until traffic comes back.
+
+These pages cover running your app day-to-day, and the account settings
+that go with it.
+
+Haven't deployed yet? [Get started](/get-started/) is where to begin.
+
+Platform internals, self-hosting, and the full `carlos` CLI reference live
+at [carlosframework.com/docs](https://carlosframework.com/docs).