Skip to content

update(docs): improve SEO and GEO for docs#64

Open
Aibeto wants to merge 41 commits into
mainfrom
update/aibeto-26-SEO_extend_2
Open

update(docs): improve SEO and GEO for docs#64
Aibeto wants to merge 41 commits into
mainfrom
update/aibeto-26-SEO_extend_2

Conversation

@Aibeto

@Aibeto Aibeto commented Jun 15, 2026

Copy link
Copy Markdown
Member

Changes

  • Add Open Graph meta tags (og:title and og:image) to pages for improved social sharing.
  • Enhance /llms.txt and /llms-full.txt with clearer instructions and improved maintainability.
  • Minor doc fixes.

Related

alikia2x and others added 30 commits March 10, 2026 01:36
Add endpoints for registration and fetching current user:

POST /user to register a new user
GET /me to fetch the current user (if Authorization header is provided)
The POST /user endpoint now returns a Set-Cookie header upon successful registration. 
This allows for immediate session persistence without requiring a separate login step.
* refactor: move common logic and code into the `core` package

- Created `packages/core` with configurations for TypeScript and dependencies.
- Moved environment variables, Prisma client initialization, and utility functions to the core package.
- Relocated error response schemas and authentication modules.
- Introduced DTOs to better exchage objects and entities across different modules.

* feat: add Song module with DTO, Repository, Service and REST API

Updated Prisma schema - add performance model, rename singerOfSong to performance

* chore: update tsconfig files, add AGENTS.md and move test files

* feat(song): implement song CRUD endpoints

- Add POST /song/:id/details endpoint to get song details
- Add POST /song endpoint to create new song
- Add PATCH /song/:id endpoint to update song
- Add DELETE /song/:id endpoint to delete song
- Add GET /song endpoint to list songs
- Add ErrorResponseDto for consistent error handling
- Update AGENTS.md with module-specific backend conventions
- Upgrade biome from 2.3.8 to 2.4.8
- Add turbo.json to apps/backend and packages/core
- Update root lint script to use turbo run lint
- Fix monorepo workspace name from @project-cvsa/backend to cvsa

- Add POST /v2/session for user login with email and password
- Add DELETE /v2/session for user logout

- Use consistent error message for INVALID_CREDENTIALS
- Add 429 rate limit response schema to login/signup endpoints
- Switch || to ?? in `betterAuthUserToEntity` for proper nullish coalescing
- added some custom Biome rules via plugins
- introduced a Zod schema generator to Prisma schema
- use more specific schema instead of any() or passthough()
- Upgrade Prisma dependencies (7.5.0 → 7.6.0) and @cvsa/prisma-zod (3.2.1 → 3.3.0)
- Move TypeScript from peerDependencies to root devDependencies
- Upgrade to TypeScript 6
- Refactor error handler with factory pattern and explicit error code enum
- Simplify SongRepository interface by removing WithRelations variants
- Add lyrics field to SongDetailsResponse
- Reorganize Prisma schema structure (move performance.prisma to relations/)
- Remove relations field (performances, creations) in update method of SongRepository
- Add support for MeiliSearch
- Use a custom model2vec embedding model
- Use Docker compose to simplify container preparation
- Add DI container with singleton pattern
- Refactor to use singleton service instances
- Update repository interface and implementation with optional tx parameter
Introduce tracing and structured logging to improve observability
and debuggability of the system.

- Extract environment configuration, logging, and observability concerns into
dedicated packages (`@cvsa/env`, `@cvsa/logger`, `@cvsa/observability`), and move
the embedding inference server into its own `@cvsa/embedding` package. 
- Introduce a Pino-based request logger and an application logger 
that bridges to OpenTelemetry.
- Add an i18n middleware for per-request locale detection, replace hard-coded
error message strings with i18n keys, and include trace IDs in error responses
via X-Trace-ID headers. 
- Refactor the error handler into a composable Elysia plugin and restructure 
packages/core source files under a src/ directory.
- Add locale bundles for English and Chinese backend error messages, and expose
development-only endpoints for heap snapshot inspection and GC triggering.
Added more tests for repositories, services,
as well as the search module.
Implement full CRUD operations for song lyrics:
- GET /v2/song/:id/lyrics - List all lyrics for a song
- GET /v2/song/:id/lyric/:lyricId - Get specific lyric
- POST /v2/song/:id/lyric - Create lyric (auth required)
- PATCH /v2/song/:id/lyric/:lyricId - Update lyric (auth required)
- DELETE /v2/song/:id/lyric/:lyricId - Delete lyric (auth required)

