Changelog

What’s new

Product updates, new features, and fixes from Quillly.

July 2026

Agent-ready markdown, crawler analytics, and a calmer dashboard

Markdown that AI agents can actually read

Every published post has always advertised a markdown twin. Now it returns markdown.

  • yoursite.com/blogs/your-post.md returns real text/markdown — the article body and nothing else. No navigation, no cookie banner, no page chrome.

  • The article URL itself serves markdown when a client asks for it with Accept: text/markdown, so an agent never has to know a second URL exists. Browsers still get HTML.

  • One serializer feeds .md, llms.txt and the negotiated response, so the three can't drift apart.

Flowchart showing one blog URL serving HTML to browsers and text/markdown to AI agents, based on the Accept header or a .md suffix, with both markdown paths carrying a canonical link header back to the article

It matters because an AI crawler reading your HTML spends most of its context budget on markup it will throw away. Clean markdown is the same article at a fraction of the tokens, which makes the whole piece far likelier to survive into an answer.

One canonical URL again

The markdown twin used to declare itself canonical. That put two identical documents in front of Google and let them compete.

  • .md and llms.txt responses now send a Link: <article-url>; rel="canonical" header pointing back at the HTML article — the header form, because a plain-text response has no <head> to put a tag in.

  • Sitemaps list canonical HTML URLs only: one entry per post instead of three. The markdown representations stay reachable and stay out of the index.

This follows Google's own guidance that alternate representations should point at a single canonical URL rather than nominate themselves — see Google's canonicalization documentation.

Agents can find your index

  • robots.txt now advertises your llms.txt location, and every markdown response opens with a pointer to it.

  • Crawler rules are generated from Quillly's crawler directory instead of a hardcoded handful, so all 44 tracked AI and search crawlers get an explicit group. Add a crawler to the directory and it appears in robots.txt on the next request — nothing to redeploy.

Discovery chain diagram showing an AI agent reading robots.txt, following it to llms.txt, and from there to individual markdown versions of each article

If you've been hand-maintaining any of this, you can stop: it's derived from your content types now.

See what the crawlers are reading

The Pages card in Analytics has a Crawlers view sitting next to Visitors — same list, same layout, ranked by bot crawls instead of human views. Crawler hits on llms.txt are recorded too, so your index fetches show up as their own rows rather than vanishing.

Diagram contrasting human visitors recorded by the client-side JavaScript beacon with AI crawlers recorded server-side, both feeding the Pages card in Quillly Analytics

Crawlers don't run JavaScript, so a normal analytics beacon is blind to them by construction. These hits are captured server-side as the page is served, deduped to one row per bot, per page, per hour. It's the difference between guessing that GPTBot found your post and knowing which pages it actually read.

Connections, rebuilt

  • OAuth connections now appear. If you connected Claude through the browser flow, that connection was invisible in Settings → Connections — only API keys were listed, so something you used every day could read "Never used". OAuth connections are now first-class, with real last-used times and call counts.

  • A usage panel replaced the single progress bar — 14 days of activity, your most-used tools, and a per-connection breakdown.

  • Rotate key. A lost key is no longer a dead end: rotating issues a fresh one and kills the old one immediately.

  • Setup snippets default to a connection key in the URL rather than OAuth, because CLIs and headless setups often give you exactly one field and no browser to sign in with.

New here? Connect Claude, ChatGPT or Cursor takes about two minutes.

Fixes

  • Opening a dropdown or a dialog no longer shifts the page sideways. The scrollbar gutter was being reserved twice, so locking the background scroll silently narrowed the content by the width of a scrollbar.

  • Changelog entries now reach the IndexNow engines — Bing, Yandex, Naver, Seznam, Yep and Amazon. Their key location was being derived from the submitted URL's parent path, which for a single-segment changelog URL resolved to the domain root, where no key file is served. Every submission was rejected as unverifiable. It's derived from the path Quillly actually serves now. (IndexNow's spec allows a key file anywhere, as long as the keyLocation you send points at it.)

  • The Content menu no longer lands on the Pages tab when your site has real content types configured.

Frequently asked questions

Do I need to change anything?

No. Markdown serving, the canonical headers, the sitemap change and the robots.txt generation are all automatic on your existing content. If you previously added llms.txt links or crawler rules by hand, you can delete them.

No. Every markdown response carries a canonical header pointing at the HTML article, and sitemaps list the article only. Search engines treat the markdown as an alternate representation of a page they already know, not as a second page.

Where do I see which crawlers read my pages?

Open Analytics, find the Pages card, and switch the lens from Visitors to Crawlers. It's the same page list ranked by bot crawls instead of human views, and it includes llms.txt fetches alongside ordinary article reads.

My older changelog entries still show failed IndexNow submissions. Will they clear?

Those are stamps left by the attempts that failed, kept as a record — they don't re-check themselves. Saving the entry again re-submits it and overwrites the status with a fresh result from each engine.

Does llms.txt replace a sitemap?

No — they answer different questions. A sitemap tells a crawler which URLs exist on your site. llms.txt and the markdown twins decide how much of each article actually survives the trip into an AI answer.

Let your AI publish, and see who reads it

Connect Claude, ChatGPT, Cursor or Claude Code to Quillly, publish to your own domain, and watch which crawlers pick it up.

Start free

Teams: seat-based plans, organization profiles, and sharper served pages

Teams: seat-based plans, organization profiles, and sharper served pages

Quillly now has a Teams plan — one subscription for your whole content team, priced per seat like Pro.

New

  • Teams plan: $36/month or $384/year with 4 seats included. Additional seats are $9/month each ($96/year on the yearly cycle) — add or remove them any time from your billing portal, and the change applies to your workspace within seconds.

  • Fair seat handling: if seats ever drop below your member count, nobody is deleted. The newest members are paused (their work and role stay intact), you get an email listing exactly who, and they reactivate automatically — longest-waiting first — the moment a seat opens up.

  • Organization profile: owners and admins can set a team logo and links (website, X, LinkedIn, GitHub, YouTube, Instagram). Websites shared with your team show it on every published page — a "From the team at" block in the footer plus the publisher in structured data, so search engines attribute your content to your company.

  • Share buttons everywhere: docs pages and each changelog entry now have share buttons, and on blog posts sharing moved right where readers finish — before the author card.

Improved

  • Internal links understand every content type. The editor's link picker now searches posts, docs, and changelog entries together, labels each result, and shows its real public path — and links to docs resolve under /docs, never a broken blog URL. Agent link suggestions got the same upgrade.

  • Author links that make sense: bylines link to the author's own site only when it's genuinely external — no more links that loop back to the page's own homepage.

  • Wider, calmer table of contents, and more breathing room after the featured image's caption.

Fixed

  • The "Copy as Markdown" button rendered unstyled on published posts.

  • A faint shadow bled down the right edge of every published page — gone.

  • Table copy buttons no longer overlap the last column header; they live in a slim strip above the table at every screen size.

  • The mobile navigation drawer no longer shows a stray accent line while open.

New free SEO tools: Page Analyzer, DR checker and more

Four new free tools join the lineup at quillly.com/tools — no signup required.

  • Page Analyzer — paste any URL and get a full "why isn't this page ranking?" diagnosis: title and meta contract, content quality, AI-crawler readiness, sitemap and robots checks, with a shareable results link.

  • Domain Rating checker — look up any domain's DR (by Ahrefs) instantly.

  • IndexNow ping — notify Bing and other IndexNow engines about changed URLs in one click.

  • llms.txt generator + validator — create a spec-correct llms.txt for your site, or validate an existing one.

Every check the tools run is the same engine Quillly uses to keep customer pages healthy.

New to Quillly? Getting started walks through adding your site and publishing your first post.

Faster content dashboard + full-library search

The content dashboard is quicker, and search now reaches your whole library.

  • Search runs across every item of a content type in the database, not just the rows already loaded on screen, matching title, slug, excerpt, and meta description.

  • Infinite scroll is faster: pagination is index-backed and no longer runs a count scan on every load.

  • Result tables render from a trimmed field projection, so large libraries feel snappier.

  • Starting a new search resets the list cleanly and guards against out-of-order responses landing over newer ones.

Your AI can drive the same library from a chat window — see connect Claude, ChatGPT or Cursor.

A more readable article page

Published articles, docs, and changelog pages got a readability pass.

  • Code blocks are syntax-highlighted on the server with Shiki, and the token colors follow the reader's light or dark mode.

  • A sticky table of contents marks the section you're reading and moves with you, alongside a slim reading-progress bar.

  • Hover any heading to reveal an anchor link, so you can share a deep link straight to that section.

  • Tables, blockquotes, and captions were refined for cleaner spacing and rhythm.

  • Typography is tuned too: a larger opening lede and balanced heading wrapping make long reads easier on the eye.

These pages are served from your own domain — see content types & endpoints for how each one is published.

Charts and diagrams, rendered in your brand

Diagrams and charts you write as code now publish as polished images that match your site.

  • Fenced mermaid, chart, HTML, and SVG blocks render server-side into crisp WebP, with no client JavaScript, so bots, LLMs, and image search can read them.

  • Every image is a light card drawn in your site's brand color, with surface, ink, and accents pulled from your theme.

  • Add an optional caption to any block and it travels into the served figure.

  • On published pages, clicking an image opens a zoom lightbox with its caption.

  • Edit the code or change your brand color and the image re-renders automatically on the next save.

Visual density is part of how a post is scored — see how Quillly scores your content.