The source of docs.adto.app
Working on the docs • Adding a page • Look and layout • Conventions • Deployment
This repository holds the canonical documentation for AdTo, the hosted deep linking and install attribution service: quickstart, link routing, the Flutter and React Native SDKs, the dashboard and the REST API. It is built with Astro Starlight and served as a static site on Render.
Every page describes what the code does today. Where the product's own wording and the code disagree, the docs follow the code and say so.
| Repository | Contents |
|---|---|
ad-to/adto |
The server, dashboard and website (private) |
ad-to/flutter_adto |
The Flutter SDK |
ad-to/react-native-adto |
The React Native and Expo SDK |
ad-to/docs |
This site |
Node 22.12 or newer (.nvmrc says 24).
npm ci
npm run dev # http://localhost:4321, live reload
npm run build # validates internal links, builds the search index, writes dist/
npm run preview # serves dist/ on http://localhost:4321 (production-like)-
Create
src/content/docs/<group>/<slug>.md(or.mdxwhen you need components). -
Frontmatter:
--- title: Temporary links description: One sentence shown under the title and used in search results and llms.txt. sidebar: order: 5 # position inside the group ---
-
The sidebar groups are fixed in
astro.config.mjs(start,links,sdk,react-native,dashboard,api,guides,contributing); pages inside a group are picked up automatically and ordered bysidebar.order. -
Link to other pages with absolute paths and a trailing slash:
/api/links/. Broken internal links fail the build. -
Starlight components (
Steps,Tabs,Aside,Card) come from@astrojs/starlight/components. -
On a step-by-step page, title each step with a
##heading inside<Steps>(1. ## Sign up). The steps then appear in "On this page".
The site wears the adto.app identity on top of Starlight:
src/styles/custom.cssholds the color, type and size tokens for both themes;chrome.cssstyles the header, sidebar, table of contents and footer;content.cssstyles what Markdown renders. Code block frames and syntax colors are inec.config.mjs.src/components/overrides Starlight's header, site title, page title, home page hero, mobile menu footer and footer (registered undercomponentsinastro.config.mjs).src/components/home/holds the sections of the home page, used fromsrc/content/docs/index.mdx.- Outfit, Inter and Fira Code are served with the site through the
@fontsource-variablepackages.
- State behaviour, not intentions: numbers, limits, defaults and error strings come from the server and SDK source, and the page says which.
- The footer on every page states the versions the docs apply to (
flutter_dectog1.0.x,react-native-dectog1.0.x, server migration0001_schema). When that changes, bump it insrc/components/Footer.astroand in thestarlightLlmsTxtdetailsinastro.config.mjs, which feedllms.txt. https://docs.adto.app/llms.txtand/llms-full.txtare generated at build time for AI agents;adto.app/SKILL.mdlinks to them.sdk/api-reference.mdis generated fromflutter_dectog/doc/api-reference.md, which also builds the SDK'sllms.txt. Edit it in the SDK repo, then runnpm run sync:sdk-referencehere (-- --checkreports drift).
docs.adto.app is a Render static site built from main: render.yaml
holds its settings (build command, publish directory dist/, the domain). CI
(.github/workflows/build.yml) builds every push and pull request and deploys nothing.
docs.dectog.com, the old DecTog docs, stays frozen on Cloudflare at the tag
docs-dectog-com-final. Nothing on main deploys it; a fix for it is made on a branch from
that tag and deployed from there by hand.
