Skip to content

Reorganize Strapi/Redis/Medusa/Algolia documentation#473

Merged
marcinkrasowski merged 16 commits intomainfrom
feature/docs-improvements
Jan 7, 2026
Merged

Reorganize Strapi/Redis/Medusa/Algolia documentation#473
marcinkrasowski merged 16 commits intomainfrom
feature/docs-improvements

Conversation

@tomaszpacior
Copy link
Copy Markdown
Contributor

@tomaszpacior tomaszpacior commented Dec 5, 2025

What does this PR do?

  • update README,
  • update docs - theming and integrations

Summary by CodeRabbit

  • New Features

    • Pre-built UI Blocks (25+ self-contained blocks)
    • New/expanded integrations: Redis cache, SurveyJS forms, Medusa.js commerce, Algolia search, Zendesk tickets
    • CMS-driven theming support
  • Documentation

    • New setup, features, and usage guides for Blocks, Redis, SurveyJS, Medusa.js, Algolia, Zendesk
    • Expanded project-structure and theming docs
  • Updates

    • Contentful and Zendesk marked available; Mocked development data added
    • Responsive button layout and improved Markdown/table styling; updated starter/navigation links

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Dec 5, 2025

Walkthrough

Reorganizes docs into modular integration pages (overview/features/how-to-setup/usage), adds new docs for Redis, Strapi, Medusa.js, SurveyJS, Algolia, and Zendesk, refactors theming docs, updates README with Pre-built Blocks and package list changes, and adjusts several docs components, pages, and CSS.

Changes

