{
  "url": "https://bloxx.page/formats",
  "title": "Formats and modifiers: one URL, every representation",
  "description": "Every Bloxx page is also served as .md, .txt, .json and .schema at the same URL. One grammar, learned once, applied to every page.",
  "lang": "en-GB",
  "headings": [
    {
      "level": 1,
      "text": "One URL, every representation"
    },
    {
      "level": 2,
      "text": "The idea"
    },
    {
      "level": 2,
      "text": "The four formats"
    },
    {
      "level": 2,
      "text": "Why this is the interesting part"
    },
    {
      "level": 3,
      "text": "It is the per-page evolution of llms.txt"
    },
    {
      "level": 3,
      "text": "It removes the parsing step"
    },
    {
      "level": 3,
      "text": "It makes structured data checkable"
    },
    {
      "level": 2,
      "text": "Modifiers"
    },
    {
      "level": 2,
      "text": "Writes are not in the URL"
    },
    {
      "level": 2,
      "text": "Publish something and check its .md"
    }
  ],
  "links": [
    {
      "text": "The four formats",
      "href": "#formats"
    },
    {
      "text": "Read the language spec",
      "href": "/bloxx-markdown"
    },
    {
      "text": "/formats",
      "href": "/formats"
    },
    {
      "text": ".md",
      "href": "/formats.md"
    },
    {
      "text": ".txt",
      "href": "/formats.txt"
    },
    {
      "text": ".json",
      "href": "/formats.json"
    },
    {
      "text": ".schema",
      "href": "/formats.schema"
    },
    {
      "text": "Email hello@itsbloxx.com",
      "href": "mailto:hello@itsbloxx.com"
    },
    {
      "text": "Run a free audit",
      "href": "https://itsbloxx.com/r/audit"
    }
  ],
  "text": "Bloxx Pages\n\n  Live on every page, no configuration\n\n  One URL, every representation\n\n  A Bloxx page is not just an HTML document. The same URL serves Markdown, plain text, structured JSON and the JSON-LD graph alone, generated by the renderer and cached at the edge.\n\n  The four formatsRead the language spec\n\n  This page, in four machine formats\n\n  /formats.md.txt.json.schema\n\n  Nothing was configured to make this work. It is a property of the renderer, so it is true of every page on every Bloxx domain.\n\nThe idea\n\nA page has one canonical address and several honest representations of the same content. A browser wants HTML. A model ingesting your docs wants Markdown. A pipeline wants JSON. A validator wants the structured-data graph on its own. Making a consumer scrape HTML to get any of those is a choice, not a constraint.\n\nSo the rule is: formats are a suffix on the canonical URL. Learn it once, apply it to any page, on any Bloxx domain, without reading documentation per site.\n\nThe four formats\n\nSuffixContent-TypeWhat it returns\n(none)text/htmlThe page, as a human reads it\n.mdtext/markdownMarkdown: headings, prose, lists and links, no chrome\n.txttext/plainFlat text, for anything that just wants the words\n.jsonapplication/jsonThe page as structured content\n.schemaapplication/ld+jsonThe JSON-LD graph alone, nothing else\n\nTry itbash\ncurl https://bloxx.page/formats.md\ncurl https://bloxx.page/formats.schema\ncurl https://bloxx.page/formats.json\n\nPrecise about the mechanism, because it matters: Bloxx serves these as a suffix on the path. Accept: text/markdown header negotiation is a separate thing, offered at the zone level by Cloudflare's Markdown for agents, and the two are complementary rather than the same feature. A ?as= query alias is designed but not implemented.\n\nWhy this is the interesting part\n\nIt is the per-page evolution of llms.txt\nnot one hand-written file describing a site, but every page describing itself, generated from the page and always current.\n\nIt removes the parsing step\na model reading .md never has to guess which <div> was the content and which was the cookie banner. Less to get wrong, fewer tokens spent.\n\nIt makes structured data checkable\n.schema returns the graph on its own, so validating what a page claims is one request rather than a parse.\n\nThe honest version of the pitch: we do not yet know how much answer engines reward this. Bloxx logs which format views get requested and by which user agents, so the question gets answered with data rather than opinion. If the machine views turn out to be ignored, that will show up in the numbers and we will say so.\n\nMachine-readable content is also no longer an exotic idea, which is a good sign rather than a bad one. Cloudflare now publishes an agent-readiness scanner that checks Markdown negotiation alongside robots rules, Link headers, DNS-based discovery, MCP server cards, Agent Skills and OAuth discovery. A rubric is forming. The interesting question is no longer whether machine formats matter, it is who makes a site pass the whole rubric without the owner doing fifteen separate pieces of work.\n\nModifiers\n\nFormats are a suffix. Modifiers are a query. Same discipline, different axis.\n\nBeing precise: the four format views are live. The modifiers below are designed, not built. They are documented here because the grammar is the product, and it is worth knowing where it goes. Do not plan around them yet.\n\nModifierStatusIntent\n?lang=frPlannedTranslated rendering, cached per page and language\n?variant=bPlannedA/B variant, with the traffic split and measurement handled\n?template=namePlannedThe same content in a different shell\n?view=editPlannedThe editor rendering of the page\n\nThey compose with formats the obvious way, which is the whole reason for the shape: /pricing.json?lang=fr is the French pricing page as structured content.\n\nWrites are not in the URL\n\nReads are shareable and unauthenticated. Writes are neither, and they never ride in a link.\n\nA shareable URL leaks into browser history, referrer headers, server logs, analytics and screenshots. A write credential in a query parameter is a breach with a delay on it. So publishing and updating go to a separate authenticated endpoint, with the credential in an Authorization header or a short-lived scoped token, never in the page URL. An agent still gets \"update this page in one call\"; the key just never becomes part of something you paste into Slack.\n\nDo I have to enable the format views?No. They are generated by the renderer for every published page, and they are cached at the edge alongside the HTML.\n\nAre they generated by a model?No. They are deterministic server-side transforms of the same stored page, which is why they are cheap, fast and cacheable.\n\nWill .md always match the page?Yes, because it is derived from the same source on request rather than maintained separately. That is the advantage over a hand-written llms.txt, which goes stale the first time someone edits a page.\n\nWhat about robots and crawl budget?The format views are alternate representations of a canonical page, not new pages. They are not added to the sitemap, and the HTML version carries the canonical.\n\n  Publish something and check its .md\n\n  The publish loop, the format views and the audit engine are live. If you build or manage sites and want the connector, get in touch.\n\n  Email hello@itsbloxx.comRun a free audit\n",
  "schema": [
    {
      "@context": "https://schema.org",
      "@graph": [
        {
          "@type": "WebPage",
          "name": "Formats and modifiers: one URL, every representation",
          "description": "Every Bloxx page is also served as .md, .txt, .json and .schema at the same URL. One grammar, learned once, applied to every page.",
          "url": "https://bloxx.page/formats"
        },
        {
          "@type": "FAQPage",
          "mainEntity": [
            {
              "@type": "Question",
              "name": "Do I have to enable the format views?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "No. They are generated by the renderer for every published page, and they are cached at the edge alongside the HTML."
              }
            },
            {
              "@type": "Question",
              "name": "Are they generated by a model?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "No. They are deterministic server-side transforms of the same stored page, which is why they are cheap, fast and cacheable."
              }
            },
            {
              "@type": "Question",
              "name": "Will .md always match the page?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "Yes, because it is derived from the same source on request rather than maintained separately. That is the advantage over a hand-written llms.txt, which goes stale the first time someone edits a page."
              }
            },
            {
              "@type": "Question",
              "name": "What about robots and crawl budget?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "The format views are alternate representations of a canonical page, not new pages. They are not added to the sitemap, and the HTML version carries the canonical."
              }
            }
          ]
        }
      ]
    },
    {
      "@context": "https://schema.org",
      "@type": "Person",
      "name": "Charlie Bailey",
      "jobTitle": "Founder, Bloxx Pages",
      "url": "https://www.linkedin.com/in/charliebaileyy/",
      "sameAs": [
        "https://www.linkedin.com/in/charliebaileyy/",
        "https://x.com/joinsidequester"
      ]
    }
  ]
}