Includes repository methods, service layer, DTOs, 
E2E tests, and i18n translations.
Add full CRUD endpoints for managing SVS engines in the catalog:
- GET /v2/engine/:id/details - retrieve engine details
- POST /v2/engine - create new engine (auth required)
- PATCH /v2/engine/:id - update engine (auth required)
- DELETE /v2/engine/:id - soft delete engine (auth required)

Also includes minor fixes to song service for missing search
sync calls on lyrics operations.
Implement a complete CRUD API for managing artists in the catalog.

Changes:
- Add GET /v2/artist/:id endpoint for retrieving artist details
- Add POST /v2/artist endpoint for creating new artists (auth required)
- Add PATCH /v2/artist/:id endpoint for updating artist metadata (auth required)
- Add DELETE /v2/artist/:id endpoint for soft-deleting artists (auth required)
- Add Zod schemas for request/response validation in packages/core
- Add E2E tests covering all endpoints with 15 test cases
Replace fire-and-forget search index synchronization with a transactional
outbox pattern using BullMQ to guarantee eventual consistency between DB
and search index. 
Add artist search service with hybrid embedding search.
Introduce BaseRepository to flatten repository code, add comprehensive
unit/integration tests for outbox, artist, and engine modules, and add
missing i18n error keys.
Implement a complete CRUD API for managing singers in the catalog.

- Add GET /v2/singer/:id endpoint for retrieving singer details
- Add POST /v2/singer endpoint for creating new singers (auth required)
- Add PATCH /v2/singer/:id endpoint for updating singer metadata (auth required)
- Add DELETE /v2/singer/:id endpoint for soft-deleting singers (auth required)
- Add Zod schemas for request/response validation in packages/core
- Add E2E tests covering all endpoints
- Add search support for singers
add redis and meilisearch env config examples, update required services list, add notes about remote docker compose and env customization
Standardized OG title metadata by adding the 'Project CVSA' prefix across all docs, fixed trailing punctuation on select pages, and improved SEO presentation and formatting consistency.
revise the notes about manual env config and variable consistency requirements
1. remove empty og:image field from not-found page
2. correct the count of containers to 3 instead of 2 in dev guide
Enhance documentation site SEO configuration: add robots.txt, refine site manifest, and generate a complete sitemap.
This commit adds the formal Conventional Commits based git commit guideline for the archive project, including basic format, examples, allowed commit types and PR template.
- Add robots.txt and sitemap generation script for search engine discoverability
- Replace hardcoded <title> with Next.js Metadata API on landing page
- Add Open Graph and Twitter Card metadata to landing and docs pages
- Add canonical URLs and JSON-LD structured data
- Add sr-only description text on landing page for search engine indexing
- Remove client-side document.title setting (now handled by Metadata API)
- Improve 404 page with metadata, noindex directive, and homepage link
- Update build script to generate sitemap.xml after static export
add the full git commit message specification rules file to the project
- Add complete Next.js Metadata configurations to landing page layout components, including titles, descriptions, canonical URLs, multilingual adaptation, Open Graph and Twitter Card information.
- Remove hardcoded title tags in HTML templates and adopt unified metadata configurations instead.
- Revise the main text and footnote notes in the Git commit specification document to use English description requirements.
alikia2x and others added 11 commits May 22, 2026 22:57
- Add language field to ArtistRole Prisma model
- Implement core module: DTOs, repository (with soft-delete), service (with outbox), DI container
- Add CRUD handlers for artistRole
- Add search service extending ISearchService with single-language indexing
- Remove rate limiting from login handler
- Refactor search interface and update search services for artist/singer/song
1. Add an environment variable config file to manage the site URL centrally
2. Inject the site URL environment variable during CI builds
3. Replace hardcoded site URLs with dynamically loaded configurations
4. Implement automatic sitemap generation logic and remove the manually maintained sitemap file
1. Remove legacy static `robots.txt` and dynamically generate the robots config using Next.js MetadataRoute
2. Introduce a metadata utility library to centralize the management of site titles, descriptions, and OG image configurations
3. Optimize site URL handling in environment variables by automatically stripping trailing slashes
4. Add multi-language site name configurations to unify site name retrieval across metadata
5. Apply standardized OpenGraph image configurations to all page metadata
6. Comment out ineffective Twitter Card configurations to unify the metadata format
…umentation endpoints