Cohort / File(s) Summary
Docs README & Project structure
README.md
Adds "Pre-built Blocks" doc text, expands project package list and updates integrations table and minor copy edits.
Redis Cache Integration
apps/docs/docs/integrations/cache/redis/_category_.json, .../overview.md, .../features.md, .../how-to-setup.md, .../usage.md, (removed) apps/docs/docs/integrations/cache/redis.md
Replaces single redis.md with modular category + overview/features/how-to-setup/usage pages.
Algolia Search Integration
apps/docs/docs/integrations/search/algolia/_category_.json, .../overview.md, .../features.md, .../how-to-setup.md, .../usage.md, (removed) .../algolia.md
Adds category and split overview/features/how-to-setup/usage; removed monolithic doc and updated links to /overview.
Medusa.js Commerce
apps/docs/docs/integrations/commerce/medusa-js/_category_.json, .../overview.md, .../features.md, (removed) .../medusa-js.md
Introduces category, overview and features pages; removes legacy medusa-js.md.
SurveyJS Forms
apps/docs/docs/integrations/forms/surveyjs/_category_.json, .../overview.md, .../features.md, .../how-to-setup.md, .../usage.md, (removed) .../surveyjs.md
Adds modular SurveyJS docs and removes previous single-file doc.
Strapi CMS
apps/docs/docs/integrations/cms/strapi/*, (removed) .../getting-started.md
Adds blocks/features/graphql/how-to-setup/overview; removes Getting Started; updates sidebar positions.
Contentful CMS
apps/docs/docs/integrations/cms/contentful/*
Reworks blocks and features docs, updates sidebar positions, expands overview and adds setup guide; trims GraphQL type-safety section.
Zendesk Tickets
apps/docs/docs/integrations/tickets/zendesk/overview.md, .../features.md, .../how-to-setup.md, .../usage.md
Splits and expands Zendesk docs into overview/features/how-to-setup/usage with detailed API/behavior notes.
Theming / UI Library
apps/docs/docs/main-components/ui-library/theming/_category_.json, theming/index.md, theming/css-themes.md, theming/cms-configuration.md, (removed) theming.md
Reorganizes theming into index + CSS spec + CMS configuration pages; updates UI library links.
Docs Components & Pages
apps/docs/src/components/HeroBannerSection/index.tsx, apps/docs/src/components/StarterInfoSection/index.tsx, apps/docs/src/pages/product/integrations.tsx, apps/docs/src/pages/product/starters.tsx, apps/docs/src/pages/partners/index.tsx, apps/docs/src/components/HomepageStartersSection/index.tsx
UI tweaks: responsive button classes, image transform origin; StarterInfoSection prop/signature changed from linksmainLink/secondaryLink/otherLinks; updated starter/integration link targets and fragment hrefs.
Docs CSS & Styling
apps/docs/src/css/custom.css
Adds Markdown/table styles, adjusts dropdown chevron sizing and transition.
Docusaurus metadata & categories
apps/docs/docs/**/_category_.json, various sidebar_position updates
Adds/updates category JSON files and sidebar positions for multiple integration sections.
Removed monolithic docs
multiple previous single-file docs under apps/docs/docs/integrations/*/*.md
Several older monolithic integration docs removed and replaced by modular sets.
ESLint config
apps/docs/eslint.config.mjs
Adds ESM ESLint config that re-exports shared UI ESLint config.

Sequence Diagram(s)

(Skipped — changes are primarily documentation and small UI prop/layout updates; no new multi-component runtime control flow introduced.)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • marcinkrasowski

Poem

🐰 I hopped through files with a cheerful twitch,

Split docs, moved themes, and fixed a button stitch.
Links now point clean, blocks lined in a row,
I nibbled old pages and watched new guides grow.
Hooray — the docs now sing and softly glow!

🚥 Pre-merge checks | ✅ 1 | ❌ 2
❌ Failed checks (2 warnings)
Check name Status Explanation Resolution
Description check ⚠️ Warning The description is incomplete. It only provides two bullet points ('update README' and 'update docs - theming and integrations') without following the required template structure (What does this PR do, Related Ticket(s), Key Changes, How to test, Media). Required sections are missing or minimally filled. Expand the PR description to include all template sections: detailed explanation of what was changed and why, related tickets, comprehensive key changes with side effects analysis, testing steps, and media if applicable.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (1 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main change: reorganizing documentation for multiple integrations (Strapi, Redis, Medusa, Algolia) and theming. It is specific, concise, and clearly communicates the primary purpose of the changeset.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

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.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

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 (12)
apps/docs/src/css/custom.css (1)

1441-1517: Table styling implementation looks solid.

The comprehensive markdown table styling adds proper visual hierarchy with header styling, hover effects, rounded corners, and consistent padding. The use of border-collapse: separate with border-spacing: 0 and overflow: hidden is a standard approach for achieving border-radius on tables.

Minor note: There's a slight inconsistency in cell border opacity (0.15 on line 1455 vs. 0.1 on lines 1505–1506), which may be intentional for visual differentiation but could be documented or unified for clarity.

apps/docs/docs/integrations/cms/strapi/how-to-setup.md (1)

125-127: Consider more concise phrasing.

The phrase "in order to" on Line 126 can be shortened to "to" for improved readability: "This command requires that the CMS_STRAPI_BASE_URL environment variable is set to retrieve..."

This is a minor style improvement and not blocking.

apps/docs/docs/integrations/cms/strapi/graphql.md (1)

21-23: Consider more concise phrasing.

The phrase "in order to" on Line 22 can be shortened to "to" for improved readability: "This command requires that the CMS_STRAPI_BASE_URL environment variable is set to retrieve the GraphQL schema..."

This is a minor style improvement for consistency with other docs and not blocking.

apps/docs/docs/integrations/tickets/zendesk/features.md (1)

69-78: Avoid duplicating the “Data Normalization” section

You currently describe data normalization twice: a brief list under ### 3. Data Normalization and then a full ## Data Normalization section with Field/Status/Topic details. Consider either removing the earlier brief bullets or renaming it (e.g., “Data Normalization overview”) so there’s a single, clearly structured normalization section.

Also applies to: 98-148

apps/docs/docs/integrations/tickets/zendesk/usage.md (2)

156-160: Tighten fenced code formatting and minor wording

  • For the Authorization header code block, add a language (e.g. text) to satisfy MD040 and keep linting happy:
-```
+```text
 Authorization: Bearer {your_auth_token}

- In the “Filter by Type/Priority” section, consider “high‑priority tickets” instead of “high priority tickets” for slightly smoother phrasing.




Also applies to: 186-203

---

`263-271`: **Clarify “Ticket Not Found” HTTP behavior**

This section documents `200 OK` with an `undefined` body for not-found/unauthorized tickets. Since `undefined` isn’t valid JSON, it would help to either (a) show the actual serialized response shape (`null`, empty object, etc.) or (b) explicitly note that “undefined” refers to the server-side return value, while the HTTP response is still valid JSON. Otherwise API consumers may be unsure what to expect on the wire.

</blockquote></details>
<details>
<summary>apps/docs/docs/integrations/tickets/zendesk/how-to-setup.md (2)</summary><blockquote>

`7-7`: **Fix hyphenation in user-facing documentation.**

Use "Open Self-Service" instead of "Open Self Service" for consistency with proper compound adjective formatting.


Apply this change:
```diff
-This guide will walk you through setting up the Zendesk integration in your Open Self Service application.
+This guide will walk you through setting up the Zendesk integration in your Open Self-Service application.

Note: This same hyphenation issue appears in the overview.md file (line 7, 25) and in the Algolia how-to-setup.md file (line 7).


103-110: Module dependencies section is clear but could be slightly more specific.

The section correctly identifies that the Users module is required, but consider clarifying whether it must be configured before or as part of the Zendesk integration setup, and whether there are any specific configuration requirements beyond "properly set up."

apps/docs/docs/integrations/tickets/zendesk/overview.md (1)

7-7: Fix hyphenation in compound adjectives.

Two instances of "Open Self Service" should use hyphenation: "Open Self-Service".

Apply these changes:

-This integration provides the integration with [Zendesk Ticketing module](https://developer.zendesk.com/api-reference/ticketing/introduction/), allowing users to view and manage their support tickets within your application.
+This integration provides the integration with [Zendesk Ticketing module](https://developer.zendesk.com/api-reference/ticketing/introduction/), allowing users to view and manage their support tickets within your Open Self-Service application.

And:

-This integration connects your Open Self Service application with Zendesk, enabling users to view and manage their support tickets directly within your application.
+This integration connects your Open Self-Service application with Zendesk, enabling users to view and manage their support tickets directly within your application.

Also applies to: 25-25

apps/docs/docs/integrations/search/algolia/how-to-setup.md (1)

7-7: Fix hyphenation in user-facing documentation (same issue as other integration docs).

Use "Open Self-Service" instead of "Open Self Service" for consistency.

Apply this change:

-This guide will walk you through setting up the Algolia integration in your Open Self Service application.
+This guide will walk you through setting up the Algolia integration in your Open Self-Service application.
apps/docs/src/pages/product/starters.tsx (1)

174-184: Customer starter links look good; consider tab behavior for internal Docs

The customer starter follows the same structured link pattern and looks consistent. If you don’t explicitly want internal docs (/docs/app-starters/o2s/overview) to open in a new tab, you could drop target: '_blank' for that one (and the corresponding DXP docs link) to keep navigation more standard for internal routes.

apps/docs/src/components/StarterInfoSection/index.tsx (1)

53-79: CTA/CLI layout is clear; consider tightening spacing on wider screens

The grouping of CopyCommandButton with primary/secondary CTAs reads well. If you want to avoid extra vertical spacing between buttons on sm+ screens, you could override the vertical spacing there:

-                        <div className={clsx('sm:flex gap-2 space-y-4 w-full')}>
+                        <div className={clsx('sm:flex gap-2 space-y-4 sm:space-y-0 w-full')}>
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2032f12 and 67550e5.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (52)
  • README.md (2 hunks)
  • apps/docs/docs/integrations/cache/redis.md (0 hunks)
  • apps/docs/docs/integrations/cache/redis/_category_.json (1 hunks)
  • apps/docs/docs/integrations/cache/redis/features.md (1 hunks)
  • apps/docs/docs/integrations/cache/redis/how-to-setup.md (1 hunks)
  • apps/docs/docs/integrations/cache/redis/overview.md (1 hunks)
  • apps/docs/docs/integrations/cache/redis/usage.md (1 hunks)
  • apps/docs/docs/integrations/cms/contentful/blocks.md (1 hunks)
  • apps/docs/docs/integrations/cms/contentful/content-model.md (1 hunks)
  • apps/docs/docs/integrations/cms/contentful/features.md (9 hunks)
  • apps/docs/docs/integrations/cms/contentful/graphql.md (0 hunks)
  • apps/docs/docs/integrations/cms/contentful/how-to-setup.md (1 hunks)
  • apps/docs/docs/integrations/cms/contentful/overview.md (1 hunks)
  • apps/docs/docs/integrations/cms/strapi/blocks.md (1 hunks)
  • apps/docs/docs/integrations/cms/strapi/content-model.md (1 hunks)
  • apps/docs/docs/integrations/cms/strapi/features.md (1 hunks)
  • apps/docs/docs/integrations/cms/strapi/getting-started.md (0 hunks)
  • apps/docs/docs/integrations/cms/strapi/graphql.md (1 hunks)
  • apps/docs/docs/integrations/cms/strapi/how-to-setup.md (1 hunks)
  • apps/docs/docs/integrations/cms/strapi/overview.md (1 hunks)
  • apps/docs/docs/integrations/commerce/medusa-js.md (0 hunks)
  • apps/docs/docs/integrations/commerce/medusa-js/_category_.json (1 hunks)
  • apps/docs/docs/integrations/commerce/medusa-js/features.md (1 hunks)
  • apps/docs/docs/integrations/commerce/medusa-js/overview.md (1 hunks)
  • apps/docs/docs/integrations/forms/surveyjs.md (0 hunks)
  • apps/docs/docs/integrations/forms/surveyjs/_category_.json (1 hunks)
  • apps/docs/docs/integrations/forms/surveyjs/features.md (1 hunks)
  • apps/docs/docs/integrations/forms/surveyjs/how-to-setup.md (1 hunks)
  • apps/docs/docs/integrations/forms/surveyjs/overview.md (1 hunks)
  • apps/docs/docs/integrations/forms/surveyjs/usage.md (1 hunks)
  • apps/docs/docs/integrations/overview.md (1 hunks)
  • apps/docs/docs/integrations/search/algolia.md (0 hunks)
  • apps/docs/docs/integrations/search/algolia/_category_.json (1 hunks)
  • apps/docs/docs/integrations/search/algolia/features.md (1 hunks)
  • apps/docs/docs/integrations/search/algolia/how-to-setup.md (1 hunks)
  • apps/docs/docs/integrations/search/algolia/overview.md (1 hunks)
  • apps/docs/docs/integrations/search/algolia/usage.md (1 hunks)
  • apps/docs/docs/integrations/tickets/zendesk/features.md (1 hunks)
  • apps/docs/docs/integrations/tickets/zendesk/how-to-setup.md (1 hunks)
  • apps/docs/docs/integrations/tickets/zendesk/overview.md (1 hunks)
  • apps/docs/docs/integrations/tickets/zendesk/usage.md (1 hunks)
  • apps/docs/docs/main-components/ui-library/index.md (1 hunks)
  • apps/docs/docs/main-components/ui-library/theming.md (0 hunks)
  • apps/docs/docs/main-components/ui-library/theming/_category_.json (1 hunks)
  • apps/docs/docs/main-components/ui-library/theming/cms-configuration.md (1 hunks)
  • apps/docs/docs/main-components/ui-library/theming/css-themes.md (1 hunks)
  • apps/docs/docs/main-components/ui-library/theming/index.md (1 hunks)
  • apps/docs/src/components/HeroBannerSection/index.tsx (4 hunks)
  • apps/docs/src/components/StarterInfoSection/index.tsx (4 hunks)
  • apps/docs/src/css/custom.css (1 hunks)
  • apps/docs/src/pages/product/integrations.tsx (1 hunks)
  • apps/docs/src/pages/product/starters.tsx (2 hunks)
💤 Files with no reviewable changes (7)
  • apps/docs/docs/integrations/commerce/medusa-js.md
  • apps/docs/docs/integrations/forms/surveyjs.md
  • apps/docs/docs/integrations/cms/strapi/getting-started.md
  • apps/docs/docs/main-components/ui-library/theming.md
  • apps/docs/docs/integrations/cms/contentful/graphql.md
  • apps/docs/docs/integrations/cache/redis.md
  • apps/docs/docs/integrations/search/algolia.md
🧰 Additional context used
🧠 Learnings (4)
📚 Learning: 2025-12-03T12:34:20.707Z
Learnt from: marcinkrasowski
Repo: o2sdev/openselfservice PR: 419
File: apps/frontend/package.json:52-52
Timestamp: 2025-12-03T12:34:20.707Z
Learning: In the openselfservice repository, the application does not use Next.js cache components (use cache/cacheComponents), so next-intl compatibility limitations related to those experimental features are not a concern.

Applied to files:

  • apps/docs/docs/integrations/cache/redis/features.md
  • apps/docs/docs/integrations/cms/contentful/overview.md
📚 Learning: 2025-12-03T14:01:47.549Z
Learnt from: marcinkrasowski
Repo: o2sdev/openselfservice PR: 419
File: packages/blocks/quick-links/package.json:51-51
Timestamp: 2025-12-03T14:01:47.549Z
Learning: In the openselfservice repository, next-intl 4.1.0 (and the version ^4.1.0 used in peerDependencies) works correctly with Next.js 16, despite general community concerns about partial compatibility.

Applied to files:

  • apps/docs/docs/integrations/cms/contentful/overview.md
📚 Learning: 2025-12-03T12:34:20.707Z
Learnt from: marcinkrasowski
Repo: o2sdev/openselfservice PR: 419
File: apps/frontend/package.json:52-52
Timestamp: 2025-12-03T12:34:20.707Z
Learning: In the openselfservice repository, next-auth v5.0.0-beta.30 supports Next.js 16 through its peerDependencies range: "^14.0.0-0 || ^15.0.0 || ^16.0.0".

Applied to files:

  • apps/docs/docs/integrations/cms/contentful/overview.md
📚 Learning: 2025-11-28T14:07:04.474Z
Learnt from: marcinkrasowski
Repo: o2sdev/openselfservice PR: 411
File: packages/blocks/product-list/src/frontend/ProductList.client.stories.tsx:15-18
Timestamp: 2025-11-28T14:07:04.474Z
Learning: Mock JWT tokens with placeholder data (e.g., Jane Doe, Acme Corporation) used in Storybook story files (.stories.tsx) for demo/test purposes are acceptable and do not need to be replaced with non-JWT placeholders.

Applied to files:

  • apps/docs/docs/integrations/cms/contentful/blocks.md
🧬 Code graph analysis (1)
apps/docs/src/components/StarterInfoSection/index.tsx (1)
apps/docs/src/components/CopyCommandButton/index.tsx (1)
  • CopyCommandButton (11-45)
🪛 LanguageTool
apps/docs/docs/integrations/search/algolia/usage.md

[style] ~327-~327: This phrase is redundant. Consider writing “details”.
Context: ... Solution: Check the error logs for specific details about the API error. ## Best practices...

(SPECIFIC_DETAILS)

apps/docs/docs/integrations/cms/strapi/how-to-setup.md

[grammar] ~97-~97: Use a hyphen to join words.
Context: ...s that are compatible with the Open Self Service framework, such as: - Page conte...

(QB_NEW_EN_HYPHEN)


[style] ~126-~126: Consider a more concise word here.
Context: ...I_BASE_URL` environment variable is set in order to retrieve the GraphQL schema from Strapi...

(IN_ORDER_TO_PREMIUM)

apps/docs/docs/integrations/search/algolia/how-to-setup.md

[grammar] ~7-~7: Use a hyphen to join words.
Context: ...he Algolia integration in your Open Self Service application. ## Install The fi...

(QB_NEW_EN_HYPHEN)

apps/docs/docs/integrations/tickets/zendesk/how-to-setup.md

[grammar] ~7-~7: Use a hyphen to join words.
Context: ...he Zendesk integration in your Open Self Service application. ## Install The fi...

(QB_NEW_EN_HYPHEN)

apps/docs/docs/integrations/forms/surveyjs/how-to-setup.md

[style] ~87-~87: To form a complete sentence, be sure to include a subject or ‘there’.
Context: ...of roles required to submit the survey. Can be empty array [] for public surveys ...

(MISSING_IT_THERE)

apps/docs/docs/integrations/cms/strapi/graphql.md

[style] ~22-~22: Consider a more concise word here.
Context: ...I_BASE_URL` environment variable is set in order to retrieve the GraphQL schema from Strapi...

(IN_ORDER_TO_PREMIUM)

apps/docs/docs/integrations/tickets/zendesk/usage.md

[grammar] ~200-~200: Use a hyphen to join words.
Context: ...` ### Filter by Type/Priority Get high priority tickets: ```bash GET /tickets?...

(QB_NEW_EN_HYPHEN)

apps/docs/docs/integrations/cms/contentful/how-to-setup.md

[grammar] ~101-~101: Use a hyphen to join words.
Context: ...s that are compatible with the Open Self Service framework, such as: - Page conte...

(QB_NEW_EN_HYPHEN)

apps/docs/docs/integrations/tickets/zendesk/overview.md

[grammar] ~25-~25: Use a hyphen to join words.
Context: ...This integration connects your Open Self Service application with Zendesk, enabli...

(QB_NEW_EN_HYPHEN)

🪛 markdownlint-cli2 (0.18.1)
apps/docs/docs/integrations/cache/redis/features.md

46-46: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

apps/docs/docs/integrations/tickets/zendesk/usage.md

158-158: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

apps/docs/docs/integrations/cache/redis/how-to-setup.md

106-106: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

apps/docs/docs/integrations/commerce/medusa-js/overview.md

121-121: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: deploy-preview
🔇 Additional comments (70)
apps/docs/src/css/custom.css (1)

1481-1489: Verify the nearly-invisible table row border at line 1483.

The border-bottom: 1px solid rgba(255, 255, 255, 0.01) uses 0.01 opacity, which is essentially imperceptible. This may be unintentional or a fallback that serves no visual purpose. Consider either removing it or increasing the opacity to match the rest of the table borders (e.g., 0.15).

apps/docs/docs/integrations/commerce/medusa-js/overview.md (1)

13-73: Well-structured installation and configuration documentation.

The installation, configuration, and environment setup sections are clear and comprehensive. The step-by-step guidance with code examples makes it straightforward for developers to implement the integration. The references to related documentation and external resources are helpful.

apps/docs/docs/integrations/commerce/medusa-js/_category_.json (1)

1-9: Category descriptor is well-formed.

The JSON structure correctly configures the Medusa.js documentation category with appropriate label and positioning. The link properly references the overview documentation.

apps/docs/docs/integrations/commerce/medusa-js/features.md (2)

11-24: Comprehensive feature matrix with clear status indicators.

The feature overview table effectively communicates what is supported and what is not, with helpful notes linking to plugin requirements and detailed sections. The explicit marking of "Purchase/Activation" as not implemented sets proper expectations.


28-156: Detailed feature documentation is well-organized and thorough.

Each feature section provides sufficient context for developers to understand capabilities, use cases, and requirements (including plugin dependencies). The structure with descriptive headings, bullet points, and cross-references makes navigation easy. Links to external resources and the plugin repository are appropriate and helpful.

apps/docs/docs/integrations/cache/redis/_category_.json (1)

1-8: Proper Docusaurus category configuration.

The category structure correctly defines the Redis integration category with appropriate positioning and linking to the overview document. The configuration follows Docusaurus standards.

apps/docs/docs/integrations/cache/redis/overview.md (1)

1-36: Well-structured overview with clear navigation.

The overview document effectively introduces the Redis integration, provides a comprehensive environment variables reference, and establishes clear navigation paths to related documentation sections. The cross-references and quick-start guidance set up the user journey well.

apps/docs/docs/integrations/cache/redis/how-to-setup.md (1)

1-123: Comprehensive setup guide with strong step-by-step structure.

The setup documentation covers installation, multiple deployment scenarios (Docker, local, production), configuration steps, environment variable setup with recommendations, and verification/troubleshooting. The guide clearly maps which files to update and provides context for why each change is needed.

apps/docs/docs/integrations/cache/redis/usage.md (1)

1-108: Excellent usage documentation with comprehensive examples.

The usage guide progresses logically from basic injection through common patterns (cache-aside), specialized approaches (RxJS for CMS), key naming conventions, serialization techniques, invalidation strategies, and debugging. Code examples are clear, properly labeled, and demonstrate both simple and advanced scenarios including edge cases like circular references.

apps/docs/docs/integrations/cache/redis/features.md (1)

1-61: Clear feature documentation with transparent limitations.

The features document effectively communicates capabilities via a status table, provides the interface contract, explains operational behaviors (TTL management, connection handling), documents CMS integration patterns, and honestly lists limitations. This transparency helps users make informed decisions about the integration.

apps/docs/docs/integrations/cms/contentful/content-model.md (1)

2-2: Sidebar position update aligns with documentation reorganization.

The metadata change reflects the broader documentation restructuring for Contentful CMS integration. Content and formatting are correct.

apps/docs/docs/integrations/cms/contentful/overview.md (2)

7-16: Clear navigation structure with helpful cross-references.

The "In this section" guide provides excellent entry points to related documentation. Cross-references align well with companion files (how-to-setup, features, content-model, graphql, live-preview).


26-42: Environment variables table is comprehensive and user-friendly.

Good organization with clear descriptions of required vs. optional variables and guidance on obtaining values from Contentful settings.

apps/docs/docs/integrations/cms/contentful/how-to-setup.md (3)

9-19: Clear installation instructions with workspace scope.

The npm command properly specifies workspace dependencies, ensuring all necessary packages are installed in the correct locations.


21-73: Configuration section uses effective before/after pattern.

Code examples are complete, properly formatted, and show exactly what needs to change. Step numbering and explanations make the process clear for users.


97-110: Content model import section provides helpful context.

Good balance between explanation and external reference; users understand what they're importing and why before being directed to the resource repository.

apps/docs/docs/integrations/cms/contentful/blocks.md (3)

2-11: Improved documentation structure with clearer focus.

The sidebar position update (100 → 250) aligns with documentation reorganization. The revised heading ("Supported blocks") is more descriptive, and the new introductory bullets about Live Preview metadata provide essential context for developers.


17-43: Implementation status table is well-organized and comprehensive.

Clear grouping with implemented blocks listed first, followed by not-implemented blocks. New entries (quick-links, ticket-list) are properly categorized. Table format is easy to scan and maintain.


45-65: Mocked blocks section is expanded with helpful context.

The introductory sentence clarifies the purpose of mocked blocks for development/testing. Comprehensive list aids developers in understanding which blocks return static data.

apps/docs/docs/integrations/cms/contentful/features.md (3)

11-29: Feature overview table is well-organized with clear status indicators and anchor navigation.

Status indicators (✅, ⚠️, ❌) are intuitive. Anchor links enable both internal document navigation and external references. Notes column provides helpful context at a glance.


31-158: Detailed feature sections are comprehensive and well-structured.

Each section follows a consistent pattern with anchor IDs, clear descriptions, and relevant cross-references. Technical details are appropriately balanced with practical guidance. Partial support (Permissions/Roles) and unsupported features (Live updates) are clearly documented with explanations.


79-87: Themes/Layouts section clearly describes available templates.

Good explanation of OneColumnTemplate and TwoColumnTemplate with slot descriptions. Note about extensibility is helpful for future development.

apps/docs/src/components/HeroBannerSection/index.tsx (2)

102-102: Excellent responsive design improvement!

The change from w-1/2 to sm:w-1/2 ensures buttons are full-width on mobile devices (better tap targets and readability) while maintaining the side-by-side layout on larger screens. This aligns well with the parent container's sm:flex behavior and follows mobile-first responsive design principles.

Also applies to: 114-114, 129-129


151-151: Good cleanup of redundant transform-origin class.

Simplifying to just origin-center removes the redundancy and ensures consistent centered scaling behavior for the hero image.

apps/docs/docs/integrations/forms/surveyjs/overview.md (1)

1-59: Well-structured overview with clear navigation and architecture explanation.

The documentation effectively introduces the SurveyJS integration, provides clear navigation to related guides, and explains the modular structure. The installation command and environment variable documentation are concise and actionable.

apps/docs/docs/integrations/forms/surveyjs/usage.md (1)

1-222: Comprehensive and well-organized usage guide with clear patterns and examples.

The document effectively covers three usage patterns (CMS block, direct component, and service injection), provides complete TypeScript examples, documents component props clearly, and includes a helpful sequence diagram showing the complete data flow. Best practices are practical and well-aligned with the architecture.

apps/docs/docs/integrations/forms/surveyjs/features.md (1)

1-154: Clear and comprehensive feature documentation with good balance of detail.

The feature overview table provides quick reference, and each feature section contains helpful context about capabilities, implementations, and integrations. The descriptions align well with the usage patterns documented in usage.md.

apps/docs/docs/integrations/forms/surveyjs/_category_.json (1)

1-8: Correct category configuration linking to overview.

The JSON structure is valid, positioning is consistent with overview.md (position 100), and the doc link correctly references the overview entry point.

apps/docs/docs/integrations/forms/surveyjs/how-to-setup.md (2)

1-124: Well-organized setup guide with clear, actionable steps.

The documentation effectively guides users through installation, environment configuration, module registration, CMS setup, and verification. The troubleshooting section is practical. Cross-reference to the Strapi resources repository is helpful for CMS schema details.


103-103: Verify external documentation link validity.

The reference to the Strapi resources repository (https://github.com/o2sdev/openselfservice-resources) should be verified to ensure it remains current and accessible.

apps/docs/docs/main-components/ui-library/theming/_category_.json (1)

1-8: Category configuration is well-formed.

The JSON structure follows the expected pattern for documentation categories. Position 200 provides reasonable placement in the navigation hierarchy.

apps/docs/docs/main-components/ui-library/index.md (1)

10-12: Navigation structure and description update are appropriate.

The link path correctly changes from the flat file (./theming.md) to the new directory structure (./theming/), and the description accurately reflects the expanded scope with CMS configuration and custom theming guidance.

apps/docs/docs/main-components/ui-library/theming/index.md (1)

1-35: Theming overview is well-structured and comprehensive.

The index properly introduces the theming system, explains application levels clearly, and provides helpful cross-references and a quick-start workflow. The documentation hierarchy makes sense.

apps/docs/docs/main-components/ui-library/theming/css-themes.md (2)

228-250: Excellent practical guidance on theme definition.

The theme definition section includes clear step-by-step instructions with code examples, and the tip linking to the shadcn/ui theme generator is helpful for developers new to theme creation.


40-40: No action needed – code reference syntax is supported.

The syntax 1:59:packages/ui/src/theme.css (and similar on line 183) is a standard Docusaurus v3.9.2 feature. The @docusaurus/preset-classic preset natively supports code block line range references using the format ```start-end:filepath, which will correctly embed and display the specified lines from the referenced files in the published documentation. Both referenced files exist at their correct paths.

apps/docs/docs/main-components/ui-library/theming/cms-configuration.md (1)

9-93: Clear and comprehensive CMS configuration documentation.

The content is well-organized with explicit instructions for Strapi users, clear explanation of the theme data structure, and important notes on naming conventions and theme hierarchy that prevent common configuration mistakes.

apps/docs/docs/integrations/cms/strapi/content-model.md (1)

2-2: LGTM!

Sidebar position adjustment aligns with the documentation restructuring, moving content-model down in the navigation hierarchy while features become the primary detailed reference.

apps/docs/docs/integrations/cms/strapi/how-to-setup.md (1)

136-136: Verify cross-reference to GraphQL documentation.

Line 136 links to ./graphql.md. Ensure this file exists and is correctly positioned in the documentation structure (per the PR's new documentation organization).

apps/docs/docs/integrations/cms/strapi/blocks.md (1)

1-84: LGTM!

Comprehensive block reference with clear implementation status, helpful examples, and structured documentation of the block pattern (fragments, mappers, services). The FAQ example provides a concrete guide for implementing new blocks.

apps/docs/docs/integrations/cms/strapi/features.md (1)

1-178: LGTM!

Comprehensive feature overview with clear status indicators, detailed descriptions, and appropriate documentation of unsupported features (Live Preview, Live Updates). Role mappings and cache integration are well-explained. Cross-references to GraphQL documentation are properly embedded.

apps/docs/docs/integrations/cms/strapi/graphql.md (1)

214-278: Excellent example usage lifecycle.

The complete workflow from query definition through caching in CmsService is well-documented and provides clear guidance for implementing new operations. Type generation and SDK usage patterns are concrete and realistic.

apps/docs/docs/integrations/cms/strapi/overview.md (2)

9-15: LGTM!

Excellent restructuring from a dense overview into a focused hub. The "In this section" navigation clearly guides users through the modular documentation. Cross-references to feature-specific guides (setup, features, blocks, content model, GraphQL) provide good organization.


39-40: External resource links are correct and accessible.

The GitHub repository links referenced in lines 39-40 of overview.md are valid and accessible:

  • https://github.com/o2sdev/openselfservice-resources/tree/main/packages/cms/strapi/o2s (HTTP 200)
  • https://github.com/o2sdev/openselfservice-resources/tree/main/packages/cms/strapi/dxp (HTTP 200)

The repository structure and paths are confirmed to exist in the o2sdev/openselfservice-resources repository. No changes required.

apps/docs/docs/integrations/search/algolia/_category_.json (1)

1-8: Algolia docs category configuration looks correct

Label, position, and link.id all align with the new integrations/search/algolia/overview entry, so this category should slot cleanly into the docs sidebar.

README.md (1)

16-16: Blocks + integrations documentation updates are coherent and consistent

The new “Pre-built Blocks” feature, expanded project structure (apps/docs and packages/*), dedicated “Blocks” section, and refreshed integrations table (Contentful/Zendesk/Mocked/Algolia statuses) read clearly and match the rest of the integration docs added in this PR.

Also applies to: 57-71, 78-85, 92-99

apps/docs/docs/integrations/overview.md (1)

27-27: Algolia link correctly updated to new overview path

Pointing the Algolia tile to /docs/integrations/search/algolia/overview matches the new Algolia docs structure and avoids the removed old path.

apps/docs/src/pages/product/integrations.tsx (1)

217-222: Product integrations page Algolia link is aligned with docs

The Algolia card now links to /docs/integrations/search/algolia/overview, matching the new Algolia docs entry and category config.

apps/docs/docs/integrations/search/algolia/overview.md (1)

5-49: Algolia overview page is clear and well-scoped

The overview gives a solid high-level description, links cleanly into setup/features/usage pages, and clearly states requirements and supported modules. This works well as the main entry point for the Algolia integration.

apps/docs/docs/integrations/search/algolia/usage.md (1)

5-356: Algolia usage documentation is comprehensive and consistent

Endpoint description, payload/response structures, SDK and frontend examples, error cases, and pagination guidance all line up and give enough detail for consumers to integrate against /search confidently.

apps/docs/docs/integrations/tickets/zendesk/how-to-setup.md (5)

15-17: Good structure and clear installation instructions.

The npm install command with workspace specification is correct and the explanation is clear. The command format matches the expected project structure for monorepo-based integrations.


27-53: Clear configuration section with helpful context.

The before/after code examples and complete file output make it easy for users to understand exactly what changes are needed. The step-by-step approach with verification guidance is well-structured.


63-79: Comprehensive environment variable documentation with security guidance.

The table format is clear, and the base64 encoding explanation with command-line examples is particularly helpful. The notes about token format and API URL structure provide essential context for users.


81-92: Well-organized credential retrieval steps with external links.

The step-by-step instructions for obtaining Zendesk credentials are clear, and the base64 encoding guidance with tools/command-line examples is practical. The link to official Zendesk documentation is helpful.


128-138: Troubleshooting table is comprehensive and covers key scenarios.

The table covers module not found, connection issues, authentication, environment variables, and the specific Users module dependency. The solutions are actionable and specific to the Zendesk integration.

apps/docs/docs/integrations/tickets/zendesk/overview.md (3)

9-13: Well-designed navigation structure for modular documentation.

The "In this section" links provide clear guidance to users about available resources. The descriptions (step-by-step guide, overview of features, examples and API reference) help users understand which page to visit for their specific needs.


33-40: Quick start section is concise and appropriately links to detailed setup.

The numbered steps are action-oriented and the reference to the detailed setup guide avoids over-complicating the overview page.


42-48: Requirements section is clear and specific.

The list of requirements (Zendesk account, API token, Node.js environment, Users module) provides essential context. The note about TypeScript types from Zendesk OpenAPI specification is a nice detail.

apps/docs/docs/integrations/search/algolia/how-to-setup.md (5)

15-19: Clear and correct installation instructions.

The npm install command with workspace specification is correct and well-explained.


70-74: Excellent security guidance on API key permissions.

The emphasis on using a search-only API key and avoiding admin keys is critical security practice. The formatting and multiple reminders (line 72, 93) ensure users understand this important requirement.


105-118: Helpful explanation of index setup with sorting behavior.

The detailed explanation of sorting index naming convention (articles_publishedAt_desc) and the note that separate indexes are needed for each sort configuration is specific and practical. Users understand upfront that this affects their Algolia dashboard setup.


135-145: Troubleshooting table covers integration-specific issues.

The troubleshooting covers package installation, connection issues, index configuration, API key permissions, and the integration import path. The solutions are actionable and specific.


146-153: Good next steps section with links to related documentation.

The section appropriately links to features and usage documentation and suggests practical next actions (configure indexes, implement search).

apps/docs/docs/integrations/search/algolia/features.md (6)

9-37: Excellent documentation of generic search method with clear use cases.

The method signature, explanation of what it does (including error handling for 404), and use cases make it clear when to use this method. The progression from signature → behavior → use cases is pedagogically sound.


60-156: Comprehensive query features documentation with examples and conversion details.

Each query type is well-explained with examples. The pagination section's conversion formula (page = Math.floor(offset / limit)) and default limit documentation are particularly helpful. The sorting section clearly explains the index name modification (articles_publishedAt_desc), which is a critical implementation detail.


158-177: Clear documentation of automatic features and error handling.

The explicit list of error scenarios (missing env vars, missing index name, 404 handling, other API errors) with their outcomes helps users understand the integration's behavior. Logging behavior documentation at debug level is appropriately detailed.


179-225: Detailed article data model mapping with clear notes on behavior.

The TypeScript type definition and the mapping table are well-organized. The note explaining that updatedAt is used for both createdAt and updatedAt fields, and that permissions, tags, and sections are initialized as empty arrays, prevents user confusion about data consistency.


227-235: Explicit documentation of limitations prevents user confusion.

Clearly stating which SearchPayload fields are not implemented (exists, notExists, filter) is important because it prevents users from assuming features are supported when they attempt to use them. This is good defensive documentation.


237-249: Response structure documentation with TypeScript example is clear.

The TypeScript type with inline comments explaining each field is helpful. The note about optional fields (page, nbPages, processingTimeMS) clarifies when these fields are present.

apps/docs/src/pages/product/starters.tsx (1)

50-60: Digital starter links refactor aligns with new API

mainLink, secondaryLink, and otherLinks are wired correctly to the new StarterInfoSectionProps shape, URLs match their labels (demo, Storybook, Docs, GitHub), and this should render clean, ordered CTAs.

apps/docs/src/components/StarterInfoSection/index.tsx (1)

21-45: New StarterInfoSectionProps API matches starters usage

The split into mainLink, optional secondaryLink, and otherLinks is clear and matches how customerPortalStarter and digitalPortalStarter are now defined. Destructuring in the component is in sync with the interface, so this should be a straightforward internal API upgrade.

Comment thread apps/docs/docs/integrations/cache/redis/features.md Outdated
Comment thread apps/docs/docs/integrations/cache/redis/how-to-setup.md
Comment thread apps/docs/docs/integrations/cms/contentful/how-to-setup.md Outdated
Comment thread apps/docs/docs/integrations/commerce/medusa-js/overview.md Outdated
Comment thread apps/docs/docs/integrations/forms/surveyjs/how-to-setup.md
Comment thread apps/docs/src/components/StarterInfoSection/index.tsx
@tomaszpacior tomaszpacior changed the title Feature/docs improvements Reorganize Strapi/Redis/Medusa/Algolia documentation Dec 8, 2025
Copy link
Copy Markdown
Collaborator

@marcinkrasowski marcinkrasowski left a comment

Choose a reason for hiding this comment

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

@tomaszpacior please run format/linter and fix issues so that the pipeline succeeds, there are several broken links in docusaurus currently, and some prettier warnings https://github.com/o2sdev/openselfservice/actions/runs/19967951483/job/57264755450?pr=473

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (2)
apps/docs/src/css/custom.css (1)

1442-1517: Overall: Well-structured table styling with one redundancy to clean up.

The added Markdown table styling is solid and uses the correct modern approach for rounded corners (border-collapse: separate + border-spacing: 0). The hover effects and visual hierarchy are well-considered for documentation readability.

One concern: lines 1509–1517 redundantly re-apply left/right borders and padding that are already set on all tbody td elements in lines 1503–1507. Consolidate these rules to reduce CSS bloat.

Apply this diff to eliminate the redundancy:

 .markdown table tbody td {
     padding: 0.75rem 1rem;
     border-left: 1px solid rgba(255, 255, 255, 0.15);
     border-right: 1px solid rgba(255, 255, 255, 0.15);
 }
-
-.markdown table tbody td:first-child {
-    border-left: 1px solid rgba(255, 255, 255, 0.15);
-    padding-left: 1rem;
-}
-
-.markdown table tbody td:last-child {
-    border-right: 1px solid rgba(255, 255, 255, 0.15);
-    padding-right: 1rem;
-}

The base .markdown table tbody td rule already applies these properties to all cells, including first and last children, so the :first-child and :last-child overrides are unnecessary.

apps/docs/docs/integrations/cache/redis/how-to-setup.md (1)

28-28: Consider pinning the Redis image to a specific version.

Using redis:latest in production environments can lead to unexpected behavior changes when new versions are released. Pin to a specific version (e.g., redis:7-alpine) for reproducibility and stability.

Apply this diff to pin the image version:

   redis:
-    image: redis:latest
+    image: redis:7-alpine
     ports:
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 67550e5 and b3166f8.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (12)
  • apps/docs/docs/app-starters/dxp/blocks.md (1 hunks)
  • apps/docs/docs/app-starters/o2s/blocks.md (1 hunks)
  • apps/docs/docs/integrations/cache/redis/features.md (1 hunks)
  • apps/docs/docs/integrations/cache/redis/how-to-setup.md (1 hunks)
  • apps/docs/docs/integrations/cms/contentful/how-to-setup.md (1 hunks)
  • apps/docs/docs/integrations/commerce/medusa-js/overview.md (1 hunks)
  • apps/docs/docs/integrations/forms/surveyjs/how-to-setup.md (1 hunks)
  • apps/docs/docs/main-components/overview.md (1 hunks)
  • apps/docs/docs/main-components/ui-library/essentials.md (1 hunks)
  • apps/docs/src/components/StarterInfoSection/index.tsx (4 hunks)
  • apps/docs/src/css/custom.css (1 hunks)
  • apps/docs/src/pages/product/integrations.tsx (4 hunks)
✅ Files skipped from review due to trivial changes (2)
  • apps/docs/docs/main-components/ui-library/essentials.md
  • apps/docs/docs/app-starters/dxp/blocks.md
🚧 Files skipped from review as they are similar to previous changes (5)
  • apps/docs/src/pages/product/integrations.tsx
  • apps/docs/docs/integrations/cache/redis/features.md
  • apps/docs/docs/integrations/commerce/medusa-js/overview.md
  • apps/docs/src/components/StarterInfoSection/index.tsx
  • apps/docs/docs/integrations/cms/contentful/how-to-setup.md
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: deploy-preview
🔇 Additional comments (7)
apps/docs/docs/integrations/forms/surveyjs/how-to-setup.md (1)

1-123: Well-structured integration setup documentation with clear, actionable guidance.

The documentation comprehensively covers the SurveyJS integration setup with logical flow from installation through verification and troubleshooting. The guide includes concrete code examples, environment configuration details, CMS field requirements with a practical JSON example, and a helpful troubleshooting table. The previous grammar issue noted on line 87 has been resolved.

apps/docs/docs/main-components/overview.md (1)

31-31: Link update correctly reflects theming documentation reorganization.

The link at line 31 has been properly updated from ./ui-library/theming.md to ./ui-library/theming/index.md to align with the directory-based structure. The new file exists at the target path, and no stray references to the old path remain in the codebase. This change is consistent with the documentation's navigation conventions.

apps/docs/docs/app-starters/o2s/blocks.md (1)

29-29: The link to ../../integrations/cms/strapi/how-to-setup.md is valid and resolves correctly. The target file exists at apps/docs/docs/integrations/cms/strapi/how-to-setup.md and the relative path properly references it from blocks.md. The documentation restructuring is complete and no broken links exist.

apps/docs/docs/integrations/cache/redis/how-to-setup.md (4)

106-108: ✓ Previous issue resolved: language specifier added.

The code block now correctly includes the log language specifier, addressing the earlier linting concern about missing language identifiers on fenced code blocks.


50-84: Configuration section is clear and well-structured.

The step-by-step approach with before/after examples, plus the note about AppConfig being auto-configured, makes the setup process straightforward. The integration points with the framework are clearly documented.


86-100: Environment variables and TTL guidance are well-documented.

The section clearly lists required environment variables and provides contextual TTL recommendations (short/medium/long with use cases), making it easy for developers to configure the cache appropriately for their needs.


117-123: Troubleshooting table covers essential scenarios.

The table addresses the three most common issues (connection, authentication, cache undefined) with actionable solutions. Consider expanding if you identify other frequent support questions from users.

Comment thread apps/docs/docs/integrations/cache/redis/how-to-setup.md
Comment thread apps/docs/docs/main-components/ui-library/theming/css-themes.md Outdated
Comment thread apps/docs/src/css/custom.css
Comment thread apps/docs/docs/integrations/commerce/medusa-js/overview.md Outdated
Comment thread apps/docs/docs/integrations/cache/redis/how-to-setup.md Outdated
Comment thread apps/docs/docs/integrations/cache/redis/how-to-setup.md
Comment thread apps/docs/docs/integrations/forms/surveyjs/features.md
Comment thread apps/docs/docs/integrations/forms/surveyjs/features.md Outdated
Copy link
Copy Markdown
Collaborator

@marcinkrasowski marcinkrasowski left a comment

Choose a reason for hiding this comment

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

a few changes

@michnowak michnowak self-assigned this Dec 19, 2025
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between b3166f8 and 312c7e3.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (1)
  • apps/docs/docs/main-components/ui-library/theming/css-themes.md
🧰 Additional context used
🪛 markdownlint-cli2 (0.18.1)
apps/docs/docs/main-components/ui-library/theming/css-themes.md

13-13: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Analyze (javascript-typescript)
🔇 Additional comments (1)
apps/docs/docs/main-components/ui-library/theming/css-themes.md (1)

40-45: Excellent addition of documentation references.

The "Learn More" info box now includes direct links to shadcn/ui and Tailwind CSS documentation, which directly addresses the prior feedback requesting references for CSS variable details. This is a valuable enhancement for developers exploring the theming system.

Comment thread apps/docs/docs/main-components/ui-library/theming/css-themes.md Outdated
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ae62af8 and f88cc23.

📒 Files selected for processing (2)
  • apps/docs/docs/integrations/cache/redis/how-to-setup.md
  • apps/docs/docs/integrations/forms/surveyjs/features.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • apps/docs/docs/integrations/cache/redis/how-to-setup.md
🧰 Additional context used
🪛 markdownlint-cli2 (0.18.1)
apps/docs/docs/integrations/forms/surveyjs/features.md

92-92: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


93-93: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


94-94: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


95-95: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


96-96: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


97-97: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)

🔇 Additional comments (2)
apps/docs/docs/integrations/forms/surveyjs/features.md (2)

11-24: Past review comments successfully addressed.

The overview table and Ticket System Integration feature both correctly mark the ticket system integration as a planned feature (status: 📋), addressing the earlier feedback to distinguish between implemented and planned features.


86-101: Past review comments successfully addressed.

The Form Submission section comprehensively expands on the earlier feedback. It clearly states the current target (SurveyJS backend service only) and details the extensible architecture supporting multiple destinations (Backend APIs, RabbitMQ, N8n, etc.) with CMS configuration capabilities. This directly addresses the request to explain extensibility and configurability.

Comment thread apps/docs/docs/integrations/forms/surveyjs/features.md
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (2)
apps/docs/src/pages/partners/index.tsx (1)

117-117: Consider fragment-only anchor for same-page navigation.

The absolute path /partners/#how-to-join works correctly, but a fragment-only anchor #how-to-join is typically preferred for same-page links since it avoids potential page reloads and more clearly indicates same-page navigation. However, if this change is for consistency with other navigation patterns across the docs, the current approach is fine.

♻️ Alternative with fragment-only anchor
                                    mainLink={{
                                        text: 'Apply to become a partner',
-                                        url: '/partners/#how-to-join',
+                                        url: '#how-to-join',
                                        iconRight: <ArrowDown className="*:stroke-current" />,
                                    }}
apps/docs/docs/integrations/cms/contentful/features.md (1)

145-151: Consolidate or clarify the relationship between Code Generation and Type Safety sections.

Both "Code Generation" (lines 145–147) and "Type Safety" (lines 149–151) describe generating TypeScript types from the GraphQL schema and reference the same documentation. Consider either:

  1. Merging these sections into a single "Code Generation & Type Safety" section, or
  2. Clearly differentiating them if they serve distinct purposes (e.g., Code Generation for SDK methods, Type Safety for compile-time validation).
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f88cc23 and 6fcfd64.

📒 Files selected for processing (8)
  • apps/docs/docs/integrations/cache/redis/how-to-setup.md
  • apps/docs/docs/integrations/cms/contentful/features.md
  • apps/docs/docs/main-components/ui-library/theming/cms-configuration.md
  • apps/docs/docs/main-components/ui-library/theming/css-themes.md
  • apps/docs/eslint.config.mjs
  • apps/docs/src/components/HomepageStartersSection/index.tsx
  • apps/docs/src/css/custom.css
  • apps/docs/src/pages/partners/index.tsx
🚧 Files skipped from review as they are similar to previous changes (1)
  • apps/docs/docs/integrations/cache/redis/how-to-setup.md
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-11-14T14:34:25.489Z
Learnt from: marcinkrasowski
Repo: o2sdev/openselfservice PR: 357
File: packages/blocks/ticket-summary/eslint.config.mjs:1-18
Timestamp: 2025-11-14T14:34:25.489Z
Learning: ESLint v9+ provides `defineConfig` as an export from 'eslint/config' module, which supports an `extends` array property in flat config objects for composing configurations.

Applied to files:

  • apps/docs/eslint.config.mjs
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: deploy-preview
🔇 Additional comments (12)
apps/docs/docs/integrations/cms/contentful/features.md (2)

73-77: No issues found. The Live Preview documentation file exists at the expected location, and the relative path reference in the link is correct.


1-30: No issues found. The sidebar_position: 200 is correctly aligned with related Contentful documentation files and follows a logical navigation hierarchy (overview.md: 100 → how-to-setup.md: 150 → features.md: 200 → blocks.md: 250 → content-model.md: 300 → graphql.md: 400 → live-preview.md: 500).

apps/docs/eslint.config.mjs (1)

1-4: LGTM! Clean shared config pattern.

The re-export pattern is clean and promotes consistency across workspaces. The @o2s/eslint-config package dependency is properly declared in apps/docs/package.json, and the ui export is correctly configured in the package.

apps/docs/src/components/HomepageStartersSection/index.tsx (1)

13-13: Anchor links are correctly configured.

The href values with trailing slashes before fragments (/product/starters/#customer-portal-starter and /product/starters/#digital-portal-starter) are valid and functional. The target page at apps/docs/src/pages/product/starters.tsx contains the corresponding section IDs (id="customer-portal-starter" and id="digital-portal-starter"), so the fragment identifiers resolve correctly.

apps/docs/src/css/custom.css (2)

559-566: LGTM! Minor UI refinements for the dropdown chevron.

The size reduction, explicit background-size: contain, and smoother transition timing are appropriate improvements for the dropdown interaction.


1442-1563: LGTM! Comprehensive table styling that addresses the horizontal scrolling issue.

This implementation correctly fixes the mobile horizontal scrolling problem mentioned in the previous review by using display: inline-block with overflow-x: auto on the table container while maintaining proper table semantics through explicit display: table-* properties on child elements. The addition of -webkit-overflow-scrolling: touch ensures smooth momentum scrolling on iOS devices.

The styling includes appropriate borders, hover states, rounded corners, and responsive behavior for an improved user experience.

apps/docs/docs/main-components/ui-library/theming/cms-configuration.md (3)

70-131: ✓ Contentful guide successfully added.

The Contentful section comprehensively parallels the Strapi structure (themes relation, mapping logic, code references) and directly addresses the prior review request to include Contentful theming guidance. However, note that this section only covers block-level theme assignment (lines 113-131), whereas the Strapi section covers both page and block assignment (lines 57-68).

Can you confirm whether Contentful intentionally does not support page-level theme assignment, or if that section should be added to match Strapi's coverage?


9-16: Documentation structure is clear and well-organized.

The Theme Data Structure section (lines 9-16) clearly establishes the naming requirement, and the Important Notes section (lines 133-156) reinforces it with practical examples. Theme hierarchy explanation (lines 154-156) is helpful for understanding inheritance behavior.

Also applies to: 133-156


45-45: All referenced file paths and line ranges are valid and accessible.

The Strapi mapper reference (line 45) and Contentful mapper references (lines 99-111) correctly point to existing files with valid line ranges:

  • packages/integrations/strapi-cms/src/modules/cms/mappers/cms.app-config.mapper.ts (36 lines total, lines 26-34 exist)
  • packages/integrations/contentful-cms/src/modules/cms/mappers/cms.app-config.mapper.ts (63 lines total, lines 51-61 exist)
  • packages/integrations/contentful-cms/src/modules/cms/mappers/cms.page.mapper.ts (531 lines total, lines 508-515 exist)

Verify that your documentation system properly renders the custom code-reference syntax (lineStart:lineEnd:filepath) used in the markdown.

apps/docs/docs/main-components/ui-library/theming/css-themes.md (3)

104-184: Excellent comprehensive coverage of CSS variables.

The Available CSS Variables section organizes variables into logical categories (Basic Colors, Interactive Colors, Form Colors, Navigation, Sidebar, Footer, Badge, Chart), making it easy for developers to find and understand variable purposes. Coverage appears complete and aligns with the default theme defined in the :root selector.


235-276: ✓ Clear guidance on defining new themes and cross-documentation linking.

The "Defining a New Theme" section (lines 235-257) provides a practical step-by-step approach and links to the shadcn/ui theme generator. The HSL Format explanation (lines 259-272) covers both modern (comma-less) and legacy syntax. Cross-linking with cms-configuration.md in Next Steps establishes good documentation flow.


190-231: The code reference 17:56:packages/ui/src/globals.css is valid and accurately reflects the Tailwind color variable mappings file. The line ranges correctly point to the color variable declarations shown in the documentation snippet.

@marcinkrasowski marcinkrasowski merged commit d1d11e8 into main Jan 7, 2026
7 checks passed
@marcinkrasowski marcinkrasowski deleted the feature/docs-improvements branch January 7, 2026 13:42
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.

3 participants