Skip to content

docs: redesign documentation site into guide + package reference - #756

Merged
tada5hi merged 2 commits into
masterfrom
docs/redesign
Jul 13, 2026
Merged

docs: redesign documentation site into guide + package reference#756
tada5hi merged 2 commits into
masterfrom
docs/redesign

Conversation

@tada5hi

@tada5hi tada5hi commented Jul 12, 2026

Copy link
Copy Markdown
Owner

What

Complete redesign of the docs site (rapiq.tada5hi.net), restructured after the patterns used by the Vue / Vitest / Nuxt docs: motivation first, fast quick start, essentials ordered by the user journey, deep topics later, recipes for real tasks, and per-package reference split out of the guide.

New structure

Guide (/guide/)

  • Introduction — What is rapiq? (new pitch page with a 30-second tour), Installation, Quick Start
  • Essentials — Core Concepts (new), Building Queries, Schemas & Validation, Queries over the Wire (new), Executing Queries (new)
  • Query Parameters — fields / filters / relations / sort / pagination, rebuilt on one consistent skeleton (wire format → building in code → schema options → failure)
  • Digging Deeper — Merging & Composition, Error Handling (new: hierarchy + ErrorCode tables + HTTP mapping), The Query AST (visitors, ResolutionScope)
  • Recipes (new) — REST API with Express & TypeORM, Type-Safe Frontend Queries, Authorization & Scoping
  • Migration — split into from v1 and from typeorm-extension

Packages (/packages/) — one reference page per @rapiq/* package (incl. a new @rapiq/core page; the combined URL codec page is split per package), plus an overview with a "which packages do I need?" decision guide and a dependency-layer figure.

Illustrations

ASCII diagrams are replaced with theme-aware Vue components (registered globally, styled via the existing --rq-* tokens, responsive, light/dark):

  • QueryPipeline — caller → wire → receiver flow on the guide landing page
  • QueryHub — producers → Query → consumers on Core Concepts
  • PackageLayers — dependency bands on the package overview

Compatibility

  • Old URLs (/integrations/*, /getting-started/*, /guide/{build,merge,schema,query,migration}) keep working via meta-refresh redirect stubs — published npm package READMEs link to them.
  • Root & package README doc links updated to the new canonical URLs.
  • Home-page components (hero, package showcase) point at the new pages; the showcase now features @rapiq/memory.

Verification

  • npm run build --workspace=packages/docs passes (VitePress dead-link check enabled by default).
  • All 32 sidebar targets exist in the build output; redirect stubs verified to emit their <meta http-equiv="refresh"> tags; the three figures SSR into their pages.

Summary by CodeRabbit

  • Documentation
    • Reorganized the documentation site with clearer Guide and Packages navigation, including rebuilt sidebars and updated internal routes.
    • Added new end-user guides and package documentation for installation, quick start, core concepts, errors, query AST, building queries, merging/composition, schemas & validation, wire/codec behavior, executing queries, and common recipes.
    • Added visual query/pipeline and package-relationship diagrams across the guide.
    • Updated README links and added redirects from older Getting Started and Integrations pages to the new /guide/ and /packages/ routes.

- restructure into a learning-path Guide (introduction, essentials,
  parameters, digging deeper, recipes, migration) and a per-package
  reference section (/packages/)
- add new pages: core concepts, wire/transport, executing queries,
  error handling, three recipes (express-typeorm, frontend,
  authorization) and split migration guides (v1, typeorm-extension)
- add @rapiq/core reference page; split the URL codec page per package
- replace ascii diagrams with theme-aware Vue figures (QueryPipeline,
  QueryHub, PackageLayers)
- keep old URLs working via meta-refresh redirect stubs (published
  package READMEs link to them)
- point root & package README doc links at the new canonical URLs
Copilot AI review requested due to automatic review settings July 12, 2026 15:01

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@coderabbitai

coderabbitai Bot commented Jul 12, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The documentation site is reorganized around /guide/ and /packages/. New guides, package documentation, migration recipes, redirects, navigation, README links, and visual theme components are added or updated.

Changes

Documentation v2 information architecture

Layer / File(s) Summary
Navigation, redirects, and documentation links
README.md, packages/*/README.md, packages/docs/.vitepress/config.mjs, packages/docs/getting-started/*, packages/docs/integrations/*, packages/docs/guide/{query,schema,build,merge,migration}.md
Navigation and package links now use the new guide and package routes, while legacy pages redirect to replacement content.
Theme diagrams and package presentation
packages/docs/.vitepress/theme/*
Global diagram components document the query pipeline, query hub, and package dependency layers; package showcase links and copy use the package-family structure.
Guide foundation and end-to-end flow
packages/docs/guide/{index,concepts,errors,installation,quick-start,query-ast,schemas,wire,executing-queries,building-queries}.md
Guides document the core concepts, installation, query construction, AST, schema validation, wire codecs, error handling, execution adapters, and end-to-end setup.
Query parameters and composition
packages/docs/guide/{fields,filters,pagination,relations,sort,merging-queries}.md
Parameter guides describe wire formats, typed construction, validation behavior, and query merge/composition semantics.
Migration and integration recipes
packages/docs/guide/migration-*.md, packages/docs/guide/recipes/*
Migration guidance and recipes cover v1, TypeORM extension, authorization, Express/TypeORM endpoints, and frontend query composition.
Package documentation
packages/docs/packages/*
Package pages document codecs, parsers, core, package selection, memory evaluation, SQL rendering, and TypeORM adapter behavior.

Estimated code review effort: 4 (Complex) | ~60 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: redesigning the docs site into guide and package reference sections.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/redesign

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

🧹 Nitpick comments (2)
packages/docs/guide/filters.md (1)

42-49: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Specify a language for the fenced code block.

The code block at line 42 has no language specifier, triggering markdownlint MD040. Since this is wire-format example text (not executable code), text is the appropriate language.

📝 Proposed fix

-filter[id]=1 equal
+```text
+filter[id]=1 equal
filter[name]=jo contains

</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @packages/docs/guide/filters.md around lines 42 - 49, Specify the text
language for the fenced code block containing the filter examples in the filters
documentation, using a text fence while preserving all example content and
formatting.


</details>

<!-- cr-comment:v1:ce9d8a1b62b17ce1d73182df -->

_Source: Linters/SAST tools_

</blockquote></details>
<details>
<summary>packages/docs/guide/recipes/frontend.md (1)</summary><blockquote>

`79-81`: _🩺 Stability & Availability_ | _🔵 Trivial_ | _⚡ Quick win_

**Prevent stale requests from overwriting newer results.**

`watchEffect(async () => ...)` allows an earlier, slower response to replace results from a newer search or page. Use an `AbortController` or Vue cleanup callback before assigning `users.value`.

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @packages/docs/guide/recipes/frontend.md around lines 79 - 81, Update the
watchEffect around the users fetch to cancel or invalidate the previous request
during cleanup, and ensure its response is only assigned to users.value if it is
still current. Preserve the existing queryString-driven fetch behavior while
preventing slower responses from overwriting newer results.


</details>

<!-- cr-comment:v1:6c1103cecf9a44f4c6f24f5a -->

</blockquote></details>

</blockquote></details>

<details>
<summary>🤖 Prompt for all review comments with AI agents</summary>

Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @packages/docs/guide/building-queries.md:

  • Around line 8-14: Make the introductory defineQuery example self-contained by
    replacing the undeclared text and id references in the filters with
    representative literals, or declare both values before the query. Keep the
    existing query structure and TypeScript validity intact.

In @packages/docs/guide/index.md:

  • Around line 7-9: Specify the fenced code block language for the URL-query
    example in the documentation, using text (or an equivalent plain-text language)
    to satisfy Markdown linting while preserving the example content.

In @packages/docs/guide/quick-start.md:

  • Line 44: Update the filter example in the quick-start guide to use the
    schema’s declared User field, realm, instead of realm_id. Keep the array/in-list
    demonstration and ensure the referenced field is included in the allowed filter
    configuration.

In @packages/docs/guide/recipes/frontend.md:

  • Around line 39-51: Update the recipe’s query-building flow to accept realmId
    explicitly rather than referencing undeclared props: add realmId to buildQuery
    or fetchUsers, use that parameter when defining the scope, and pass it through
    from each framework adapter. Preserve the existing merge precedence and query
    behavior.

In @packages/docs/packages/typeorm.md:

  • Line 72: Update the terminology in the TypeORM adapter documentation around
    the dialect and operator description so “regex” and “regexp” are used
    consistently throughout the page. Choose one term, replace the inconsistent
    occurrence(s), and preserve the existing behavior and operator names where they
    are part of the documented API.

In @README.md:

  • Line 87: Correct the condition helpers Markdown link target in the README,
    replacing the malformed building-queriesing-queries path with the documented
    condition-helpers URL while preserving the existing link text and surrounding
    content.

Nitpick comments:
In @packages/docs/guide/filters.md:

  • Around line 42-49: Specify the text language for the fenced code block
    containing the filter examples in the filters documentation, using a text fence
    while preserving all example content and formatting.

In @packages/docs/guide/recipes/frontend.md:

  • Around line 79-81: Update the watchEffect around the users fetch to cancel or
    invalidate the previous request during cleanup, and ensure its response is only
    assigned to users.value if it is still current. Preserve the existing
    queryString-driven fetch behavior while preventing slower responses from
    overwriting newer results.

</details>

<details>
<summary>🪄 Autofix (Beta)</summary>

Fix all unresolved CodeRabbit comments on this PR:

- [ ] <!-- {"checkboxId": "4b0d0e0a-96d7-4f10-b296-3a18ea78f0b9"} --> Push a commit to this branch (recommended)
- [ ] <!-- {"checkboxId": "ff5b1114-7d8c-49e6-8ac1-43f82af23a33"} --> Create a new PR with the fixes

</details>

---

<details>
<summary>ℹ️ Review info</summary>

<details>
<summary>⚙️ Run configuration</summary>

**Configuration used**: defaults

**Review profile**: CHILL

**Plan**: Pro

**Run ID**: `53d877ac-9b4a-41a0-8acb-c4f0f455e199`

</details>

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between ff800701c38e43298e09bc2c104153eb3a3ddd25 and 2a203f85664f5391ce9af23aa3d2aca88b6e10a4.

</details>

<details>
<summary>📒 Files selected for processing (67)</summary>

* `README.md`
* `packages/codec-url-expression/README.md`
* `packages/codec-url-simple/README.md`
* `packages/codec-url/README.md`
* `packages/core/README.md`
* `packages/docs/.vitepress/config.mjs`
* `packages/docs/.vitepress/theme/components/Hero.vue`
* `packages/docs/.vitepress/theme/components/PackageLayers.vue`
* `packages/docs/.vitepress/theme/components/PackageShowcase.vue`
* `packages/docs/.vitepress/theme/components/QueryHub.vue`
* `packages/docs/.vitepress/theme/components/QueryPipeline.vue`
* `packages/docs/.vitepress/theme/components/TypeormSection.vue`
* `packages/docs/.vitepress/theme/index.ts`
* `packages/docs/getting-started/index.md`
* `packages/docs/getting-started/installation.md`
* `packages/docs/getting-started/quick-start.md`
* `packages/docs/guide/build.md`
* `packages/docs/guide/building-queries.md`
* `packages/docs/guide/concepts.md`
* `packages/docs/guide/errors.md`
* `packages/docs/guide/executing-queries.md`
* `packages/docs/guide/fields.md`
* `packages/docs/guide/filters.md`
* `packages/docs/guide/index.md`
* `packages/docs/guide/installation.md`
* `packages/docs/guide/merge.md`
* `packages/docs/guide/merging-queries.md`
* `packages/docs/guide/migration-typeorm-extension.md`
* `packages/docs/guide/migration-v1.md`
* `packages/docs/guide/migration.md`
* `packages/docs/guide/pagination.md`
* `packages/docs/guide/query-ast.md`
* `packages/docs/guide/query.md`
* `packages/docs/guide/quick-start.md`
* `packages/docs/guide/recipes/authorization.md`
* `packages/docs/guide/recipes/express-typeorm.md`
* `packages/docs/guide/recipes/frontend.md`
* `packages/docs/guide/relations.md`
* `packages/docs/guide/schema.md`
* `packages/docs/guide/schemas.md`
* `packages/docs/guide/sort.md`
* `packages/docs/guide/wire.md`
* `packages/docs/integrations/expression.md`
* `packages/docs/integrations/index.md`
* `packages/docs/integrations/memory.md`
* `packages/docs/integrations/mongo.md`
* `packages/docs/integrations/simple.md`
* `packages/docs/integrations/sql.md`
* `packages/docs/integrations/typeorm.md`
* `packages/docs/integrations/url.md`
* `packages/docs/packages/codec-url-expression.md`
* `packages/docs/packages/codec-url-simple.md`
* `packages/docs/packages/codec-url.md`
* `packages/docs/packages/core.md`
* `packages/docs/packages/index.md`
* `packages/docs/packages/memory.md`
* `packages/docs/packages/parser-expression.md`
* `packages/docs/packages/parser-mongo.md`
* `packages/docs/packages/parser-simple.md`
* `packages/docs/packages/sql.md`
* `packages/docs/packages/typeorm.md`
* `packages/memory/README.md`
* `packages/parser-expression/README.md`
* `packages/parser-mongo/README.md`
* `packages/parser-simple/README.md`
* `packages/sql/README.md`
* `packages/typeorm/README.md`

</details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

Comment thread packages/docs/guide/building-queries.md
Comment thread packages/docs/guide/index.md Outdated
Comment thread packages/docs/guide/quick-start.md Outdated
Comment thread packages/docs/guide/recipes/frontend.md Outdated
Comment thread packages/docs/packages/typeorm.md Outdated
Comment thread README.md Outdated
- fix mangled condition-helpers link in root README
- make defineQuery intro example self-contained (literals instead of
  undeclared variables); use relation path realm.id instead of the
  undeclared realm_id field in filter examples
- thread realmId explicitly through the frontend recipe instead of
  reading an undeclared props object
- add language tags to bare fenced code blocks (MD040)
- use 'regex' consistently in prose (regexp stays for the DialectOptions
  callback and SQL REGEXP)

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
packages/docs/packages/sql.md (1)

41-41: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Include the filters adapter/visitor pair in the root adapter list.

This sentence lists only four pairs but then says the root Adapter bundles five. Add FiltersAdapter/FiltersVisitor so the architecture description matches the documented API.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/docs/packages/sql.md` at line 41, Update the adapter/visitor pair
list in the SQL documentation to include FiltersAdapter/FiltersVisitor, so it
lists all five pairs bundled by the root Adapter and remains consistent with the
documented API.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@packages/docs/packages/sql.md`:
- Line 41: Update the adapter/visitor pair list in the SQL documentation to
include FiltersAdapter/FiltersVisitor, so it lists all five pairs bundled by the
root Adapter and remains consistent with the documented API.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 93f81237-07f1-4166-8a36-23daefa81963

📥 Commits

Reviewing files that changed from the base of the PR and between 2a203f8 and 00d3649.

📒 Files selected for processing (14)
  • README.md
  • packages/docs/guide/building-queries.md
  • packages/docs/guide/errors.md
  • packages/docs/guide/fields.md
  • packages/docs/guide/filters.md
  • packages/docs/guide/index.md
  • packages/docs/guide/pagination.md
  • packages/docs/guide/quick-start.md
  • packages/docs/guide/recipes/express-typeorm.md
  • packages/docs/guide/recipes/frontend.md
  • packages/docs/guide/relations.md
  • packages/docs/guide/sort.md
  • packages/docs/packages/sql.md
  • packages/docs/packages/typeorm.md
🚧 Files skipped from review as they are similar to previous changes (13)
  • packages/docs/guide/pagination.md
  • packages/docs/guide/recipes/express-typeorm.md
  • packages/docs/guide/quick-start.md
  • packages/docs/guide/sort.md
  • packages/docs/guide/index.md
  • packages/docs/guide/building-queries.md
  • packages/docs/packages/typeorm.md
  • packages/docs/guide/recipes/frontend.md
  • packages/docs/guide/relations.md
  • packages/docs/guide/errors.md
  • packages/docs/guide/fields.md
  • README.md
  • packages/docs/guide/filters.md

@tada5hi
tada5hi merged commit 1bea2df into master Jul 13, 2026
7 checks passed
@tada5hi
tada5hi deleted the docs/redesign branch July 27, 2026 07:52
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.

2 participants