Skip to content

Conversation

@ComputelessComputer
Copy link
Collaborator

@ComputelessComputer ComputelessComputer commented Dec 1, 2025

Summary

Replaces all Supabase storage URLs in the content/articles folder with the /api/images/ proxy endpoint. This change affects 39 MDX files, converting URLs from https://ijoptyyjrfqwaqhyxkxj.supabase.co/storage/v1/object/public/public_images/... to /api/images/....

Also fixed some pre-existing malformed URLs that had duplicate Supabase prefixes (e.g., public_imageshttps://ijoptyyjrfqwaqhyxkxj.supabase.co/...).

Updates since last revision

  • Fixed double-slash paths in best-ai-meeting-assistant-for-taking-notes.mdx that would have caused 404s through the proxy (the proxy's sanitizePath function rejects empty path segments)
  • Merged with origin/main to incorporate latest changes
  • Added quotes around coverImage value in best-ai-meeting-assistant-for-taking-notes.mdx frontmatter for valid YAML
  • Improved accessibility in otter-ai-review.mdx by replacing generic alt="Source" attributes with descriptive alt text (e.g., "Otter AI privacy lawsuit court filing", "User feedback on Otter AI transcription accuracy issues")

Review & Testing Checklist for Human

  • Verify images load correctly - Deploy to a preview environment and check that article images render properly through the proxy endpoint
  • Test cover images - Ensure coverImage frontmatter fields work correctly with the new relative paths (especially the quoted value in best-ai-meeting-assistant-for-taking-notes.mdx)
  • Approve Argos visual changes - Argos detected visual changes that require approval in the Argos dashboard
  • Spot-check alt text - Verify the new descriptive alt text in otter-ai-review.mdx accurately reflects the image content

Recommended test plan: After deploying to preview, navigate to several blog articles and confirm all images load. Check browser dev tools network tab for any 404s on image requests. Pay special attention to best-ai-meeting-assistant-for-taking-notes which had the most malformed URLs.

Notes

Co-Authored-By: john@hyprnote.com <john@hyprnote.com>
@devin-ai-integration
Copy link
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR that start with 'DevinAI' or '@devin'.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@netlify
Copy link

netlify bot commented Dec 1, 2025

Deploy Preview for hyprnote-storybook ready!

Name Link
🔨 Latest commit b00be27
🔍 Latest deploy log https://app.netlify.com/projects/hyprnote-storybook/deploys/692cfe482273260008fed7a8
😎 Deploy Preview https://deploy-preview-2021--hyprnote-storybook.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 1, 2025

📝 Walkthrough

Walkthrough

Rewrote image asset references across many MDX blog articles: replaced external Supabase/storage URLs with internal /api/images/blog/[slug]/... paths in front-matter coverImage and inline <img> tags; one article also had a <CtaCard/> insertion. No functional code changes.

Changes

Cohort / File(s) Summary
Blog article image URL migrations
apps/web/content/articles/ai-meeting-summary-tools.mdx, apps/web/content/articles/best-ai-meeting-assistant-for-taking-notes.mdx, apps/web/content/articles/best-ai-notetaker-for-in-person-meetings.mdx, apps/web/content/articles/best-ai-notetaker-for-microsoft-teams.mdx, apps/web/content/articles/best-ai-notetaker-for-zoom.mdx, apps/web/content/articles/best-ai-notetakers-google-meet.mdx, apps/web/content/articles/bot-free-ai-meeting-assistants.mdx, apps/web/content/articles/can-you-transcribe-meetings-without-sending-data-to-cloud.mdx, apps/web/content/articles/chatgpt-for-meeting-notes.mdx, apps/web/content/articles/enterprise-ai-notetaking-tools.mdx, apps/web/content/articles/fathom-ai-alternatives.mdx, apps/web/content/articles/fireflies-ai-alternatives.mdx, apps/web/content/articles/free-ai-notetakers.mdx, apps/web/content/articles/free-transcription-software.mdx, apps/web/content/articles/google-gemini-meeting-notes.mdx, apps/web/content/articles/granola-ai-alternatives.mdx, apps/web/content/articles/how-to-have-productive-one-on-one-meetings.mdx, apps/web/content/articles/how-to-participate-in-meetings-effectively.mdx, apps/web/content/articles/how-to-reduce-meeting-fatigue.mdx, apps/web/content/articles/how-to-transcribe-zoom-calls.mdx, apps/web/content/articles/is-ai-notetaking-legal.mdx, apps/web/content/articles/is-fireflies-ai-safe.mdx, apps/web/content/articles/is-otter-ai-safe.mdx, apps/web/content/articles/local-ai-privacy-tools.mdx, apps/web/content/articles/meeting-minutes-software.mdx, apps/web/content/articles/meeting-preparation-checklist.mdx, apps/web/content/articles/open-source-meeting-transcription-software.mdx, apps/web/content/articles/otter-ai-alternatives.mdx, apps/web/content/articles/plaud-ai-alternatives.mdx, apps/web/content/articles/post-yc-slump.mdx, apps/web/content/articles/sales-ai-note-takers.mdx, apps/web/content/articles/see-zoom-meeting-history.mdx, apps/web/content/articles/tldv-review.mdx, apps/web/content/articles/using-ide-for-writing.mdx, apps/web/content/articles/what-makes-reliable-ai-note-taker.mdx, apps/web/content/articles/why-our-cms-is-github.mdx, apps/web/content/articles/why-we-burned-it-down.mdx, apps/web/content/articles/zoom-ai-companion-review.mdx
Replaced absolute Supabase/public storage image URLs with relative /api/images/blog/[article-slug]/... paths for coverImage front-matter and all inline <img> src attributes. No other content or logic changes.
Blog article with structural addition
apps/web/content/articles/otter-ai-review.mdx
Performed the same image URL migrations; additionally inserted a <CtaCard/> component after the "7. Third-party Integrations" section and made minor content adjustments to security/privacy and links.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

  • Extra attention areas:
    • apps/web/content/articles/otter-ai-review.mdx: verify <CtaCard/> placement, new paragraphs/links, and image path consistency.
    • Spot-check a representative sample (3–5) articles for consistent /api/images/blog/[slug]/... patterns and valid filenames/extensions.
    • Confirm referenced image filenames/extensions match assets served by the /api/images route.

Possibly related PRs

Suggested reviewers

  • yujonglee

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: replacing Supabase image URLs with a proxy endpoint across article files.
Description check ✅ Passed The description is directly related to the changeset, providing context about URL replacements, affected files, bug fixes, and testing recommendations.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch devin/1764552008-supabase-urls-to-proxy

📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between bcbcf16 and b00be27.

📒 Files selected for processing (2)
  • apps/web/content/articles/best-ai-meeting-assistant-for-taking-notes.mdx (8 hunks)
  • apps/web/content/articles/otter-ai-review.mdx (7 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • apps/web/content/articles/best-ai-meeting-assistant-for-taking-notes.mdx
  • apps/web/content/articles/otter-ai-review.mdx
⏰ 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). (5)
  • GitHub Check: Redirect rules - hyprnote
  • GitHub Check: Header rules - hyprnote
  • GitHub Check: Pages changed - hyprnote
  • GitHub Check: fmt
  • GitHub Check: ci

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

@netlify
Copy link

netlify bot commented Dec 1, 2025

Deploy Preview for hyprnote ready!

Name Link
🔨 Latest commit b00be27
🔍 Latest deploy log https://app.netlify.com/projects/hyprnote/deploys/692cfe4867540c000891d8ff
😎 Deploy Preview https://deploy-preview-2021--hyprnote.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

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: 4

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a776f6d and 0849ab5.

📒 Files selected for processing (39)
  • apps/web/content/articles/ai-meeting-summary-tools.mdx (11 hunks)
  • apps/web/content/articles/best-ai-meeting-assistant-for-taking-notes.mdx (8 hunks)
  • apps/web/content/articles/best-ai-notetaker-for-in-person-meetings.mdx (8 hunks)
  • apps/web/content/articles/best-ai-notetaker-for-microsoft-teams.mdx (9 hunks)
  • apps/web/content/articles/best-ai-notetaker-for-zoom.mdx (11 hunks)
  • apps/web/content/articles/best-ai-notetakers-google-meet.mdx (8 hunks)
  • apps/web/content/articles/bot-free-ai-meeting-assistants.mdx (13 hunks)
  • apps/web/content/articles/can-you-transcribe-meetings-without-sending-data-to-cloud.mdx (2 hunks)
  • apps/web/content/articles/chatgpt-for-meeting-notes.mdx (5 hunks)
  • apps/web/content/articles/enterprise-ai-notetaking-tools.mdx (8 hunks)
  • apps/web/content/articles/fathom-ai-alternatives.mdx (6 hunks)
  • apps/web/content/articles/fireflies-ai-alternatives.mdx (12 hunks)
  • apps/web/content/articles/free-ai-notetakers.mdx (19 hunks)
  • apps/web/content/articles/free-transcription-software.mdx (11 hunks)
  • apps/web/content/articles/google-gemini-meeting-notes.mdx (3 hunks)
  • apps/web/content/articles/granola-ai-alternatives.mdx (9 hunks)
  • apps/web/content/articles/how-to-have-productive-one-on-one-meetings.mdx (1 hunks)
  • apps/web/content/articles/how-to-participate-in-meetings-effectively.mdx (1 hunks)
  • apps/web/content/articles/how-to-reduce-meeting-fatigue.mdx (1 hunks)
  • apps/web/content/articles/how-to-transcribe-zoom-calls.mdx (7 hunks)
  • apps/web/content/articles/is-ai-notetaking-legal.mdx (2 hunks)
  • apps/web/content/articles/is-fireflies-ai-safe.mdx (6 hunks)
  • apps/web/content/articles/is-otter-ai-safe.mdx (6 hunks)
  • apps/web/content/articles/local-ai-privacy-tools.mdx (2 hunks)
  • apps/web/content/articles/meeting-minutes-software.mdx (8 hunks)
  • apps/web/content/articles/meeting-preparation-checklist.mdx (5 hunks)
  • apps/web/content/articles/open-source-meeting-transcription-software.mdx (4 hunks)
  • apps/web/content/articles/otter-ai-alternatives.mdx (17 hunks)
  • apps/web/content/articles/otter-ai-review.mdx (7 hunks)
  • apps/web/content/articles/plaud-ai-alternatives.mdx (7 hunks)
  • apps/web/content/articles/post-yc-slump.mdx (1 hunks)
  • apps/web/content/articles/sales-ai-note-takers.mdx (6 hunks)
  • apps/web/content/articles/see-zoom-meeting-history.mdx (5 hunks)
  • apps/web/content/articles/tldv-review.mdx (7 hunks)
  • apps/web/content/articles/using-ide-for-writing.mdx (1 hunks)
  • apps/web/content/articles/what-makes-reliable-ai-note-taker.mdx (1 hunks)
  • apps/web/content/articles/why-our-cms-is-github.mdx (1 hunks)
  • apps/web/content/articles/why-we-burned-it-down.mdx (4 hunks)
  • apps/web/content/articles/zoom-ai-companion-review.mdx (11 hunks)
⏰ 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). (5)
  • GitHub Check: Redirect rules - hyprnote
  • GitHub Check: Header rules - hyprnote
  • GitHub Check: Pages changed - hyprnote
  • GitHub Check: fmt
  • GitHub Check: ci (macos, macos-14)
🔇 Additional comments (38)
apps/web/content/articles/otter-ai-review.mdx (1)

48-48: CtaCard component is properly configured and ready for use.

The component exists at apps/web/src/components/cta-card.tsx with proper TypeScript types and sensible defaults. It renders cleanly without errors. Both placements (line 48 after feature list, line 128 in pricing section) align well with editorial intent and serve as logical call-to-action points. The component is automatically available in MDX through the content-collections integration in your build setup—no explicit import is required.

apps/web/content/articles/what-makes-reliable-ai-note-taker.mdx (1)

8-8: ✓ Clean URL migration in front matter.

The coverImage path is correctly formatted with proper quotes and follows the /api/images/blog/ pattern consistently. No issues detected.

apps/web/content/articles/post-yc-slump.mdx (1)

8-8: ✓ Consistent URL migration across front matter and inline images.

Both the coverImage and inline image src attributes are correctly formatted with proper quotes and follow the target /api/images/blog/ pattern. No issues detected.

Also applies to: 13-13

apps/web/content/articles/how-to-have-productive-one-on-one-meetings.mdx (1)

8-8: ✓ Clean URL migration in front matter.

The coverImage path is correctly formatted with proper quotes and no path issues. Follows the target /api/images/blog/ pattern.

apps/web/content/articles/plaud-ai-alternatives.mdx (1)

8-8: ✓ Consistent and correct URL migration across all image references.

All image paths (coverImage and inline img src attributes) are correctly formatted with proper quotes, follow the /api/images/blog/plaud-ai-alternatives/ pattern, and contain no path issues. The changes are applied consistently throughout the file.

Also applies to: 51-51, 102-102, 154-154, 216-216, 267-267, 316-316

apps/web/content/articles/why-our-cms-is-github.mdx (1)

7-7: ✓ Clean URL migration in front matter.

The coverImage path is correctly formatted with proper quotes and no path issues. Follows the target /api/images/blog/ pattern.

apps/web/content/articles/see-zoom-meeting-history.mdx (1)

8-8: ✓ Consistent and correct URL migration across all sequential images.

All image paths (coverImage and inline img src attributes) are correctly formatted with proper quotes, follow the /api/images/blog/see-zoom-meeting-history/ pattern with proper numbered sequencing (zoom-1 through zoom-7), and contain no path issues.

Also applies to: 19-19, 85-85, 95-95, 114-114, 118-118, 122-122, 128-128

apps/web/content/articles/is-fireflies-ai-safe.mdx (1)

7-7: ✓ Consistent and correct URL migration across all image references.

All image paths (coverImage and inline img src attributes) are correctly formatted with proper quotes, follow the /api/images/blog/is-fireflies-ai-safe/ pattern with proper numbered sequencing, and contain no path issues.

Also applies to: 18-18, 75-75, 90-90, 103-103, 142-142

apps/web/content/articles/using-ide-for-writing.mdx (1)

8-8: Frontmatter image URL migrated correctly to internal API path.

The coverImage has been updated from an external Supabase URL to the internal /api/images/blog/using-ide-for-writing/cover.png path, following the expected pattern.

Verify that the corresponding image file exists at the new path and that the /api/images/ proxy endpoint is properly configured to serve it.

apps/web/content/articles/fathom-ai-alternatives.mdx (1)

7-7: All image URLs migrated to internal API paths with consistent naming convention.

The coverImage and all 5 inline images have been updated to use the /api/images/blog/fathom-ai-alternatives/ prefix. The image filenames (fathom-1.webp through fathom-5.webp) follow a predictable and maintainable pattern.

Verify that all 6 image files are accessible at their new paths and that the image serving is working correctly (e.g., MIME types are set properly for .webp files).

Also applies to: 49-49, 93-93, 136-136, 179-179, 226-226

apps/web/content/articles/chatgpt-for-meeting-notes.mdx (1)

7-7: All image URLs migrated consistently to internal API paths.

All 6 images (coverImage + 5 inline images) have been updated to the /api/images/blog/chatgpt-for-meeting-notes/ prefix with predictable filenames.

Also applies to: 10-10, 25-25, 85-85, 177-177, 189-189

apps/web/content/articles/local-ai-privacy-tools.mdx (1)

7-7: Image URLs migrated to internal API paths.

Both images (coverImage and inline image) have been updated to use the /api/images/blog/local-ai-privacy-tools/ prefix.

Also applies to: 60-60

apps/web/content/articles/is-ai-notetaking-legal.mdx (1)

7-7: Image URLs migrated to internal API paths.

Both images have been updated to the /api/images/blog/is-ai-notetaking-legal/ prefix.

Also applies to: 163-163

apps/web/content/articles/sales-ai-note-takers.mdx (1)

8-8: All image URLs migrated to internal API paths.

All 6 images have been updated to the /api/images/blog/sales-ai-note-takers/ prefix with consistent filenames (sales-1.webp through sales-5.webp).

Also applies to: 35-35, 78-78, 127-127, 172-172, 221-221

apps/web/content/articles/why-we-burned-it-down.mdx (1)

8-8: Image URLs migrated to internal API paths with domain-specific organization.

All 4 images have been updated: article coverImage uses /api/images/blog/why-we-burned-it-down/, team avatars use /api/images/team/, and the signature uses /api/images/hyprnote/. This indicates a well-structured image organization with separate prefixes for different asset categories.

Also applies to: 198-198, 210-210, 223-223

apps/web/content/articles/google-gemini-meeting-notes.mdx (1)

7-7: Image URLs migrated to internal API paths.

All 3 images have been updated to the /api/images/blog/google-gemini-meeting-notes/ prefix.

Also applies to: 55-55, 117-117

apps/web/content/articles/how-to-reduce-meeting-fatigue.mdx (1)

7-7: Frontmatter coverImage URL migration looks good.

The URL path follows the standard pattern and slug correctly derives from the filename. Since this article has no inline images, the migration is minimal and clean.

apps/web/content/articles/meeting-preparation-checklist.mdx (1)

8-8: All image URL migrations follow the correct pattern.

The article's five image URLs (one coverImage + four inline images) are correctly migrated to the /api/images/blog/meeting-preparation-checklist/ path. File extensions (.png, .webp) and alt text are preserved consistently across all changes.

Also applies to: 27-27, 54-54, 122-122, 145-145

apps/web/content/articles/open-source-meeting-transcription-software.mdx (1)

8-8: All image URLs correctly migrated with consistent slug naming.

The four images (cover + three inline tool screenshots) are properly migrated to the /api/images/blog/open-source-meeting-transcription-software/ path. Slug handles the longer filename correctly, and file extensions (.png, .webp) are preserved.

Also applies to: 42-42, 82-82, 122-122

apps/web/content/articles/enterprise-ai-notetaking-tools.mdx (1)

8-8: All eight image URLs correctly migrated with sequential naming.

The enterprise article's comprehensive set of images (one cover + seven inline) all follow the correct /api/images/blog/enterprise-ai-notetaking-tools/ path with properly numbered filenames (enterprise-1.webp through enterprise-7.webp). All extensions and alt text are preserved consistently.

Also applies to: 42-42, 56-56, 78-78, 108-108, 139-139, 174-174, 209-209

apps/web/content/articles/tldv-review.mdx (1)

8-8: All seven image URLs correctly migrated with consistent sequencing.

The tldv article's images (one cover + six inline comparisons/features) follow the /api/images/blog/tldv-review/ path with properly sequential filenames (tldv-1.webp through tldv-6.webp). Extensions and descriptive alt text are all preserved.

Also applies to: 35-35, 54-54, 71-71, 88-88, 161-161, 209-209

apps/web/content/articles/how-to-transcribe-zoom-calls.mdx (1)

7-7: All seven image URLs correctly migrated with sequential naming.

The Zoom transcription article's images (one cover + six inline step guides) follow the /api/images/blog/how-to-transcribe-zoom-calls/ path with properly sequential filenames (auto-1.webp through auto-6.webp). All extensions and alt text are preserved correctly.

Also applies to: 30-30, 43-43, 72-72, 81-81, 92-92, 106-106

apps/web/content/articles/bot-free-ai-meeting-assistants.mdx (1)

7-7: All thirteen image URLs correctly migrated with semantic naming.

The bot-free meeting assistants comparison article's comprehensive image set (one cover + twelve tool screenshots) follow the /api/images/blog/bot-free-ai-meeting-assistants/ path with semantically named files (hyprnote.webp, jamie.webp, etc.) matching the reviewed tools. All extensions and alt text are preserved.

Also applies to: 52-52, 90-90, 118-118, 148-148, 180-180, 211-211, 240-240, 269-269, 299-299, 328-328, 357-357, 386-386

apps/web/content/articles/can-you-transcribe-meetings-without-sending-data-to-cloud.mdx (1)

7-7: Both image URLs correctly migrated with proper slug handling.

The article's two images (one cover + one inline) follow the /api/images/blog/can-you-transcribe-meetings-without-sending-data-to-cloud/ path. The lengthy slug with multiple hyphens is handled correctly, and all extensions and alt text are preserved.

Also applies to: 52-52

apps/web/content/articles/meeting-minutes-software.mdx (1)

7-7: URL migration applied consistently across all images.

All image references in this file follow the correct /api/images/blog/meeting-minutes-software/ pattern with preserved filenames and alt text.

Ensure the /api/images/ endpoint is accessible for this article's image path before deployment.

Also applies to: 32-32, 56-56, 107-107, 150-150, 195-195, 239-239, 279-279

apps/web/content/articles/free-transcription-software.mdx (1)

8-8: All image references migrated consistently with proper path structure.

This file contains 13 image migrations across multiple tool reviews. All follow the correct /api/images/blog/free-transcription-software/ pattern with preserved filenames and alt text.

Confirm the /api/images/ endpoint serves all image paths for this article.

Also applies to: 77-77, 98-98, 110-110, 135-135, 143-143, 164-164, 172-172, 199-199, 209-209, 232-232, 244-244, 269-269

apps/web/content/articles/granola-ai-alternatives.mdx (1)

7-7: Image migration pattern consistent across comparison content.

All 9 images (1 cover + 8 inline) correctly migrated to /api/images/blog/granola-ai-alternatives/ with preserved alt attributes.

Confirm endpoint accessibility for the granola-ai-alternatives image path.

Also applies to: 33-33, 44-44, 63-63, 104-104, 135-135, 166-166, 199-199, 234-234

apps/web/content/articles/is-otter-ai-safe.mdx (1)

7-7: Evidence and reference images successfully migrated with correct path structure.

All 10 images (1 cover + 9 inline) in this privacy/lawsuit article correctly migrated to /api/images/blog/is-otter-ai-safe/ with source references preserved in alt text.

Verify all otter-1 through otter-10 images are accessible via the new API paths.

Also applies to: 27-27, 52-52, 60-60, 74-74, 102-102, 110-110, 121-121, 137-137

apps/web/content/articles/how-to-participate-in-meetings-effectively.mdx (1)

8-8: Cover image path updated to internal API endpoint.

The coverImage front-matter correctly migrated to /api/images/blog/how-to-participate-in-meetings-effectively/cover.png. Based on the code excerpt provided, only this one image migration is visible.

If there are additional inline images in this file not shown in the excerpt, ensure they follow the same /api/images/blog/how-to-participate-in-meetings-effectively/ path pattern.

apps/web/content/articles/otter-ai-alternatives.mdx (1)

7-7: Comprehensive image migration across 14-tool comparison article.

This file contains the most extensive migration in the PR: 21 images total (1 cover + 20 inline) for a comprehensive Otter AI alternatives comparison. All correctly migrated to /api/images/blog/otter-ai-alternatives/ with preserved alt text describing each tool.

Confirm all otter-alt-1 through otter-alt-19 images plus cover image are accessible via the new API endpoint.

Also applies to: 51-51, 67-67, 78-78, 85-85, 92-92, 99-99, 130-130, 154-154, 178-178, 207-207, 231-231, 257-257, 283-283, 309-309, 333-333, 359-359, 386-386, 410-410, 438-438

apps/web/content/articles/free-ai-notetakers.mdx (1)

7-7: Large-scale migration for 9-tool review article applied consistently.

This file contains 20 image migrations (1 cover + 19 inline) across reviews of 9 free AI notetaking tools. All images correctly reference /api/images/blog/free-ai-notetakers/free-<n>.webp with preserved alt text.

Verify that all free-1 through free-18 image files exist in the image storage backend and are accessible via the new API endpoint. Confirm there are no filename gaps or duplicates.

Also applies to: 34-34, 52-52, 66-66, 82-82, 95-95, 111-111, 128-128, 145-145, 164-164, 184-184, 201-201, 218-218, 233-233, 251-251, 266-266, 283-283, 296-296, 313-313

apps/web/content/articles/fireflies-ai-alternatives.mdx (1)

7-7: The /api/images/ endpoint is implemented and properly configured.

Image URL migration in this file correctly follows the pattern /api/images/blog/fireflies-ai-alternatives/<filename>. The backend endpoint at apps/web/src/routes/api/images.$.ts successfully handles these requests, proxying to Supabase storage with path sanitization, error handling, and appropriate cache control headers (1-year immutable caching). All referenced images (lines 7, 24, 50, 56, 62, 68, 74, 102, 149, and others) use the correct URL scheme with preserved alt text.

apps/web/content/articles/best-ai-notetaker-for-in-person-meetings.mdx (1)

7-7: Image URL migration pattern is consistent and well-formed.

All image references follow the internal API path convention /api/images/blog/{article}/{filename} with original filenames and alt text preserved. Changes span the coverImage front-matter (line 7) and seven inline images (lines 53, 86, 114, 145, 172, 202, 229).

Also applies to: 53-53, 86-86, 114-114, 145-145, 172-172, 202-202, 229-229

apps/web/content/articles/best-ai-notetaker-for-microsoft-teams.mdx (1)

7-7: Image URL migration follows consistent internal API pattern.

All nine images (coverImage + eight inline) updated to /api/images/blog/best-ai-notetaker-for-microsoft-teams/ paths with original filenames preserved (teams-1.webp through teams-9.webp). Alt text and formatting intact throughout.

Also applies to: 14-14, 43-43, 83-83, 136-136, 166-166, 190-190, 232-232, 278-278, 318-318

apps/web/content/articles/zoom-ai-companion-review.mdx (1)

7-7: Image URL migration maintains pattern with descriptive image naming.

Thirteen images migrated to /api/images/blog/zoom-ai-companion-review/ paths using descriptive naming convention (zoom-alt-1.webp through zoom-alt-13.webp). Filenames and alt text preserved; front-matter and inline references correctly updated throughout.

Also applies to: 45-45, 69-69, 78-78, 87-87, 104-104, 111-111, 118-118, 127-127, 143-143, 153-153, 165-165, 179-179

apps/web/content/articles/best-ai-notetaker-for-zoom.mdx (1)

7-7: Image URL migration completed with consistent numeric naming.

Eleven images updated to /api/images/blog/best-ai-notetaker-for-zoom/ paths (cover.png + zoom-1.webp through zoom-10.webp). URL structure, filenames, and alt text all preserved correctly.

Also applies to: 46-46, 90-90, 132-132, 168-168, 212-212, 250-250, 289-289, 324-324, 359-359, 394-394

apps/web/content/articles/best-ai-notetakers-google-meet.mdx (1)

7-7: Image URL migration follows established internal API pattern.

Eight images updated to /api/images/blog/best-ai-notetakers-google-meet/ paths (cover.png + gmeet-1.webp through gmeet-7.webp). Naming, alt text, and URL structure consistent with prior articles.

Also applies to: 42-42, 84-84, 121-121, 153-153, 186-186, 221-221, 255-255

apps/web/content/articles/ai-meeting-summary-tools.mdx (1)

7-7: Image URL migration completed consistently across all six articles.

Eleven images updated to /api/images/blog/ai-meeting-summary-tools/ paths (cover.png + summary-1.webp through summary-10.webp). All filenames, alt text, and URL structure follow the established internal API convention.

Also applies to: 57-57, 67-67, 105-105, 146-146, 184-184, 226-226, 270-270, 311-311, 353-353, 394-394

@argos-ci
Copy link

argos-ci bot commented Dec 1, 2025

The latest updates on your projects. Learn more about Argos notifications ↗︎

Build Status Details Updated (UTC)
web (Inspect) ⚠️ Changes detected (Review) 1 changed Dec 1, 2025, 2:35 AM

devin-ai-integration bot and others added 3 commits December 1, 2025 01:31
@yujonglee yujonglee closed this Dec 1, 2025
@yujonglee yujonglee deleted the devin/1764552008-supabase-urls-to-proxy branch December 1, 2025 04:09
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