Routes
Every route the integration injects, when it is there and how it renders.
The build log lists the routes it injected on a line starting routes:. A route marked "skipped when yours exists" is left out when the site has its own file at that path.
| Route | When | Renders | Skipped when yours exists |
|---|---|---|---|
/preview |
always | on demand; prerendered on build:static, so it does not follow typing there, and on demand in pnpm dev on every target |
src/pages/preview.astro (.ts, .js, .mdx) |
/api/contact |
adapter builds | on demand, see Connect the contact form | src/pages/api/contact.ts |
/map/[point].png |
adapter builds with a Google maps.key |
on demand, a map still fetched from Google; in pnpm dev, a grey placeholder tile, since Google refuses the referrer-locked key there |
no |
/404 |
always | prerendered | src/pages/404.astro (.md, .mdx, .html) |
/robots.txt |
always | prerendered: allow all, plus the sitemap when site is set |
src/pages/robots.txt.ts (.js, .mjs) or public/robots.txt |
/og/[...slug] |
always; builds pages only with share cards on | prerendered PNG cards, see Generate share images | no |
/lookbook, /lookbook/[slug] |
pnpm dev, or a build with STOMME_LOOKBOOK set |
every block sample, the surfaces and the page templates on one page, and each section on its own page | no |
/<routes.towns>/[slug] |
features.areas |
prerendered TownPage |
no |
/<routes.services>/[slug] |
features.services |
prerendered ServicePage |
no |
<listing route>/[slug] |
each listing, and the blog | prerendered PostPage or CatalogPage |
no |
<listing route>/calendar.ics |
each article listing, and the blog |
prerendered calendar feed | no |
<docs route>/[...slug], <docs route>/_search/[version].json |
features.docs |
prerendered docs pages and search index | no |
<docs route>/_media/ |
features.docs |
the images the docs pages use, served from disk in pnpm dev and copied into the build output |
no |
<docs route>/llms.txt, <docs route>/llms-full.txt, <docs route>/<page>.md, and the same under each version's prefix |
features.docs |
the docs as text for AI agents, see Build docs from a repo; served from disk in pnpm dev and copied into the build output |
no |
<docs route>/blocks.json |
features.docs with site.docs.blocks |
the engine's block catalog as JSON, the same way | no |
/llms.txt |
features.docs |
a copy of <docs route>/llms.txt, the same way |
src/pages/llms.txt.ts (.js, .mjs, .md) or public/llms.txt |
/<locale>, /<locale>/[...slug] |
each language after the first in locales |
the home page and the editable pages in that language, prerendered | no |
| addon routes | from routes.mjs in STOMME_SLOTS_DIR, each when its feature flag is on, and again under each /<locale> prefix |
as the entrypoint says | no |
Only the home page, the editable pages and addon routes get a copy per language. Service, area, listing and docs pages exist once, at their unprefixed address.
An addon route with no feature, a pattern that does not start with /, or an entrypoint file that does not exist is skipped, and the build log warns about it.
The site's own pages, /, /<slug> for each published page, and /thanks, come from the starter's src/pages/. /admin/ and /admin/blocks.html are static files under public/admin/: pnpm stomme cms keeps index.html up to date and writes blocks.html, the gallery of the blocks the CMS offers.
Built into every page
- Head.
@gronare/stomme/Head.astrowrites the viewport, title, description, canonical URL, Open Graph and Twitter tags, hreflang links and favicons. - JSON-LD on the home page.
WebSitewith the site name and address.LocalBusinessfrom the site settings and contact settings when the contact settings hold a phone number, an address or a coordinate pair, andOrganizationotherwise, with the logo from the site settings and the social links from the contact settings.SoftwareApplicationwhensite.softwareis set, see Site config. - noindex. A page under
site.noindex, the thank-you page, and any page built for a*.pages.devor*.workers.devaddress getnoindex, nofollow. A page of the unreleased docs version getsnoindex, follow. - Sitemap. With
@astrojs/sitemapinastro.config.mjs, the integration leaves out of it every page undersite.noindex, the thank-you page, and every page of the unreleased docs version, in every language. - Demo-address redirect. When
sitenames a real host, a page opened on a*.pages.devor*.workers.devaddress redirects to the same path on that host. - Media. Files under
public/media/are mirrored intosrc/assets/media/at build start, so Astro optimises CMS uploads. Files inpublic/media/icons/are also copied to the site's root.