Skip to content

Enhance documentation and SEO for brand assets#543

Merged
softmarshmallow merged 1 commit intomainfrom
canary
Feb 17, 2026
Merged

Enhance documentation and SEO for brand assets#543
softmarshmallow merged 1 commit intomainfrom
canary

Conversation

@softmarshmallow
Copy link
Copy Markdown
Member

@softmarshmallow softmarshmallow commented Feb 17, 2026

  • Updated AGENTS.md to include key rules and a directory map for better navigation and understanding of the project structure.
  • Added SEO.md to document specific SEO considerations for the editor's public site, including image indexing and metadata requirements.
  • Modified BrandPage component to use unoptimized images for better SEO performance, ensuring direct URLs are available for Google Image indexing.

Summary by CodeRabbit

  • Documentation

    • Expanded routing and architecture documentation with key rules, directory mappings, and navigation configuration guidance.
    • Added comprehensive SEO best practices guide covering image optimization, metadata handling, and search indexing.
  • Bug Fixes

    • Improved image delivery for enhanced search engine indexing.

- Updated AGENTS.md to include key rules and a directory map for better navigation and understanding of the project structure.
- Added SEO.md to document specific SEO considerations for the editor's public site, including image indexing and metadata requirements.
- Modified BrandPage component to use unoptimized images for better SEO performance, ensuring direct URLs are available for Google Image indexing.
@vercel
Copy link
Copy Markdown

vercel Bot commented Feb 17, 2026

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

Project Deployment Actions Updated (UTC)
docs Ready Ready Preview, Comment Feb 17, 2026 8:15pm
grida Ready Ready Preview, Comment Feb 17, 2026 8:15pm
5 Skipped Deployments
Project Deployment Actions Updated (UTC)
code Ignored Ignored Feb 17, 2026 8:15pm
legacy Ignored Ignored Feb 17, 2026 8:15pm
backgrounds Skipped Skipped Feb 17, 2026 8:15pm
blog Skipped Skipped Feb 17, 2026 8:15pm
viewer Skipped Skipped Feb 17, 2026 8:15pm

Request Review

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Feb 17, 2026

Walkthrough

Expanded documentation with detailed guidance on editor architecture, SEO best practices, and Next.js Image optimization. Added unoptimized prop to Image components in BrandPage to align with direct PNG URL indexing requirements documented in new SEO guidelines.

Changes

Cohort / File(s) Summary
Documentation Expansion
editor/AGENTS.md
Substantially expanded with key rules (auth, public API versioning, route layouts), directory structure map, navigation configuration, sitemaps, and universal routing guidance for docs links.
SEO Guidance
editor/app/(www)/SEO.md
New documentation covering SEO best practices for Next.js Images, direct public URLs, image asset validation, alt text, sitemaps, canonical URLs, and metadata configuration.
Image Optimization
editor/app/(www)/(brand)/brand/page.tsx
Added unoptimized prop to Image components (wordmark and BrandAssetCard) to enable direct PNG URL indexing as documented in SEO guidelines.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • gridaco/grida#469: Modifies BrandPage Image component rendering, directly related to unoptimized prop addition.
  • gridaco/grida#365: Updates AGENTS.md documentation content, shares same documentation file modifications.
  • gridaco/grida#337: Introduces AGENTS.md, predecessor to the documentation expansion in this PR.

Suggested labels

documentation

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the main changes: documentation enhancements (AGENTS.md and SEO.md) and SEO-related modifications (unoptimized images for brand assets).

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

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch canary

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

@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 (1)
editor/app/(www)/(brand)/brand/page.tsx (1)

253-269: title and label props are always passed identical values.

Every call site passes the same string to both title and label (e.g., "Light" / "Light"). title is only used inside the download control's <span>, while label appears in the card header — they serve the same purpose here. Consider collapsing into a single prop to reduce surface area, or differentiate their usage if future divergence is planned.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@editor/app/`(www)/(brand)/brand/page.tsx around lines 253 - 269, The
component BrandAssetCard duplicates title and label; consolidate to a single
prop (e.g., label) by removing title from the props list and replacing any
internal uses of title (such as the download control's <span>) with label,
update the function signature for BrandAssetCard to accept label only (keeping
variant, previewSrc, pngDownloadSrc, svgDownloadSrc, alt), and update every call
site to stop passing title and pass only label (or rename the passed argument
accordingly); if you prefer to keep both for future divergence instead,
explicitly document and use distinct names where they differ, but do not leave
identical props in place.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@editor/AGENTS.md`:
- Line 12: Update the note about Edge entrypoints to clarify runtimes: state
that proxy.ts replaces middleware.ts for Node.js runtime in Next.js 16 (same
semantics but export renamed to proxy), while middleware.ts is still used for
Edge runtime scenarios (though deprecated) so developers should choose proxy.ts
for Node.js runtime and middleware.ts only for Edge-specific needs; reference
the files proxy.ts and middleware.ts and mention Next.js 16 and Edge vs Node.js
runtime distinctions in the single sentence.

---

Nitpick comments:
In `@editor/app/`(www)/(brand)/brand/page.tsx:
- Around line 253-269: The component BrandAssetCard duplicates title and label;
consolidate to a single prop (e.g., label) by removing title from the props list
and replacing any internal uses of title (such as the download control's <span>)
with label, update the function signature for BrandAssetCard to accept label
only (keeping variant, previewSrc, pngDownloadSrc, svgDownloadSrc, alt), and
update every call site to stop passing title and pass only label (or rename the
passed argument accordingly); if you prefer to keep both for future divergence
instead, explicitly document and use distinct names where they differ, but do
not leave identical props in place.

Comment thread editor/AGENTS.md
- **Auth is special**: `app/(auth)` is security-critical. **Do not modify** routes/flows there.
- **Public API is versioned**: treat `app/(api)/(public)/v1` as **backwards-compatible** (additive changes only unless you’re intentionally breaking/v2-ing).
- **Layouts are per route group**: there isn’t a single shared root layout across the whole `app/` tree — top-level route groups own their root `layout.tsx`/metadata.
- **Edge entrypoint is `proxy.ts`**: on Next.js 16 this replaces `middleware.ts` (same runtime + semantics). Don’t add a new `middleware.ts`.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🌐 Web query:

Next.js 16 proxy.ts middleware replacement

💡 Result:

In Next.js 16, proxy.ts replaces middleware.ts for request interception on the Node.js runtime (to make the “network boundary” explicit). To migrate, rename middleware.tsproxy.ts and rename your exported function to proxy—the logic can stay the same. [1][2]

Migration (recommended):

  • Run the codemod: npx @next/codemod@canary middleware-to-proxy . [2]
  • Or manually:
// proxy.ts
import type { NextRequest } from "next/server";
import { NextResponse } from "next/server";

export function proxy(request: NextRequest) {
  // your existing redirects/rewrites/header logic
  return NextResponse.next();
}

Note: middleware.ts still exists for Edge runtime use cases, but it’s deprecated and planned for removal in a future version. [1]

Sources:
[1] Next.js 16 blog (proxy.ts formerly middleware.ts)
[2] Next.js docs message: Renaming Middleware to Proxy


Clarify the runtime distinction for proxy.ts vs middleware.ts in Next.js 16.

The guidance on line 12 is mostly correct but incomplete. proxy.ts replaces middleware.ts for Node.js runtime in Next.js 16 with equivalent semantics (function logic remains the same—just rename the export to proxy). However, middleware.ts still exists for Edge runtime use cases (though deprecated). Expand the note to clarify this distinction so developers understand when to use each approach.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@editor/AGENTS.md` at line 12, Update the note about Edge entrypoints to
clarify runtimes: state that proxy.ts replaces middleware.ts for Node.js runtime
in Next.js 16 (same semantics but export renamed to proxy), while middleware.ts
is still used for Edge runtime scenarios (though deprecated) so developers
should choose proxy.ts for Node.js runtime and middleware.ts only for
Edge-specific needs; reference the files proxy.ts and middleware.ts and mention
Next.js 16 and Edge vs Node.js runtime distinctions in the single sentence.

@softmarshmallow softmarshmallow merged commit 67894c0 into main Feb 17, 2026
10 checks passed
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.

1 participant