Skip to content

docs(api): enrich 3 API endpoint pages to fix 'crawled - currently not indexed' - #155

Merged
nicolasiscoding merged 3 commits into
mainfrom
worktree-docs-api-seo
Sep 7, 2026
Merged

nicolasiscoding merged 3 commits into
mainfrom
worktree-docs-api-seo

Conversation

@nicolasiscoding

@nicolasiscoding nicolasiscoding commented Sep 7, 2026

Copy link
Copy Markdown
Member

Closes #156

Why

GSC shows 42 docs.turbodocx.com pages stuck in Crawled – currently not indexed, concentrated in the auto-generated API reference. Per Search Engine Journal/Land, that status is a content-quality signal (thin/templated pages); these API pages rendered ~80 words of unique content.

This is a 3-endpoint prototype to validate the fix before scaling to the other ~40: enrich the page, deploy, manually Request Indexing in GSC, and confirm it moves to Indexed.

What

Enriches delete-template, get-templates-and-folders, and upload-template-with-optional-default-values with a real meta description, intro + "when to use", a runnable curl example, an accurate example response, a common-errors table, and related-endpoint links.

Accuracy: all responses and error codes are verified against the actual RapidDocxBackend handlers (not inferred):

  • Response envelope { data: { results, [totalRecords] } }; errors { message, error, data: { explanation, context } }.
  • delete → 200 { data: {} } (soft, idempotent, no 404); list → real item fields + limit(9)/offset paging, showTags default true; upload → 201 { data: { results: { template } } }, errors plan-limit 400 / improper-file 400 / storage 503.
  • TS SDK exposes no document-template methods, so no SDK snippets were added.

All 3 compile under MDX v3 (Docusaurus 3.10 engine).

Note for reviewers / follow-up

These .api.mdx files are generated by docusaurus-plugin-openapi-docs and are currently stale (spec descriptions were enriched after the pages were last generated). Sustainable rollout should move rich content into the OpenAPI spec and fix the regen pipeline (config outputDir docs/api/turbodocx does not match the served docs/API/).

🤖 Generated with Claude Code

Nicolas Fry and others added 2 commits September 7, 2026 12:11
…t indexed"

Prototype for clearing the thin-content indexing problem on docs.turbodocx.com.
GSC shows 42 docs pages stuck in "Crawled - currently not indexed"; per Search
Engine Journal/Land that status is a content-quality signal (thin/templated
pages). These API reference pages rendered ~80 words of unique content.

Enriches delete-template, get-templates-and-folders, and
upload-template-with-optional-default-values with: a real meta description,
an intro + "when to use", a runnable curl example, an example response, a
common-errors table, and related-endpoint links. Validated: compiles under
MDX v3 (Docusaurus 3.10 engine).

Note: these .api.mdx files are generated by docusaurus-plugin-openapi-docs and
are currently STALE (spec descriptions were enriched 2026-05-17 but pages last
generated 2026-05-06). Sustainable rollout should move rich content into the
OpenAPI spec descriptions and fix the regen pipeline (config outputDir
'docs/api/turbodocx' does not match the served 'docs/API/').

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TfRHAUz2HTtpSJ1XxYYQa1
…havior

Replaces the inferred examples from the previous commit with responses and
error codes verified against RapidDocxBackend handlers and the TS SDK:

- Standard response envelope is { data: { results, [totalRecords] } };
  errors are { message, error, data: { explanation, context } }.
- delete-template: returns 200 { data: {} }; soft delete, idempotent (no 404);
  errors 401/403 are status-only, 400 on bad UUID. Dropped the invented 404.
- get-templates-and-folders: real item fields, { data: { results, totalRecords } };
  limit default 9 + offset paging, plus query/selectedTags/column0/order0;
  showTags defaults to true. Dropped invented "templateItems"/"total"/403.
- upload-template: returns 201 { data: { results: { template } } } with the
  real Template row; errors are plan-limit 400 (uses "type"), improper-file 400,
  storage 503. Dropped the invented 413.

TS SDK exposes no document-template methods (confirmed), so no SDK snippets
were added. Auth is Authorization: Bearer <apiKey> + x-rapiddocx-org-id.
All three compile under MDX v3.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TfRHAUz2HTtpSJ1XxYYQa1
Verified against RapidDocxBackend handlers/schemas:
- delete-template: locked template returns 423 { error, message, data:{locked,lockedBy,lockedOn} }, not a 403 empty body.
- upload-template: name and variables are REQUIRED for POST (were shown optional); clarified "optional default values" means per-variable defaults.
- get-templates: createdBy is a user UUID (not a display name); fileType is the full MIME type (not "docx").
- get-templates: intro corrected -- default returns only root-level items; type=template enumerates across folders.
- all three: Joi/celebrate validation 400s use { message, type:"ValidationError", data:{errors} }, not the { message, error, data:{explanation,context} } envelope; upload now separates schema-validation vs file/storage/plan-limit error shapes.

All three recompile under MDX v3.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TfRHAUz2HTtpSJ1XxYYQa1
@nicolasiscoding

Copy link
Copy Markdown
Member Author

approved

@nicolasiscoding
nicolasiscoding merged commit 5845d94 into main Sep 7, 2026
1 check passed
nicolasiscoding pushed a commit that referenced this pull request Sep 7, 2026
Brings the delete-template / get-templates-and-folders / upload-template
enrichment (PR #155) into the develop integration branch. No conflicts;
disjoint files from develop's in-flight docs work.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TfRHAUz2HTtpSJ1XxYYQa1
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