Conversation
Import the Getting started tab with overview, features catalog, 10 SDK quick starts, 4 framework guides, 4 instant-meilisearch guides, and 6 integration guides. Fix ~120 broken internal links from the import and expand features page to cover all Meilisearch capabilities. Entire-Checkpoint: 9c68757644a6
📝 WalkthroughWalkthroughThe PR reorganizes documentation by adding a new "Getting started" section, migrating and creating numerous MDX guides (SDKs, framework integrations, Instant-meilisearch, integrations, overview, and features), and updating navigation and internal link mappings to the new Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
📝 Coding Plan
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. Comment |
|
Is it expected that some guides can be found on 2 sections: 'Getting started' and 'Guides' sections? |
|
No you're right I should probably remove the ones on the guide section and add a redirect :) |
Entire-Checkpoint: 9c68757644a6
There was a problem hiding this comment.
Actionable comments posted: 17
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
getting_started/instant_meilisearch/vue.mdx (1)
117-117:⚠️ Potential issue | 🟡 MinorAdd missing space in heading.
"6.Start" should be "6. Start" for consistency with other numbered headings.
Proposed fix
-## 6.Start the app and search as you type +## 6. Start the app and search as you type🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@getting_started/instant_meilisearch/vue.mdx` at line 117, The heading "6.Start the app and search as you type" is missing a space after the period; update the heading text in getting_started/instant_meilisearch/vue.mdx from "6.Start the app and search as you type" to "6. Start the app and search as you type" so it matches the spacing style of other numbered headings.getting_started/frameworks/strapi.mdx (1)
63-65:⚠️ Potential issue | 🟡 MinorTypo in image alt text: "categorie's" should be "category's".
Proposed fix
- <img src="/assets/images/strapi-v4/strapi-add-category.png" alt="Strapi dashboard: create an entry form, arrow indicating the location of the categorie's location in the right side menu" /> + <img src="/assets/images/strapi-v4/strapi-add-category.png" alt="Strapi dashboard: create an entry form, arrow indicating the category's location in the right side menu" />🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@getting_started/frameworks/strapi.mdx` around lines 63 - 65, Update the img alt text that currently contains the typo "categorie's" to the correct "category's" in the <img> tag (the alt string beginning "Strapi dashboard: create an entry form, arrow indicating the location of the ... location in the right side menu"); locate the <img> element and replace "categorie's" with "category's" so the alt attribute reads correctly.
🧹 Nitpick comments (3)
getting_started/overview.mdx (1)
50-57: Consider using absolute paths for consistency.The card
hrefvalues use relative paths (getting_started/features,getting_started/sdks/javascript) while other links in this PR use leading slashes (/getting_started/overview). For consistency and to avoid potential path resolution issues, consider using absolute paths.Suggested fix
<CardGroup cols={2}> - <Card title="Explore features" icon="sparkles" href="getting_started/features"> + <Card title="Explore features" icon="sparkles" href="/getting_started/features"> Discover all Meilisearch capabilities </Card> - <Card title="Choose your SDK" icon="code" href="getting_started/sdks/javascript"> + <Card title="Choose your SDK" icon="code" href="/getting_started/sdks/javascript"> Get started with your preferred language </Card> </CardGroup>🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@getting_started/overview.mdx` around lines 50 - 57, The CardGroup/Card block uses relative hrefs ("getting_started/features", "getting_started/sdks/javascript"); update the Card components' href props to use absolute paths (prefix with a leading slash) to match the rest of the site and avoid resolution issues — e.g., change the href values on the Card elements in the CardGroup to "/getting_started/features" and "/getting_started/sdks/javascript".getting_started/instant_meilisearch/javascript.mdx (1)
100-118: Clarify thatprocess.envrequires a build tool.The "Using your own data" section shows
process.env.MEILISEARCH_URL, but this won't work in a plain HTML file like the quick example above. Users may expect to drop this into their HTML and have it work. Consider clarifying that this pattern requires a bundler (Vite, webpack) or showing the browser-compatible alternative.Suggested clarification
## Using your own data -The example above uses a public demo instance. To use your own Meilisearch instance: +The example above uses a public demo instance. To use your own Meilisearch instance with a bundler like Vite or webpack: ```javascript const { searchClient } = instantMeiliSearch( process.env.MEILISEARCH_URL, // Your instance URL process.env.MEILISEARCH_API_KEY // Your search API key );
+For plain HTML without a bundler, replace the values directly:
+
+```javascript
+const { searchClient } = instantMeiliSearch(
- 'https://your-instance.meilisearch.io',
- 'your_search_api_key'
+);
+```</details> <details> <summary>🤖 Prompt for AI Agents</summary>Verify each finding against the current code and only fix it if needed.
In
@getting_started/instant_meilisearch/javascript.mdxaround lines 100 - 118,
The snippet uses process.env.MEILISEARCH_URL and process.env.MEILISEARCH_API_KEY
which won’t work in a plain browser HTML file; update the copy around
instantMeiliSearch to explicitly state that process.env requires a build tool or
server-side environment (e.g., Vite/webpack/Node) and add a short
browser-compatible alternative that tells users to pass literal strings (or a
runtime-injected window/global variable) for the URL and API key instead of
process.env.</details> </blockquote></details> <details> <summary>getting_started/integrations/gatsby.mdx (1)</summary><blockquote> `186-213`: **Consider adding the install step for the search UI packages.** This section jumps straight into imports from `react-instantsearch` and `@meilisearch/instant-meilisearch`, but never installs them, so the example is not self-contained. A short npm/yarn snippet right before the code block would make it copy-pasteable. Based on learnings, "Documentation should be thorough, containing all information users need to use Meilisearch." <details> <summary>🤖 Prompt for AI Agents</summary>Verify each finding against the current code and only fix it if needed.
In
@getting_started/integrations/gatsby.mdxaround lines 186 - 213, Add an
npm/yarn install step for the UI and connector packages so the example is
copy-pasteable: mention installing react-instantsearch (or
react-instantsearch-dom vX if applicable) and@meilisearch/instant-meilisearch
before the code block (e.g., npm install react-instantsearch
@meilisearch/instant-meilisearchor the yarn equivalent). Ensure the install
snippet appears immediately above the example that imports InstantSearch,
SearchBox, Hits and instantMeiliSearch, and optionally note which package
provides instantMeiliSearch and which provides InstantSearch/SearchBox/Hits (to
make the dependencies clear).</details> </blockquote></details> </blockquote></details> <details> <summary>🤖 Prompt for all review comments with AI agents</summary>Verify each finding against the current code and only fix it if needed.
Inline comments:
In@getting_started/frameworks/laravel.mdx:
- Line 191: Replace the incorrect capitalization in the sentence "Of course, the
code is open-sourced on Github. 🎉"
by changing "Github" to the official product name "GitHub" so the link text
reads "GitHub. 🎉".- Line 186: Update the Multi-search link in the line containing
"Multi-search" so the URL points to
the correct multi-search endpoint
"/reference/api/search/perform-a-multi-search"; locate that exact markdown link
text in getting_started/frameworks/laravel.mdx and replace the href only,
leaving the link text unchanged.In
@getting_started/frameworks/symfony.mdx:
- Around line 196-203: The three Card components still link to the old
/products/... paths; update their hrefs to the new /learn/... namespace so
navigation matches the rest of the import. Locate the Card elements with titles
"Full-text search", "Filtering", and "AI-powered search" and change their href
values from "/products/full_text_search/overview" ->
"/learn/full_text_search/overview",
"/products/faceted_search/filter_search_results" ->
"/learn/faceted_search/filter_search_results", and
"/products/hybrid_search/getting_started" ->
"/learn/hybrid_search/getting_started".- Around line 11-14: Update the prerequisites to state "PHP 8.0 or higher" (the
code examples use PHP 8 features: attribute syntax like #[...] used in the
example classes and constructor property promotion in the constructor examples),
and do not attempt to downgrade the examples to 7.4; leave the examples as-is.
Also update the "next-step card" links at the bottom of the document to use the
/learn/ paths instead of /products/ for consistency with other framework guides
(replace any /products/... links in the next-step card block with the
corresponding /learn/... URLs).In
@getting_started/instant_meilisearch/docsearch.mdx:
- Around line 86-93: The docker example in docsearch.mdx sets
MEILISEARCH_HOST_URL and MEILISEARCH_API_KEY to literal quoted strings; update
the docker run snippet so the environment variables use placeholder tokens
<MEILISEARCH_URL> and <MASTER_KEY> instead of 'MEILISEARCH_URL'/'MASTER_KEY' for
MEILISEARCH_HOST_URL and MEILISEARCH_API_KEY, and add one short sentence below
the snippet clarifying that these placeholders must be replaced with the user’s
actual Meilisearch instance URL and API key before running the docs-scraper
command (referencing the docker run command and the
MEILISEARCH_HOST_URL/MEILISEARCH_API_KEY env names).- Around line 153-161: Replace all client-side examples that map apiKey to
MASTER_KEY with instructions to use a search-only key (e.g., the "Default Search
API Key" or a key named SEARCH_API_KEY) and update the explanatory text for the
hostUrl/apiKey/indexUid block to call out that apiKey must be a search-only key;
keep a clear note that MASTER_KEY is a server-side credential only (used in
backend code or deployment config), and ensure the config file example and the
warning text explicitly distinguish search-only keys from MASTER_KEY to prevent
accidental exposure in browser-shipped code.In
@getting_started/instant_meilisearch/react.mdx:
- Line 45: Update the broken glossary link for the InstantSearch docs by
replacing the incorrect path/getting_started/glossary/indexes#index-uidwith
the correct/learn/getting_started/indexes#index-uidin the Markdown that
mentions<InstantSearch>; apply the same replacement in the corresponding Vue
guide where the same link appears so both React and Vue guides point to the
correct glossary anchor.In
@getting_started/instant_meilisearch/vue.mdx:
- Line 69: Update the broken glossary link in the documentation line describing
the ais-instant-search widget: replace the incorrect URL
/getting_started/glossary/indexes#index-uidwith the correct path
/learn/getting_started/indexes#index-uidso the link to the "index-uid" anchor
resolves properly in the vue.mdx content mentioning the ais-instant-search
widget.In
@getting_started/integrations/meilisync.mdx:
- Around line 274-275: The "Full-text search" next-step Card currently links to
the old path "/products/full_text_search/overview"; update its href to the
current docs namespace used across the PR (e.g., change href on the Card with
title "Full-text search" and icon "magnifying-glass" to the equivalent
"/learn/..." path used elsewhere) so the internal link is not stale and follows
the new routing convention.In
@getting_started/integrations/postman.mdx:
- Around line 33-37: Update the alt text of the illustrative image where it
currently reads "Setting the 'URL' to http://localhost:7700/ and 'indexUID' to
indexUId in the Variables tab." — change the substring "indexUId" to "indexUID"
so the alt attribute exactly matches the rest of the docs; locate the <img ...
alt="..."> element in the postman example and correct the capitalization.In
@getting_started/sdks/dotnet.mdx:
- Around line 92-102: UpdateFilterableAttributesAsync returns a TaskInfo and
does not wait for the settings change to apply, so the subsequent call to
index.SearchAsync(...) may race and fail; fix it by capturing the
returned TaskInfo from UpdateFilterableAttributesAsync (e.g., var task = await
index.UpdateFilterableAttributesAsync(...)) and then calling await
index.WaitForTaskAsync(task.TaskUid) before calling index.SearchAsync, using the
existing WaitForTaskAsync method to ensure the filterable fields are applied.In
@getting_started/sdks/java.mdx:
- Around line 17-32: The Maven/Gradle install snippets are missing the Gson
dependency required by the examples that call new Gson().toJson(movies) and
import com.google.gson.Gson; add the Gson dependency (groupId
com.google.code.gson, artifactId gson, e.g., version 2.10.1) to the Maven
dependencies block and add the corresponding implementation line to the Gradle
snippet so the code compiles.In
@getting_started/sdks/javascript.mdx:
- Around line 71-80: The settings update is only enqueued by
updateFilterableAttributes and the subsequent search may run before it
completes; capture the returned EnqueuedTask from
client.index('movies').updateFilterableAttributes(...) and call await
client.waitForTask(task.taskUid) (using the same task variable) before invoking
client.index('movies').search(...) so the filterable attribute change has
finished applying.In
@getting_started/sdks/rust.mdx:
- Around line 18-23: Update the meilisearch-sdk dependency in the Cargo.toml
dependencies block: replace the existing meilisearch-sdk = "0.27" entry with
meilisearch-sdk = "0.32.0" so the getting_started Rust SDK example references
the latest stable release; ensure the change is made within the [dependencies]
section where meilisearch-sdk is declared.In
@getting_started/sdks/swift.mdx:
- Around line 100-112: The sample calls updateFilterableAttributes on index but
does not wait for the returned task to complete before running the filtered
search; capture the returned task from updateFilterableAttributes, wait for it
to finish successfully (e.g., poll the task status or call the SDK's
wait-for-task helper using the task id) and only then construct SearchParameters
and call index.search; also check the task succeeded before proceeding so you
don't get "attribute is not filterable" errors.- Around line 42-48: The Swift examples use ProcessInfo.processInfo.environment
but don't import the Foundation framework, causing compilation errors; add an
import Foundation at the top of the snippets that create the MeiliSearch client
(the block that defines client with MeiliSearch(...) and the similar block
around lines 117–124) so ProcessInfo is available before calling
ProcessInfo.processInfo.environment.- Around line 132-149: The example uses a top-level Task { } which may not run
to completion; replace the bare Task block with a proper async entry point
(e.g., define an@mainstruct Main with a static async main() throws and move
the current code into that method) so the awaited calls to client.index(...),
index.addDocuments(...), client.waitForTask(...), and index.search(...) reliably
execute; alternatively, keep the Task but ensure the process stays alive (e.g.,
call dispatchMain())—prefer the@mainasync main approach for minimal runnable
examples.
Outside diff comments:
In@getting_started/frameworks/strapi.mdx:
- Around line 63-65: Update the img alt text that currently contains the typo
"categorie's" to the correct "category's" in thetag (the alt string
beginning "Strapi dashboard: create an entry form, arrow indicating the location
of the ... location in the right side menu"); locate theelement and
replace "categorie's" with "category's" so the alt attribute reads correctly.In
@getting_started/instant_meilisearch/vue.mdx:
- Line 117: The heading "6.Start the app and search as you type" is missing a
space after the period; update the heading text in
getting_started/instant_meilisearch/vue.mdx from "6.Start the app and search as
you type" to "6. Start the app and search as you type" so it matches the spacing
style of other numbered headings.
Nitpick comments:
In@getting_started/instant_meilisearch/javascript.mdx:
- Around line 100-118: The snippet uses process.env.MEILISEARCH_URL and
process.env.MEILISEARCH_API_KEY which won’t work in a plain browser HTML file;
update the copy around instantMeiliSearch to explicitly state that process.env
requires a build tool or server-side environment (e.g., Vite/webpack/Node) and
add a short browser-compatible alternative that tells users to pass literal
strings (or a runtime-injected window/global variable) for the URL and API key
instead of process.env.In
@getting_started/integrations/gatsby.mdx:
- Around line 186-213: Add an npm/yarn install step for the UI and connector
packages so the example is copy-pasteable: mention installing
react-instantsearch (or react-instantsearch-dom vX if applicable) and
@meilisearch/instant-meilisearchbefore the code block (e.g., npm install
react-instantsearch@meilisearch/instant-meilisearchor the yarn equivalent).
Ensure the install snippet appears immediately above the example that imports
InstantSearch, SearchBox, Hits and instantMeiliSearch, and optionally note which
package provides instantMeiliSearch and which provides
InstantSearch/SearchBox/Hits (to make the dependencies clear).In
@getting_started/overview.mdx:
- Around line 50-57: The CardGroup/Card block uses relative hrefs
("getting_started/features", "getting_started/sdks/javascript"); update the Card
components' href props to use absolute paths (prefix with a leading slash) to
match the rest of the site and avoid resolution issues — e.g., change the href
values on the Card elements in the CardGroup to "/getting_started/features" and
"/getting_started/sdks/javascript".</details> --- <details> <summary>ℹ️ Review info</summary> <details> <summary>⚙️ Run configuration</summary> **Configuration used**: Organization UI **Review profile**: CHILL **Plan**: Pro **Run ID**: `a5b37133-71a1-4b96-9b00-ac357702ca02` </details> <details> <summary>📥 Commits</summary> Reviewing files that changed from the base of the PR and between 22e04761c3fb746f19879371fb3a541de0be39ab and 6ac564a08db49e08d87ab1a282b89e5aff5babfa. </details> <details> <summary>📒 Files selected for processing (27)</summary> * `docs.json` * `getting_started/features.mdx` * `getting_started/frameworks/laravel.mdx` * `getting_started/frameworks/rails.mdx` * `getting_started/frameworks/strapi.mdx` * `getting_started/frameworks/symfony.mdx` * `getting_started/instant_meilisearch/docsearch.mdx` * `getting_started/instant_meilisearch/javascript.mdx` * `getting_started/instant_meilisearch/react.mdx` * `getting_started/instant_meilisearch/vue.mdx` * `getting_started/integrations/firebase.mdx` * `getting_started/integrations/gatsby.mdx` * `getting_started/integrations/meilisearch_importer.mdx` * `getting_started/integrations/meilisync.mdx` * `getting_started/integrations/postman.mdx` * `getting_started/integrations/vercel.mdx` * `getting_started/overview.mdx` * `getting_started/sdks/dart.mdx` * `getting_started/sdks/dotnet.mdx` * `getting_started/sdks/go.mdx` * `getting_started/sdks/java.mdx` * `getting_started/sdks/javascript.mdx` * `getting_started/sdks/php.mdx` * `getting_started/sdks/python.mdx` * `getting_started/sdks/ruby.mdx` * `getting_started/sdks/rust.mdx` * `getting_started/sdks/swift.mdx` </details> </details> <!-- This is an auto-generated comment by CodeRabbit for review status -->
- Fix multi-search link pointing to wrong endpoint in laravel.mdx - Fix "Github" capitalization to "GitHub" in laravel.mdx - Fix broken /products/... card links in symfony.mdx and meilisync.mdx - Fix "categorie's" typo in strapi.mdx alt text - Fix missing space in "6.Start" heading in vue.mdx - Fix broken glossary links in react.mdx and vue.mdx - Fix "indexUId" capitalization in postman.mdx alt text - Use absolute paths for card hrefs in overview.mdx Entire-Checkpoint: 9c68757644a6
Update multi-search link in laravel.mdx and redirect in docs.json to use /reference/api/multi-search/perform-a-multi-search Entire-Checkpoint: 9c68757644a6
Entire-Checkpoint: 9c68757644a6
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@getting_started/frameworks/strapi.mdx`:
- Line 120: The sentence "Access the [search preview](/getting_started/overview)
confirm everything is working correctly by searching for “butter”." is missing
the word "to"; update this line so it reads "Access the [search
preview](/getting_started/overview) to confirm everything is working correctly
by searching for “butter”." to fix the grammar in the strapi.md x content.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 3d02489d-c3a8-4697-80bc-5d8ead1b05d8
📒 Files selected for processing (9)
docs.jsongetting_started/frameworks/laravel.mdxgetting_started/frameworks/strapi.mdxgetting_started/frameworks/symfony.mdxgetting_started/instant_meilisearch/react.mdxgetting_started/instant_meilisearch/vue.mdxgetting_started/integrations/meilisync.mdxgetting_started/integrations/postman.mdxgetting_started/overview.mdx
🚧 Files skipped from review as they are similar to previous changes (5)
- getting_started/instant_meilisearch/vue.mdx
- getting_started/frameworks/symfony.mdx
- getting_started/integrations/meilisync.mdx
- getting_started/overview.mdx
- getting_started/instant_meilisearch/react.mdx
Summary
/products/,/resources/paths to existing docs)Test plan
npx mintlify devand verify the "Getting started" tab appears with all subpagesnpx mint broken-linksFixe #3490
Summary by CodeRabbit