Skip to content

feat(public): .md mirror for every route + /llms-full.txt aggregate#17

Merged
mastermanas805 merged 1 commit into
mainfrom
feat/text-only-routes
May 11, 2026
Merged

feat(public): .md mirror for every route + /llms-full.txt aggregate#17
mastermanas805 merged 1 commit into
mainfrom
feat/text-only-routes

Conversation

@mastermanas805
Copy link
Copy Markdown
Member

What this does

LLMs and crawlers no longer have to parse HTML to consume the marketing site. Every public HTML route now has a parallel .md mirror at the same path with a .md suffix.

HTML route Markdown mirror
/ /index.md
/pricing /pricing.md
/for-agents /for-agents.md
/status /status.md
/docs /docs.md (all 8 sections in one file)
/blog /blog.md
/blog/<slug> /blog/<slug>.md
/use-cases /use-cases.md
/use-cases/<slug> /use-cases/<slug>.md

A single aggregate /llms-full.txt (~361 KB) concatenates every markdown page with URL-keyed section separators, so an LLM that wants the entire site's text can fetch one file instead of 115.

Where the content comes from

  • Blog posts: copy .content/blog/<slug>.md verbatim
  • Use cases: copy .content/use-cases/<slug>.md verbatim
  • Docs: concatenate .content/docs/*.md (ordered by frontmatter order) into a single /docs.md
  • React-only pages (home, pricing, for-agents, status): copy authored .content/pages/<name>.md (4 new files added to InstaNode-dev/content in commit 5fea532)
  • Index pages (/blog, /use-cases): generated at build time from the directory listings + frontmatter

Link convention

All internal links in the markdown use the .md mirror (/use-cases/foo.md), not the HTML route (/use-cases/foo), so an LLM following links stays in markdown.

GitHub descriptions updated

Both repos now advertise the LLM-friendly URLs in their description:

  • InstaNode-dev/content: "...LLM-friendly: https://instanode.dev/llms.txt · every page has a /.md mirror · full text at /llms-full.txt"
  • InstaNode-dev/instanode-web: similar

Verification

  • npm run build ✓ — 115 HTML + 115 .md + llms.txt + llms-full.txt (~361 KB, 115 sections)
  • dist/index.md is the 2.5 KB homepage in markdown
  • dist/docs.md is the 5.5 KB single-page docs (8 sections concatenated)
  • dist/blog.md, dist/use-cases.md are generated indexes with markdown links
  • dist/use-cases/ephemeral-test-database-for-a-risky-migration.md is the verbatim content-repo source

🤖 Generated with Claude Code

LLMs and crawlers no longer have to parse HTML to consume the
marketing site. Every public HTML route now has a parallel .md
mirror at the same path with a .md suffix:

  /                          →  /index.md
  /pricing                   →  /pricing.md
  /for-agents                →  /for-agents.md
  /status                    →  /status.md
  /docs                      →  /docs.md       (all 8 sections concatenated)
  /blog                      →  /blog.md       (post index)
  /blog/<slug>               →  /blog/<slug>.md
  /use-cases                 →  /use-cases.md  (catalogue grouped by category)
  /use-cases/<slug>          →  /use-cases/<slug>.md

A single aggregate /llms-full.txt (~361 KB) concatenates every
markdown page with URL-keyed section separators, so an LLM that
wants the entire site's text can fetch one file instead of 115.

Sources:
  - Blog posts: copy .content/blog/<slug>.md verbatim
  - Use cases: copy .content/use-cases/<slug>.md verbatim
  - Docs: concatenate .content/docs/*.md (ordered by frontmatter
    'order') into a single /docs.md
  - React-only marketing pages (home, pricing, for-agents,
    status): copy authored .content/pages/<name>.md
  - Index pages (/blog, /use-cases): generated at build time from
    the corresponding directory listings + frontmatter

Markdown link convention follows GFM — any URL in the rendered
text is in [label](url) form so an LLM can follow them. Internal
links use /path.md (the mirror), not /path (the HTML route), so
an LLM following links stays in markdown.

Total prerender output is now:
  - 115 HTML files (per-route SPA-pre-render)
  - 115 .md files (mirror routes)
  - 1 llms.txt (manifest pointing at the .md routes)
  - 1 llms-full.txt (361 KB, 115 sections, full text dump)

GitHub repo descriptions for InstaNode-dev/content and
InstaNode-dev/instanode-web were updated in the same change to
advertise the LLM-friendly URLs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@mastermanas805 mastermanas805 merged commit f47e067 into main May 11, 2026
1 of 2 checks passed
@mastermanas805 mastermanas805 deleted the feat/text-only-routes branch May 11, 2026 12:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant