-
Notifications
You must be signed in to change notification settings - Fork 432
refactor: replace Supabase image URLs with proxy endpoint in articles #2021
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Co-Authored-By: john@hyprnote.com <john@hyprnote.com>
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
✅ Deploy Preview for hyprnote-storybook ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
📝 WalkthroughWalkthroughRewrote image asset references across many MDX blog articles: replaced external Supabase/storage URLs with internal /api/images/blog/[slug]/... paths in front-matter Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes
Possibly related PRs
Suggested reviewers
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (2)
⏰ 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)
Comment |
✅ Deploy Preview for hyprnote ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
There was a problem hiding this 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
📒 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.tsxwith 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
coverImagehas been updated from an external Supabase URL to the internal/api/images/blog/using-ide-for-writing/cover.pngpath, 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
coverImageand all 5 inline images have been updated to use the/api/images/blog/fathom-ai-alternatives/prefix. The image filenames (fathom-1.webpthroughfathom-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
.webpfiles).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.webpthroughsales-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.webpthroughenterprise-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.webpthroughtldv-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.webpthroughauto-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>.webpwith 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 atapps/web/src/routes/api/images.$.tssuccessfully 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
apps/web/content/articles/best-ai-meeting-assistant-for-taking-notes.mdx
Outdated
Show resolved
Hide resolved
apps/web/content/articles/best-ai-meeting-assistant-for-taking-notes.mdx
Outdated
Show resolved
Hide resolved
|
The latest updates on your projects. Learn more about Argos notifications ↗︎
|
Co-Authored-By: john@hyprnote.com <john@hyprnote.com>
…base-urls-to-proxy
Co-Authored-By: john@hyprnote.com <john@hyprnote.com>
Summary
Replaces all Supabase storage URLs in the
content/articlesfolder with the/api/images/proxy endpoint. This change affects 39 MDX files, converting URLs fromhttps://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
best-ai-meeting-assistant-for-taking-notes.mdxthat would have caused 404s through the proxy (the proxy'ssanitizePathfunction rejects empty path segments)coverImagevalue inbest-ai-meeting-assistant-for-taking-notes.mdxfrontmatter for valid YAMLotter-ai-review.mdxby replacing genericalt="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
coverImagefrontmatter fields work correctly with the new relative paths (especially the quoted value inbest-ai-meeting-assistant-for-taking-notes.mdx)otter-ai-review.mdxaccurately reflects the image contentRecommended 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-noteswhich had the most malformed URLs.Notes