Served URLs and files

On this page

This page lists the served URLs of every section Quillly hosts for you: blog, docs, changelog and news. For each one you get the page addresses, the Markdown version of each page, the sitemap, the RSS feed, llms.txt, the IndexNow key file and the social images, on your own domain and on a Quillly subdomain.

The parts of a served page address on acme.com, with the .md ending that returns the Markdown version and the quillly.com address the reverse proxy forwards it to

How to read the served URLs tables#

Each table lists one section's addresses, with your own domain in one column and a Quillly subdomain in the other.

  • Your own domain is acme.com in the examples. Each section lives under its own path there, and your reverse proxy forwards that path to Quillly.

  • Quillly subdomain is acme.quillly.com. Quillly serves the whole host: blog posts sit at the root, while docs, changelog and news keep their paths.

  • Paths are the defaults: /blog, /docs, /changelog and /news. If you chose another path, such as /help, it replaces the default in every address.

  • Placeholders: {slug} is a page's slug and {category} a news category. YOUR_WEBSITE_ID is your website's ID, as in the rules the dashboard gives you. Every address uses https://.

  • Markdown: a page with a Markdown version also returns it at its normal address when a request's Accept header names text/markdown or text/plain and not text/html.

A section that publishes into WordPress, Ghost, Webflow, Shopify or a webhook is served by that platform, so none of these addresses exist for it. See Publish into WordPress, Ghost, Webflow or Shopify.

Which paths Quillly answers on acme.com, where your reverse proxy forwards only the section paths, and on acme.quillly.com, where Quillly answers every path

Blog#

Table

What

Your own domain

Quillly subdomain

Blog home

acme.com/blog

acme.quillly.com

Older posts

acme.com/blog?page=2

acme.quillly.com/?page=2

Post

acme.com/blog/{slug}

acme.quillly.com/{slug}

Post as Markdown

acme.com/blog/{slug}.md

acme.quillly.com/{slug}.md

Sitemap

acme.com/blog/sitemap.xml

acme.quillly.com/sitemap.xml

RSS feed

acme.com/blog/rss.xml

acme.quillly.com/rss.xml

llms.txt

acme.com/blog/llms.txt

acme.quillly.com/llms.txt

IndexNow key

acme.com/blog/indexnow.txt

acme.quillly.com/indexnow.txt

Web Story

acme.com/blog/web-story/{slug}

acme.quillly.com/web-story/{slug}

  • The sitemap lists the blog home, up to 1,000 posts and their published Web Stories. On a Quillly subdomain, /sitemap.xml and /llms.txt cover the whole site, blog included.

  • The RSS feed holds the 50 newest posts. The RSS feed switch under Brand → Identity turns off the blog, changelog and news feeds together.

  • A post's llms.txt is retired. acme.com/blog/{slug}/llms.txt answers with a permanent redirect (308) to acme.com/blog/{slug}.md, and the same goes for acme.quillly.com/{slug}/llms.txt. An llms.txt file is always an index of a site or a section; one page's text is its .md version.

Docs#

Table 2

What

Your own domain

Quillly subdomain

Docs home

acme.com/docs

acme.quillly.com/docs

Page

acme.com/docs/{slug}

acme.quillly.com/docs/{slug}

Page as Markdown

acme.com/docs/{slug}.md

acme.quillly.com/docs/{slug}.md

Sitemap

acme.com/docs/sitemap.xml

In acme.quillly.com/sitemap.xml

RSS feed

None

None

llms.txt

acme.com/docs/llms.txt

acme.quillly.com/docs/llms.txt

IndexNow key

acme.com/docs/indexnow.txt

acme.quillly.com/indexnow.txt

Web Story

acme.com/docs/web-story/{slug}

acme.quillly.com/web-story/{slug}

The docs home has no Markdown version of its own; its llms.txt lists every docs page. On your own domain, a docs page publishes only after the section's reverse proxy check passes, so these addresses don't lead to a missing page.

Changelog#

Table 3

What