1. Add a unified project header to both the llms.txt and llms-full.txt endpoints, including the site link and usage instructions.
2. Refactor the llms-full.txt endpoint to organize document content by language and add standardized title links.
3. Add cache-control headers to both endpoints, setting the cache expiration time to 1 hour.
4. Add internationalization (i18n) support to the llms-full.txt endpoint to accommodate site names in both Chinese and English.
…configuration

1. Remove redundant og:title fields from all documentation pages, and uniformly generate OG titles using the main title.
2. Update OG image dimensions and links to the official 512x512 icon.
3. Fix the site URL concatenation logic to avoid redundant slashes.
4. Adjust the permission configuration for the GitHub Pages deployment workflow.
… generation logic

1. Add SITE_TITLE_404 and SITE_DESCRIPTION_404 constants to centrally manage 404 page metadata.
2. Fix the path concatenation issue in the URL generation for documentation pages.
3. Refactor the 404 page metadata to use the new constants instead of hardcoded content.
4. Export the SITE_URL constant to reuse the site address configuration.
…eto-26-SEO_extend_2"

This reverts commit c453a83, reversing
changes made to 30c687a.
- Replace `as Lang` inline assertions with `isLang` type guard in i18n.ts
- Replace `tree: any` with `Root` from `hast` in source.config.ts
- Replace `.then()` chaining with `async/await` in PageActions
- Rename component files to PascalCase: Links, PageActions, UpdateLanguage
- Add `@types/hast` as dev dependency for proper hast type definitions
@coderabbitai

coderabbitai Bot commented Jun 15, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@Aibeto, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 51 minutes and 43 seconds. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: 88922638-e7ab-4d2b-8227-b5639cb7f7fc

📥 Commits

Reviewing files that changed from the base of the PR and between c4f9019 and ac235b9.

⛔ Files ignored due to path filters (1)
  • bun.lock is excluded by !**/*.lock
📒 Files selected for processing (34)
  • .github/workflows/build-docs.yml
  • .trae/rules/git-commit-message.md
  • apps/docs/app/(docs)/[lang]/[[...slug]]/page.tsx
  • apps/docs/app/(landing)/layout.tsx
  • apps/docs/app/(landing)/old/page.tsx
  • apps/docs/app/(landing)/page.tsx
  • apps/docs/app/llms-full.txt/route.ts
  • apps/docs/app/llms.txt/route.ts
  • apps/docs/app/not-found.tsx
  • apps/docs/app/robots.ts
  • apps/docs/app/sitemap.ts
  • apps/docs/components/Links.tsx
  • apps/docs/components/PageActions.tsx
  • apps/docs/components/UpdateLanguage.tsx
  • apps/docs/content/internal/developers/guide.md
  • apps/docs/content/internal/index.md
  • apps/docs/content/internal/legacy/architecture-overview.md
  • apps/docs/content/internal/legacy/crawling-lifecycle.md
  • apps/docs/content/internal/legacy/database-schema-reference.md
  • apps/docs/content/internal/legacy/message-queue-reference.md
  • apps/docs/content/internal/legacy/network-proxy-architecture.md
  • apps/docs/content/internal/legacy/snapshot-execution.md
  • apps/docs/content/internal/legacy/snapshot-scheduling.md
  • apps/docs/content/internal/legacy/song-collection-pipeline.md
  • apps/docs/content/internal/legacy/video-discovery-pipeline.md
  • apps/docs/content/not-found.en.md
  • apps/docs/content/not-found.md
  • apps/docs/lib/env.ts
  • apps/docs/lib/i18n.ts
  • apps/docs/lib/metadata.ts
  • apps/docs/lib/source.ts
  • apps/docs/package.json
  • apps/docs/public/site.webmanifest
  • apps/docs/source.config.ts
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch update/aibeto-26-SEO_extend_2

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

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.

4 participants