drizzle-team / drizzle-team/drizzle-orm-docs

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

Open Beginner friendly
#705 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
MDX
Stars
241
Forks
401
Avg merge
5h 44m
Merged PRs (30d)
1

Description

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/` 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/` 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](https://github.com/portdeveloper/llms-txt-check). for context, i maintain [docusaurus-plugin-copy-page-button](https://github.com/portdeveloper/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:

```yaml
- 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
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Start in src/pages/llms.txt.ts and inspect getUrl, then run npx llms-txt-check https://orm.drizzle.team to reproduce the broken links. Update the URL generation so PostgreSQL entries match the site's unprefixed /docs/ routes, and confirm the listed PostgreSQL URLs no longer return 404.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
documentation
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
85/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.