Your own domain

Quillly subdomain

Timeline

acme.com/changelog

acme.quillly.com/changelog

One entry

acme.com/changelog#entry-{slug}

acme.quillly.com/changelog#entry-{slug}

Entry link

acme.com/changelog/{slug} redirects to the entry

acme.quillly.com/changelog/{slug} redirects to the entry

Timeline as Markdown

acme.com/changelog.md

acme.quillly.com/changelog.md

Entry as Markdown

acme.com/changelog/{slug}.md

acme.quillly.com/changelog/{slug}.md

Sitemap

acme.com/changelog/sitemap.xml

acme.quillly.com/changelog/sitemap.xml

RSS feed

acme.com/changelog/rss.xml

acme.quillly.com/changelog/rss.xml

llms.txt

acme.com/changelog/llms.txt

acme.quillly.com/changelog/llms.txt

IndexNow key

acme.com/changelog/indexnow.txt

acme.quillly.com/indexnow.txt

Web Story

acme.com/changelog/web-story/{slug}

acme.quillly.com/web-story/{slug}

Entries have no pages of their own: the timeline shows the 100 newest, and /changelog.md holds their full text. The feed holds the 50 newest entries, and llms.txt links the timeline and names the 15 newest. The sitemap lists the timeline, dated by its newest entry, and the entries' Web Stories.

News#

Table 4

What

Your own domain

Quillly subdomain

News home

acme.com/news

acme.quillly.com/news

Category page

acme.com/news/{category}

acme.quillly.com/news/{category}

Story

acme.com/news/{category}/story/{slug}

acme.quillly.com/news/{category}/story/{slug}

Story as Markdown

acme.com/news/{category}/story/{slug}.md

acme.quillly.com/news/{category}/story/{slug}.md

News sitemap

acme.com/news/sitemap.xml

acme.quillly.com/news/sitemap.xml

RSS feed

acme.com/news/rss.xml

acme.quillly.com/news/rss.xml

llms.txt

acme.com/news/llms.txt

acme.quillly.com/news/llms.txt

IndexNow key

acme.com/news/indexnow.txt

acme.quillly.com/indexnow.txt

Web Story

acme.com/news/web-story/{slug}

acme.quillly.com/news/web-story/{slug}

  • The news sitemap follows Google's news sitemap rules: stories from the last 48 hours, up to 1,000, and no sponsored stories.

  • The RSS feed holds the 50 newest stories. Sponsored stories are in it, with "Sponsored: " before the title.

  • llms.txt lists the 15 newest stories, without sponsored ones.

  • Older stories: on a Quillly subdomain, /sitemap.xml lists every story. On your own domain, a story older than 48 hours is in no sitemap, so search engines reach it through your news pages.

Files for the whole site#

The root of your own domain belongs to your server, so Quillly answers only under your sections' paths there. On a Quillly subdomain it serves these files too:

Table 5

File

Your own domain

Quillly subdomain

robots.txt

Your own file

acme.quillly.com/robots.txt

Sitemap of every section

None

acme.quillly.com/sitemap.xml

llms.txt of every section

None

acme.quillly.com/llms.txt

Full text of the 50 newest items

None

acme.quillly.com/llms-full.txt

On a Quillly subdomain, robots.txt allows every crawler and points to /sitemap.xml and /llms.txt. The llms.txt format is an open proposal for how AI tools find a site's content.

  • IndexNow key: one key per website, returned as plain text at every indexnow.txt address on this page. Quillly creates it the first time it notifies IndexNow, so the file answers 404 until then.

  • Paused sites: while your pages are paused after a plan ends, these files answer 404, and a Quillly subdomain's robots.txt blocks every crawler until you subscribe again.

What your reverse proxy forwards#

Your reverse proxy sends each section's path on your domain to the matching address on quillly.com.

Table 6

Path on acme.com

Forward to

/blog and /blog/*

https://quillly.com/serve/v1/YOUR_WEBSITE_ID/blogs

/docs and /docs/*

https://quillly.com/serve/v1/YOUR_WEBSITE_ID/docs

/changelog, /changelog.md and /changelog/*

https://quillly.com/serve/v1/YOUR_WEBSITE_ID/changelog

/news and /news/*

https://quillly.com/serve/v1/YOUR_WEBSITE_ID/news

The rest of the path follows unchanged, so acme.com/blog/launch.md goes to …/blogs/launch.md. The blog's target ends in blogs whatever path you chose. Copy your own rule from the section's settings: the gear icon, then Connection.

How a request for acme.com/docs/install.md goes through your reverse proxy to Quillly and comes back as Markdown

Open your blog

Warning

The Next.js, Vercel, Netlify and PHP rules match /changelog and /changelog/… but not /changelog.md. To serve the timeline's Markdown, add one more rule that sends /changelog.md to https://quillly.com/serve/v1/YOUR_WEBSITE_ID/changelog.md. The PHP rules also forward only one segment after the section's path, so news stories and Web Stories don't reach Quillly through them.

Tip

For an llms.txt of the whole site at acme.com/llms.txt, forward that one path to https://quillly.com/serve/v1/YOUR_WEBSITE_ID/llms.txt. It lists every section at its address on your domain.

Files loaded from quillly.com#

Some files come straight from quillly.com in every setup, so your proxy doesn't forward them. If your site sets a Content Security Policy, allow https://quillly.com.

Table 7

File

Address

Social image of a post

https://quillly.com/api/og?type=blog&slug={slug}&websiteId=YOUR_WEBSITE_ID

Social image of the blog home

https://quillly.com/api/og?type=blog-list&websiteId=YOUR_WEBSITE_ID

Social image of a docs page

https://quillly.com/api/og?type=docs&slug={slug}&websiteId=YOUR_WEBSITE_ID

Social image of the docs home

https://quillly.com/api/og?type=docs&websiteId=YOUR_WEBSITE_ID

Social image of the changelog

https://quillly.com/api/og?type=changelog&websiteId=YOUR_WEBSITE_ID

Social image of a news story

The story's featured image, when it has one

Pictures from image: blocks

https://quillly.com/serve/v1/YOUR_WEBSITE_ID/images/{file}.webp

Web Story images and video

https://quillly.com/serve/v1/YOUR_WEBSITE_ID/story-assets/{file}

Your uploaded logo

https://quillly.com/api/serve/YOUR_WEBSITE_ID/logo?v=…

Page scripts and styles

https://quillly.com/_next/static/…

Analytics tag

https://quillly.com/qa.js, or /qa.cookieless.js

Reading and click tracking on served pages

https://quillly.com/qa-content.js

Analytics events from served pages

https://quillly.com/api/collect

Blog search

https://quillly.com/api/serve/YOUR_WEBSITE_ID/search?q={words}

Docs search index

https://quillly.com/api/serve/YOUR_WEBSITE_ID/docs-index

Common questions#

Which sitemap do I submit to Google?#

You don't need to. Once you connect Google Search Console or Bing, Quillly submits them for you: each connected section's sitemap and RSS feed on your own domain, or /sitemap.xml, /rss.xml and the news files on a Quillly subdomain.

Why does my post's llms.txt redirect to a .md address?#

llms.txt is an index of a site or a section, never one page. A post's own llms.txt address now sends a permanent redirect to the post's .md version, so old links keep working.

Why is there no llms.txt at the root of my domain?#

Your reverse proxy forwards only your sections' paths, so each section serves its own llms.txt. Add the one-path rule from the tip above for a whole-site file.

  • Content types and URLs: the sections, their paths and what each one holds.

  • Serve on your own domain with a reverse proxy: the rule for each stack, and how to check it.

  • AI crawlers, llms.txt and Markdown pages: how AI tools read these files.

  • Indexing: how your pages reach search engines: what Quillly submits, and where.

  • Web Stories: the story each post can have.

  • Plan limits and allowances: the hosted page views each plan includes, and what happens past them.