Skip to content

llms.txt lists 71 /docs/pg/* URLs that 404 in production #705

Description

@portdeveloper

hey! i was testing an llms.txt validator against popular docs sites and orm.drizzle.team came back with 71 broken links out of 442 (16%), all of them under /docs/pg/.

what's happening: src/pages/llms.txt.ts builds URLs as ${url.origin}/docs/${directoryName}/${slug} from the _meta.json directory structure, so every dialect gets its prefix, including pg. but the site serves postgres as the default dialect at /docs/<slug> with no prefix, so every pg link in llms.txt 404s while the other dialects work fine:

$ curl -so /dev/null -w "%{http_code}\n" https://orm.drizzle.team/docs/mysql/select
200
$ curl -so /dev/null -w "%{http_code}\n" https://orm.drizzle.team/docs/pg/select
404
$ curl -so /dev/null -w "%{http_code}\n" https://orm.drizzle.team/docs/select
200

so any AI tool that fetches your llms.txt gets 404s for the entire postgres section, which is presumably the section most people want.

simplest fix is probably special-casing pg in getUrl so it emits /docs/<slug> unprefixed, matching the routing. alternatively a redirect from /docs/pg/* to /docs/* would fix it for anyone who already ingested the current file. happy to PR either if you tell me which you'd prefer.

fwiw i found this while testing a checker i just published, llms-txt-check. for context, i maintain docusaurus-plugin-copy-page-button (runs on 28 docs sites; react native and pnpm are the big ones, puppeteer too) so i spend a lot of time in this corner of docs tooling. npx llms-txt-check https://orm.drizzle.team reproduces the report, and as a post-deploy CI step it would catch this class of drift before agents hit it. and if you ever want it guarding this permanently, it's one line in CI after deploy:

- run: npx llms-txt-check@0.1.1 https://orm.drizzle.team

it exits nonzero when any listed url stops serving, so the deploy that breaks a route goes red instead of shipping quietly. happy to PR that too, but no pressure either way, the fix above is the main thing.

all 71 broken URLs (checked 2026-08-09)
https://orm.drizzle.team/docs/pg/overview
https://orm.drizzle.team/docs/pg/upgrade-v1
https://orm.drizzle.team/docs/pg/v0-v1-changes
https://orm.drizzle.team/docs/pg/relations-v1-v2
https://orm.drizzle.team/docs/pg/sql-schema-declaration
https://orm.drizzle.team/docs/pg/relations-schema-declaration
https://orm.drizzle.team/docs/pg/connect-overview
https://orm.drizzle.team/docs/pg/data-querying
https://orm.drizzle.team/docs/pg/migrations
https://orm.drizzle.team/docs/pg/get-started-postgresql
https://orm.drizzle.team/docs/pg/connect-planetscale-postgres
https://orm.drizzle.team/docs/pg/connect-neon
https://orm.drizzle.team/docs/pg/connect-vercel-postgres
https://orm.drizzle.team/docs/pg/connect-prisma-postgres
https://orm.drizzle.team/docs/pg/connect-supabase
https://orm.drizzle.team/docs/pg/connect-xata
https://orm.drizzle.team/docs/pg/connect-pglite
https://orm.drizzle.team/docs/pg/connect-nile
https://orm.drizzle.team/docs/pg/connect-bun-sql
https://orm.drizzle.team/docs/pg/connect-effect-postgres
https://orm.drizzle.team/docs/pg/connect-netlify-db
https://orm.drizzle.team/docs/pg/connect-aws-data-api-pg
https://orm.drizzle.team/docs/pg/connect-drizzle-proxy
https://orm.drizzle.team/docs/pg/column-types
https://orm.drizzle.team/docs/pg/indexes-constraints
https://orm.drizzle.team/docs/pg/sequences
https://orm.drizzle.team/docs/pg/views
https://orm.drizzle.team/docs/pg/schemas
https://orm.drizzle.team/docs/pg/relations
https://orm.drizzle.team/docs/pg/rls
https://orm.drizzle.team/docs/pg/extensions
https://orm.drizzle.team/docs/pg/kit-overview
https://orm.drizzle.team/docs/pg/drizzle-kit-generate
https://orm.drizzle.team/docs/pg/drizzle-kit-migrate
https://orm.drizzle.team/docs/pg/drizzle-kit-push
https://orm.drizzle.team/docs/pg/drizzle-kit-pull
https://orm.drizzle.team/docs/pg/drizzle-kit-export
https://orm.drizzle.team/docs/pg/drizzle-kit-check
https://orm.drizzle.team/docs/pg/drizzle-kit-up
https://orm.drizzle.team/docs/pg/drizzle-kit-studio
https://orm.drizzle.team/docs/pg/kit-custom-migrations
https://orm.drizzle.team/docs/pg/drizzle-config-file
https://orm.drizzle.team/docs/pg/seed-overview
https://orm.drizzle.team/docs/pg/seed-versioning
https://orm.drizzle.team/docs/pg/rqb
https://orm.drizzle.team/docs/pg/joins
https://orm.drizzle.team/docs/pg/select
https://orm.drizzle.team/docs/pg/insert
https://orm.drizzle.team/docs/pg/update
https://orm.drizzle.team/docs/pg/delete
https://orm.drizzle.team/docs/pg/operators
https://orm.drizzle.team/docs/pg/query-utils
https://orm.drizzle.team/docs/pg/aliases
https://orm.drizzle.team/docs/pg/sql
https://orm.drizzle.team/docs/pg/sql-comments
https://orm.drizzle.team/docs/pg/perf-queries
https://orm.drizzle.team/docs/pg/set-operations
https://orm.drizzle.team/docs/pg/generated-columns
https://orm.drizzle.team/docs/pg/transactions
https://orm.drizzle.team/docs/pg/batch-api
https://orm.drizzle.team/docs/pg/cache
https://orm.drizzle.team/docs/pg/dynamic-query-building
https://orm.drizzle.team/docs/pg/read-replicas
https://orm.drizzle.team/docs/pg/custom-types
https://orm.drizzle.team/docs/pg/codecs
https://orm.drizzle.team/docs/pg/zod
https://orm.drizzle.team/docs/pg/valibot
https://orm.drizzle.team/docs/pg/typebox
https://orm.drizzle.team/docs/pg/typebox-legacy
https://orm.drizzle.team/docs/pg/arktype
https://orm.drizzle.team/docs/pg/effect-schema

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