Skip to content

Conversation

@adityaoberai
Copy link
Member

@adityaoberai adityaoberai commented Jan 16, 2026

What does this PR do?

Remove incorrect realtime endpoint and add missing variable

Test Plan

Visit the RxDB blog and integration guide

Related PRs and Issues

No

Have you read the Contributing Guidelines on issues?

Yes

Summary by CodeRabbit

  • Documentation
    • Updated Appwrite Web SDK installation example with pinned version for consistency.
    • Simplified Appwrite Client initialization configuration in code examples.
    • Added comprehensive documentation for Appwrite-RxDB replication setup with error handling and status monitoring.

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

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 16, 2026

Walkthrough

The Appwrite Web SDK dependency is pinned to version 17.0.1. The Appwrite Client initialization is simplified by removing the .setEndpointRealtime() method call across affected files. In one file, a new internal replicationState variable and setupReplication(db) function are introduced to initialize Appwrite-RxDB replication with configuration for replication options and event subscriptions for error handling.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Fix RxDB blog and integrations guide' directly relates to the changeset, which removes an incorrect realtime endpoint and updates configuration in the RxDB blog and integration guides.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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


🧹 Recent nitpick comments
src/routes/blog/post/offline-first-journal/+page.markdoc (1)

232-263: Remove unnecessary async wrapper and the empty active$ handler.

The setupReplication function doesn't need to be asyncreplicateAppwrite() is synchronous and returns the state immediately. The empty active$ subscription adds noise and should be removed. The error$ handler is correctly placed and needed; RxDB replication errors are observable-based and don't bubble as exceptions, so the error$ subscription is the proper way to catch and handle replication failures.

♻️ Suggested cleanup
-const setupReplication = async (db) => {
-	try {
-		// Start replication
-		replicationState = replicateAppwrite({
+const setupReplication = (db) => {
+	// Start replication
+	replicationState = replicateAppwrite({

(Remove try/catch and empty active$.subscribe() block; keep error$.subscribe().)


📜 Recent review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6a1ab4c and 42df72b.

📒 Files selected for processing (2)
  • src/routes/blog/post/offline-first-journal/+page.markdoc
  • src/routes/integrations/replication-rxdb/+page.markdoc
💤 Files with no reviewable changes (1)
  • src/routes/integrations/replication-rxdb/+page.markdoc
🧰 Additional context used
🧠 Learnings (6)
📓 Common learnings
Learnt from: ebenezerdon
Repo: appwrite/website PR: 2372
File: src/routes/docs/tutorials/react-native/step-6/+page.markdoc:67-73
Timestamp: 2025-09-05T19:35:59.449Z
Learning: In React Native tutorials, the lib/appwrite.js file exports `tablesDB` (not `databases`), so imports should use `import { tablesDB } from "../lib/appwrite"` to match the export pattern established in step-3.
Learnt from: ebenezerdon
Repo: appwrite/website PR: 2372
File: src/routes/docs/tutorials/react/step-6/+page.markdoc:70-75
Timestamp: 2025-09-05T19:35:53.943Z
Learning: In React tutorial files, the correct Appwrite database instance to import is `tablesDB` from "../appwrite", not `databases`. The import statement should be `import { tablesDB } from "../appwrite"` to match the usage throughout the React tutorial code.
Learnt from: stnguyen90
Repo: appwrite/website PR: 2520
File: src/routes/docs/advanced/self-hosting/production/updates/+page.markdoc:13-15
Timestamp: 2025-10-24T22:17:14.669Z
Learning: In Appwrite versioning, RC (Release Candidate) versions like `1.6.2-RC1` come before the stable release `1.6.2`. Documentation should recommend upgrading to stable versions, not RC versions.
📚 Learning: 2025-09-24T08:55:57.959Z
Learnt from: amustaque97
Repo: appwrite/website PR: 2434
File: deploy/templates/deployment.yaml:0-0
Timestamp: 2025-09-24T08:55:57.959Z
Learning: In the Appwrite website Helm deployment, environment variables are managed through ConfigMap rather than direct Helm values injection, so security concerns about secrets in Deployment manifests don't apply to their setup.

Applied to files:

  • src/routes/blog/post/offline-first-journal/+page.markdoc
📚 Learning: 2025-11-18T21:53:20.905Z
Learnt from: atharvadeosthale
Repo: appwrite/website PR: 2614
File: src/routes/docs/products/sites/one-click-deployment/+page.markdoc:74-122
Timestamp: 2025-11-18T21:53:20.905Z
Learning: Appwrite Sites one-click deployment supports the following framework presets: Analog (analog), Angular (angular), Next.js (nextjs), React (react), Nuxt (nuxt), Vue (vue), SvelteKit (sveltekit), Astro (astro), TanStack Start (tanstack-start), Remix (remix), Lynx (lynx), Flutter (flutter), React Native (react-native), Vite (vite), and Other (other).

Applied to files:

  • src/routes/blog/post/offline-first-journal/+page.markdoc
📚 Learning: 2025-09-24T09:16:03.075Z
Learnt from: amustaque97
Repo: appwrite/website PR: 2434
File: .github/workflows/staging.yml:117-131
Timestamp: 2025-09-24T09:16:03.075Z
Learning: In the Appwrite website deployment, environment variables are baked into the Docker image during the build stage using build-args, so creating a separate ConfigMap in the Kubernetes deployment job is unnecessary and redundant.

Applied to files:

  • src/routes/blog/post/offline-first-journal/+page.markdoc
📚 Learning: 2025-09-05T19:35:59.449Z
Learnt from: ebenezerdon
Repo: appwrite/website PR: 2372
File: src/routes/docs/tutorials/react-native/step-6/+page.markdoc:67-73
Timestamp: 2025-09-05T19:35:59.449Z
Learning: In React Native tutorials, the lib/appwrite.js file exports `tablesDB` (not `databases`), so imports should use `import { tablesDB } from "../lib/appwrite"` to match the export pattern established in step-3.

Applied to files:

  • src/routes/blog/post/offline-first-journal/+page.markdoc
📚 Learning: 2025-09-05T19:35:53.943Z
Learnt from: ebenezerdon
Repo: appwrite/website PR: 2372
File: src/routes/docs/tutorials/react/step-6/+page.markdoc:70-75
Timestamp: 2025-09-05T19:35:53.943Z
Learning: In React tutorial files, the correct Appwrite database instance to import is `tablesDB` from "../appwrite", not `databases`. The import statement should be `import { tablesDB } from "../appwrite"` to match the usage throughout the React tutorial code.

Applied to files:

  • src/routes/blog/post/offline-first-journal/+page.markdoc
⏰ 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). (3)
  • GitHub Check: assets
  • GitHub Check: build
  • GitHub Check: tests
🔇 Additional comments (2)
src/routes/blog/post/offline-first-journal/+page.markdoc (2)

127-129: No action required — dropping setEndpointRealtime is correct for all standard deployments.

The Appwrite Web SDK v17 automatically derives the Realtime WebSocket endpoint from setEndpoint(). Explicit setEndpointRealtime() configuration is only needed for custom proxy or custom realtime domain scenarios, not standard self-hosted setups.


94-98: Downgrade Appwrite Web SDK to v16.x for RxDB replication compatibility.
The pinned appwrite@17.0.1 contains breaking changes in session/cookie fallback behavior and the client API surface that break the RxDB Appwrite replication plugin. Community reports confirm replication fails with v17.x. Downgrade to appwrite@^16 until the RxDB plugin is officially updated for v17+ compatibility. The latest version is v19.0.0, but v16 is the recommended stable pin for this integration. Verify with the RxDB Appwrite replication docs or upstream issue tracker before upgrading beyond v16.

⛔ Skipped due to learnings
Learnt from: stnguyen90
Repo: appwrite/website PR: 2520
File: src/routes/docs/advanced/self-hosting/production/updates/+page.markdoc:13-15
Timestamp: 2025-10-24T22:17:14.669Z
Learning: In Appwrite versioning, RC (Release Candidate) versions like `1.6.2-RC1` come before the stable release `1.6.2`. Documentation should recommend upgrading to stable versions, not RC versions.
Learnt from: atharvadeosthale
Repo: appwrite/website PR: 2614
File: src/routes/docs/products/sites/one-click-deployment/+page.markdoc:74-122
Timestamp: 2025-11-18T21:53:20.905Z
Learning: Appwrite Sites one-click deployment supports the following framework presets: Analog (analog), Angular (angular), Next.js (nextjs), React (react), Nuxt (nuxt), Vue (vue), SvelteKit (sveltekit), Astro (astro), TanStack Start (tanstack-start), Remix (remix), Lynx (lynx), Flutter (flutter), React Native (react-native), Vite (vite), and Other (other).

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.


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

❤️ Share

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants