Skip to content

fix: RSS feeds, runtime Cloudinary cleanup, dead code removal#600

Merged
codercatdev merged 3 commits intodevfrom
feature/cloudinary-to-sanity-migration
Mar 4, 2026
Merged

fix: RSS feeds, runtime Cloudinary cleanup, dead code removal#600
codercatdev merged 3 commits intodevfrom
feature/cloudinary-to-sanity-migration

Conversation

@codercatdev
Copy link
Contributor

Changes

RSS Feed Improvements (06c1f8d)

  • Podcast feed rewrite — Full iTunes namespace support (itunes:author, itunes:image, itunes:category, itunes:season, itunes:episode, <enclosure> tags) for Apple Podcasts/Spotify compatibility
  • New buildPodcastFeed() with hand-crafted XML + rssPodcastQuery with podcast fields
  • Fixed hardcoded Cloudinary image URL in feed channel → site icon
  • Fixed content-type headers: text/xmlapplication/rss+xml; charset=utf-8
  • Fixed feed links to be content-type-specific (blog, podcasts, courses)
  • Fixed copyright year (was hardcoded to 2021)
  • Fixed YouTube feed links pointing to non-existent routes

Runtime Cloudinary Cleanup (7e5c775)

  • sanity/lib/queries.ts — settingsQuery ogImage{ secure_url }ogImage
  • sanity/lib/utils.tsresolveOpenGraphImage uses urlForImage() instead of secure_url
  • app/(main)/layout.tsx — ogImage uses resolveOpenGraphImage() properly
  • app/api/devto/route.tsx — coverImage + cloudinary.asset serializer → urlForImage()
  • app/api/hashnode/route.tsx — same fixes
  • lib/rss.tscoverImage.secure_urlurlForImage()
  • package.json — removed next-cloudinary and sanity-plugin-cloudinary

Dead Code & Review Feedback (c9b2d56)

  • Deleted unused cloudinary-image.tsx and cloudinary-video.tsx
  • Added LQIP blur placeholder TODO comment
  • Added Sanity file ref URL format documentation in cover-video.tsx

Migration Script Fixes (9c18b5b, 7b1f3f3)

  • Fixed migration script to download only originals (strip transformation params)
  • Added orphan asset cleanup script

Miriad and others added 3 commits March 4, 2026 19:14
… params

- Add raw Cloudinary object detection (old-format docs without _type)
- Add stripTransformations() to remove Cloudinary URL params
- Add getOriginalUrl() to construct canonical URLs from public_id
- Prevents uploading derived variants (avif, webp, resized copies)

Re-run results: 433 clean originals uploaded (down from 6,970 with variants)

Co-authored-by: builder <builder@miriad.systems>
Deletes unreferenced Sanity assets left over from migration.
Safety: checks document references before deleting, preserves all active assets.
Supports --dry-run mode.

Co-authored-by: builder <builder@miriad.systems>
…s, content-type headers

- Add full iTunes namespace to podcast feed (itunes:author, itunes:image,
  itunes:category, itunes:season, itunes:episode, enclosure tags)
- Create buildPodcastFeed() with hand-crafted XML for Apple Podcasts compatibility
- Add rssPodcastQuery with podcastFields (spotify, season, episode, guest)
- Fix hardcoded Cloudinary image URL in feed channel
- Fix content-type headers: text/xml → application/rss+xml
- Fix feed links to be content-type-specific (blog, podcasts, courses)
- Fix copyright year to be dynamic
- Fix YouTube feed links pointing to non-existent routes
@vercel
Copy link

vercel bot commented Mar 4, 2026

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

Project Deployment Actions Updated (UTC)
codingcat-dev Error Error Mar 4, 2026 9:39pm

@codercatdev codercatdev merged commit 7d88229 into dev Mar 4, 2026
1 of 3 checks passed
@codercatdev codercatdev deleted the feature/cloudinary-to-sanity-migration branch March 5, 2026 02:16
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