Skip to content

Conversation

@mfts
Copy link
Owner

@mfts mfts commented Aug 25, 2025

Summary by CodeRabbit

  • Performance
    • Improved content freshness by enabling periodic regeneration for certain view pages.
    • Pages without associated brand or document data now auto-refresh roughly every 60 seconds (previously never).
    • Pages with available data continue to revalidate about every 10 seconds.
    • Reduces chances of stale pages and improves reliability across domain and link-based views.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Aug 25, 2025

Walkthrough

Updated getStaticProps in three page files to change ISR behavior: when neither brand nor recordMap is present, revalidate switches from false to 60 seconds; when present, it remains 10 seconds. No other logic, exports, or signatures changed.

Changes

Cohort / File(s) Summary
ISR revalidation update in getStaticProps
pages/view/[linkId]/d/[documentId].tsx, pages/view/[linkId]/index.tsx, pages/view/domains/[domain]/[slug]/d/[documentId].tsx
Changed revalidate from `brand

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • fix: improve code coverage #1778 — Also modifies getStaticProps in the same page areas by adding zod validation for params, closely related to ISR handling changes.

Tip

🔌 Remote MCP (Model Context Protocol) integration is now available!

Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats.

✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/revalidation

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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@vercel
Copy link

vercel bot commented Aug 25, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
papermark Ready Ready Preview Comment Aug 25, 2025 9:12am

Copy link
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 (3)
pages/view/domains/[domain]/[slug]/d/[documentId].tsx (1)

288-289: Optional: Centralize ISR values to avoid drift across files

This same ternary appears in 3 places. Consider extracting constants to keep the values consistent and easier to tweak.

Apply this minimal diff here:

-      revalidate: brand || recordMap ? 10 : 60,
+      revalidate:
+        (brand || recordMap) ? ISR_REVALIDATE_BRANDED : ISR_REVALIDATE_UNBRANDED,

And add (outside this hunk) a small constants module and import:

TypeScript (new file):

// src/lib/isr.ts
export const ISR_REVALIDATE_BRANDED = 10;
export const ISR_REVALIDATE_UNBRANDED = 60;

Add import at top of this file:

import { ISR_REVALIDATE_BRANDED, ISR_REVALIDATE_UNBRANDED } from "@/lib/isr";
pages/view/[linkId]/index.tsx (1)

157-158: Optional: Consolidate ISR values via shared constants

Same suggestion as in the other files to reduce duplication and prevent accidental divergence.

Apply this minimal diff here:

-        revalidate: brand || recordMap ? 10 : 60,
+        revalidate:
+          (brand || recordMap) ? ISR_REVALIDATE_BRANDED : ISR_REVALIDATE_UNBRANDED,

Add (outside this hunk) the shared constants and import:

// src/lib/isr.ts
export const ISR_REVALIDATE_BRANDED = 10;
export const ISR_REVALIDATE_UNBRANDED = 60;
import { ISR_REVALIDATE_BRANDED, ISR_REVALIDATE_UNBRANDED } from "@/lib/isr";
pages/view/[linkId]/d/[documentId].tsx (1)

270-271: Optional: Factor out ISR constants for consistency

Mirroring the other files will keep these values aligned and easier to adjust.

Apply this minimal diff here:

-      revalidate: brand || recordMap ? 10 : 60,
+      revalidate:
+        (brand || recordMap) ? ISR_REVALIDATE_BRANDED : ISR_REVALIDATE_UNBRANDED,

Add (outside this hunk) the shared constants and import:

// src/lib/isr.ts
export const ISR_REVALIDATE_BRANDED = 10;
export const ISR_REVALIDATE_UNBRANDED = 60;
import { ISR_REVALIDATE_BRANDED, ISR_REVALIDATE_UNBRANDED } from "@/lib/isr";
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 857880b and b4fc66d.

📒 Files selected for processing (3)
  • pages/view/[linkId]/d/[documentId].tsx (1 hunks)
  • pages/view/[linkId]/index.tsx (1 hunks)
  • pages/view/domains/[domain]/[slug]/d/[documentId].tsx (1 hunks)
🔇 Additional comments (4)
pages/view/domains/[domain]/[slug]/d/[documentId].tsx (1)

288-289: LGTM: ISR fallback now refreshes every 60s instead of disabling revalidation

Switching from false to 60 for the unbranded/non‑Notion path prevents pages from going stale indefinitely and lets them self-heal within a minute. This aligns with the PR objective without altering any data-loading semantics.

pages/view/[linkId]/index.tsx (2)

157-158: LGTM: Document-link pages now revalidate every 60s when unbranded/no recordMap

The change matches the stated intent and should reduce long-lived stale content for static (non‑Notion) docs. Branded/Notion pages remain at 10s.


157-158: Confirm DATAROOM_LINK revalidate policy

• In pages/view/[linkId]/index.tsx at line 230 you’ve hard-coded revalidate: 10, whereas the main return (line 157) uses

revalidate: brand || recordMap ? 10 : 60,

If your intent is to keep “10 s for branded/recorded pages, 60 s otherwise” across all branches, update the DATAROOM_LINK branch to the same conditional. Otherwise, please confirm that always using 10 s there is deliberate.

@@ pages/view/[linkId]/index.tsx:229
-       revalidate: 10,
+       revalidate: brand || recordMap ? 10 : 60,
pages/view/[linkId]/d/[documentId].tsx (1)

270-271: LGTM: Dataroom document pages now revalidate every 60s when unbranded/no recordMap

Matches the new policy while keeping 10s for branded/Notion content. No changes to data flow or types.

@mfts mfts merged commit 842c207 into main Aug 25, 2025
9 checks passed
@github-actions github-actions bot locked and limited conversation to collaborators Aug 25, 2025
@mfts mfts deleted the feat/revalidation branch September 16, 2025 14:40
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants