Skip to content

[P2] Create first-class framework integration matrix #41

@KayleeWilliams

Description

@KayleeWilliams

Problem

Leadtype says "bring your own UI," but users need concrete proof that it works well in each major framework. Svelte/SvelteKit and Astro should be first-class supported targets, not afterthoughts.

The goal is not one generic integration that feels awkward everywhere. The goal is one agnostic core with native-feeling framework recipes.

Proposal

Create a first-class framework integration matrix.

Initial supported matrix:

  • Next.js App Router
  • Nuxt/Nitro
  • Astro
  • SvelteKit with mdsvex
  • TanStack Start / Vite React
  • Fumadocs

Each framework should document:

  • MDX/markdown source setup.
  • How to render human docs pages.
  • How to serve generated artifacts.
  • How to serve raw markdown or content-negotiated markdown.
  • How to load static search JSON.
  • What runs at build time vs server/runtime.

Framework-Specific Expectations

SvelteKit:

  • Use +page.server.ts / +page.svelte for human pages.
  • Use +server.ts for markdown/API responses.
  • Use entries() for prerendered dynamic routes.
  • Use stores/runes for client search ergonomics.

Astro:

  • Use getStaticPaths() for generated routes.
  • Use endpoints for markdown responses.
  • Interop with Astro Content Collections where users already use them.
  • Use framework islands or plain client scripts for search UI.

Nuxt:

  • Use Nitro routes/middleware.
  • Use Vue composables for search.
  • Position clearly against Nuxt Content: Nuxt Content is a Nuxt CMS; Leadtype is the portable artifact pipeline.

Next:

  • Use App Router pages/route handlers.
  • Use generateStaticParams().
  • Use React hooks for search ergonomics.

Acceptance Criteria

  • Each framework has a working render-docs recipe.
  • Each framework has an artifact-serving recipe for /llms.txt, /llms-full.txt, markdown mirrors, and search JSON.
  • SvelteKit docs include mdsvex setup with Leadtype remark/source plugins.
  • Astro docs include getStaticPaths() and endpoint examples.
  • Recipes use native framework conventions and avoid generic pseudocode.
  • Examples clarify build-time, server-time, and client-time responsibilities.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions