[codex] Refresh blog social images#606
Conversation
📝 WalkthroughWalkthroughThis PR systematically updates blog post frontmatter across German, English, and Spanish language directories by converting all Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
d580fd9 to
ba05050
Compare
There was a problem hiding this comment.
Actionable comments posted: 3
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
apps/web/src/content/blog/es/developing-cross-platform-apps-with-capacitorjs.md.md (1)
1-1:⚠️ Potential issue | 🔴 Critical | ⚡ Quick winCritical: Double file extension in filename.
The file is named
developing-cross-platform-apps-with-capacitorjs.md.mdwith a double.mdextension. This will likely break file resolution, routing, or build processes in the web framework. The file should be renamed to use a single.mdextension.🔧 Required fix
Rename the file from:
apps/web/src/content/blog/es/developing-cross-platform-apps-with-capacitorjs.md.mdTo:
apps/web/src/content/blog/es/developing-cross-platform-apps-with-capacitorjs.md🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@apps/web/src/content/blog/es/developing-cross-platform-apps-with-capacitorjs.md.md` at line 1, The file has a double ".md.md" extension; rename the file `developing-cross-platform-apps-with-capacitorjs.md.md` to `developing-cross-platform-apps-with-capacitorjs.md` and update any references/imports/routes that point to `developing-cross-platform-apps-with-capacitorjs.md.md` (search the repo for that exact filename) so the web content loader and routing use the single-extension filename instead.
🧹 Nitpick comments (1)
apps/web/src/content/blog/en/optimise-your-images-for-updates.md (1)
12-13: Consider updating the alt text to more accurately reflect the image.The corrected image path is valid, but the
head_image_alttext still references "Convert to webp illustration" which may not accurately describe theimage-optimization-updates.jpgasset.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@apps/web/src/content/blog/en/optimise-your-images-for-updates.md` around lines 12 - 13, The frontmatter's head_image_alt value ("Convert to webp illustration") likely doesn't match the head_image asset; update the head_image_alt field to a concise, accurate description of the actual image in the page frontmatter (the head_image_alt metadata paired with head_image), e.g., describe the scene/subject and purpose in a short phrase for accessibility and SEO, keeping it non-decorative and specific.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@apps/web/src/content/blog/de/alternative-to-appflow.md`:
- Line 13: Update the remaining blog frontmatter head_image fields that still
reference .webp to use .jpg so they match the change in this PR; open each
affected file (notably the frontmatter key head_image in the files listed:
apps/web/src/content/blog/en/why-app-reviews-ratings-matter.md,
how-to-pass-app-store-review-iap.md, how-to-keep-capgo-updates-lean-and-fast.md,
how-capgo-channel-switching-works.md, and first-time-app-review-guide.md) and
change the filename extension from .webp to .jpg (e.g., head_image:
/something.webp -> head_image: /something.jpg).
In `@apps/web/src/content/blog/es/create-react-mobile-apps-with-capacitor.md`:
- Line 12: The OG image MIME type is hardcoded to image/webp in
apps/web/src/services/meta.ts while some posts (e.g., head_image =
/react_capacitor.jpg) are JPEGs; update the meta generation function (the
function that emits og:image:type / the OpenGraph meta builder in meta.ts) to
detect the head_image file extension (or infer MIME from the image path/string)
and output the correct MIME type (image/jpeg, image/png, image/webp, etc.)
instead of always image/webp; locate the code that writes og:image:type and
replace the constant with a small mapper/utility that returns the proper MIME
for the head_image value (fallback to image/jpeg or image/* if unknown).
In
`@apps/web/src/content/blog/es/developing-cross-platform-apps-with-capacitorjs.md.md`:
- Line 14: Several blog files are mistakenly named with a double extension
"developing-cross-platform-apps-with-capacitorjs.md.md"; rename each file to
remove the extra ".md" so the filename becomes
"developing-cross-platform-apps-with-capacitorjs.md", and update any internal
references/links that point to the old double-extension names (check templates
or content lists that reference the localized variants). Ensure the eight
localized copies (the ones sharing the base name
"developing-cross-platform-apps-with-capacitorjs.md.md") are all renamed and
that the new single-.md names are committed so assets like "head_image:
/create_app_with_js.jpg" resolve correctly.
---
Outside diff comments:
In
`@apps/web/src/content/blog/es/developing-cross-platform-apps-with-capacitorjs.md.md`:
- Line 1: The file has a double ".md.md" extension; rename the file
`developing-cross-platform-apps-with-capacitorjs.md.md` to
`developing-cross-platform-apps-with-capacitorjs.md` and update any
references/imports/routes that point to
`developing-cross-platform-apps-with-capacitorjs.md.md` (search the repo for
that exact filename) so the web content loader and routing use the
single-extension filename instead.
---
Nitpick comments:
In `@apps/web/src/content/blog/en/optimise-your-images-for-updates.md`:
- Around line 12-13: The frontmatter's head_image_alt value ("Convert to webp
illustration") likely doesn't match the head_image asset; update the
head_image_alt field to a concise, accurate description of the actual image in
the page frontmatter (the head_image_alt metadata paired with head_image), e.g.,
describe the scene/subject and purpose in a short phrase for accessibility and
SEO, keeping it non-decorative and specific.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: a701ae59-d66f-4573-9726-883336d1371b
⛔ Files ignored due to path filters (63)
apps/web/public/CI_CD_in_Gitlab.jpgis excluded by!**/*.jpgapps/web/public/Codemagic_ios.jpgis excluded by!**/*.jpgapps/web/public/android-16kb-page-size-capacitor-plugins.jpgis excluded by!**/*.jpgapps/web/public/android_app_gitlab.jpgis excluded by!**/*.jpgapps/web/public/android_talkback.jpgis excluded by!**/*.jpgapps/web/public/angular_capacitor.jpgis excluded by!**/*.jpgapps/web/public/app_center.jpgis excluded by!**/*.jpgapps/web/public/appflow_alt.jpgis excluded by!**/*.jpgapps/web/public/apple_appstore.jpgis excluded by!**/*.jpgapps/web/public/bolt_capacitor.jpgis excluded by!**/*.jpgapps/web/public/build_list.jpgis excluded by!**/*.jpgapps/web/public/bypass_illustration.jpgis excluded by!**/*.jpgapps/web/public/capacitor-5-update.jpgis excluded by!**/*.jpgapps/web/public/capacitor-guide.jpgis excluded by!**/*.jpgapps/web/public/capgo-2025-recap-blog-post-img.jpgis excluded by!**/*.jpgapps/web/public/capgo-birth-story.jpgis excluded by!**/*.jpgapps/web/public/capgo-feature-image.jpgis excluded by!**/*.jpgapps/web/public/capgo_banner.jpgis excluded by!**/*.jpgapps/web/public/capgo_birth.jpgis excluded by!**/*.jpgapps/web/public/capgo_ci-cd-illustration.jpgis excluded by!**/*.jpgapps/web/public/capgo_select_update.jpgis excluded by!**/*.jpgapps/web/public/cordova.jpgis excluded by!**/*.jpgapps/web/public/create_app_with_js.jpgis excluded by!**/*.jpgapps/web/public/cross-platform-app-dev-2024.jpgis excluded by!**/*.jpgapps/web/public/deeplink_next_capacitor.jpgis excluded by!**/*.jpgapps/web/public/enable-ios-developer-mode-ios16.jpgis excluded by!**/*.jpgapps/web/public/expo_alternative.jpgis excluded by!**/*.jpgapps/web/public/fastlane_android.jpgis excluded by!**/*.jpgapps/web/public/fastlane_ios.jpgis excluded by!**/*.jpgapps/web/public/github_actions.jpgis excluded by!**/*.jpgapps/web/public/gitlab_ci.jpgis excluded by!**/*.jpgapps/web/public/image-optimization-updates.jpgis excluded by!**/*.jpgapps/web/public/lovable_capacitor.jpgis excluded by!**/*.jpgapps/web/public/migrate_appcenter.jpgis excluded by!**/*.jpgapps/web/public/migrating-cordova-to-capacitor.jpgis excluded by!**/*.jpgapps/web/public/native_app_look.jpgis excluded by!**/*.jpgapps/web/public/next_capgo.jpgis excluded by!**/*.jpgapps/web/public/nuxt_capgo.jpgis excluded by!**/*.jpgapps/web/public/open_source_licence.jpgis excluded by!**/*.jpgapps/web/public/open_source_main.jpgis excluded by!**/*.jpgapps/web/public/organization_system_blog.jpgis excluded by!**/*.jpgapps/web/public/playstore.jpgis excluded by!**/*.jpgapps/web/public/push_notif.jpgis excluded by!**/*.jpgapps/web/public/quasar_capgo.jpgis excluded by!**/*.jpgapps/web/public/rapido_cloud_study_case.jpgis excluded by!**/*.jpgapps/web/public/react_capacitor.jpgis excluded by!**/*.jpgapps/web/public/react_native_vs_react_capacitor.jpgis excluded by!**/*.jpgapps/web/public/revenuecat_iap.jpgis excluded by!**/*.jpgapps/web/public/secure_upload.jpgis excluded by!**/*.jpgapps/web/public/self-hosted-capgo.jpgis excluded by!**/*.jpgapps/web/public/self_hosted.jpgis excluded by!**/*.jpgapps/web/public/social_login_plugin_blog.jpgis excluded by!**/*.jpgapps/web/public/stripe_apple.jpgis excluded by!**/*.jpgapps/web/public/supabase_social_login.jpgis excluded by!**/*.jpgapps/web/public/sveltekit_capacitor.jpgis excluded by!**/*.jpgapps/web/public/update_flow.jpgis excluded by!**/*.jpgapps/web/public/usage_explained.jpgis excluded by!**/*.jpgapps/web/public/versioning.jpgis excluded by!**/*.jpgapps/web/public/voltbuilder_alt.jpgis excluded by!**/*.jpgapps/web/public/vue_angular_react.jpgis excluded by!**/*.jpgapps/web/public/vue_capacitor.jpgis excluded by!**/*.jpgapps/web/public/what-is-cordova-phone-gap.jpgis excluded by!**/*.jpgapps/web/public/xcode_cloud.jpgis excluded by!**/*.jpg
📒 Files selected for processing (237)
apps/web/public/CI_CD_in_Gitlab.webpapps/web/public/Codemagic_ios.webpapps/web/public/andriod_app_gitlab.webpapps/web/public/android-16kb-page-size-capacitor-plugins.webpapps/web/public/android_app_gitlab.webpapps/web/public/android_talkback.webpapps/web/public/angular_capacitor.webpapps/web/public/app_center.webpapps/web/public/appflow_alt.webpapps/web/public/apple_appstore.webpapps/web/public/bolt_capacitor.webpapps/web/public/bypass_illustration.webpapps/web/public/capacitor-5-update.webpapps/web/public/capacitor-guide.webpapps/web/public/capgo-2025-recap-blog-post-img.webpapps/web/public/capgo-birth-story.webpapps/web/public/capgo-feature-image.webpapps/web/public/capgo_birth.webpapps/web/public/capgo_ci-cd-illustration.webpapps/web/public/capgo_select_update.webpapps/web/public/convert.jpg.webp.webpapps/web/public/cordova.webpapps/web/public/create_app_with_js.webpapps/web/public/cross-platform-app-dev-2024.webpapps/web/public/deeplink_next_capacitor.webpapps/web/public/enable-ios-developer-mode-ios16.webpapps/web/public/expo_alternative.webpapps/web/public/fastlane_android.webpapps/web/public/fastlane_ios.webpapps/web/public/github_actions.webpapps/web/public/gitlab_ci.webpapps/web/public/lovable_capacitor.webpapps/web/public/migrate_appcenter.webpapps/web/public/migrating-cordova-to-capacitor.webpapps/web/public/native_app_look.webpapps/web/public/next_capgo.webpapps/web/public/nuxt_capgo.webpapps/web/public/open_source_licence.webpapps/web/public/open_source_main.webpapps/web/public/organization_system_blog.webpapps/web/public/playstore.webpapps/web/public/push_notif.webpapps/web/public/quasar_capgo.webpapps/web/public/rapido_cloud_study_case.webpapps/web/public/react_capacitor.webpapps/web/public/react_native_vs_react_capacitor.webpapps/web/public/revenuecat_iap.webpapps/web/public/secure_upload.webpapps/web/public/self-hosted-capgo.webpapps/web/public/self_hosted.webpapps/web/public/social_login_plugin_blog.webpapps/web/public/stripe_apple.webpapps/web/public/supabase_social_login.webpapps/web/public/sveltekit_capacitor.webpapps/web/public/update_flow.webpapps/web/public/usage_explained.webpapps/web/public/versioning.webpapps/web/public/versionning.webpapps/web/public/voltbuilder_alt.webpapps/web/public/vue_angular_react.webpapps/web/public/vue_capacitor.webpapps/web/public/what-is-cordova-phone-gap.webpapps/web/public/xcode_cloud.webpapps/web/src/content/blog/de/a-brand-new-organization-system.mdapps/web/src/content/blog/de/alternative-to-appflow.mdapps/web/src/content/blog/de/alternative-to-expo.mdapps/web/src/content/blog/de/alternative-to-voltbuilder.mdapps/web/src/content/blog/de/android-16kb-page-size-capacitor-plugins.mdapps/web/src/content/blog/de/angular-mobile-app-capacitor.mdapps/web/src/content/blog/de/appcenter-migration.mdapps/web/src/content/blog/de/appflow-shutdown-alternative.mdapps/web/src/content/blog/de/automatic-build-and-release-with-github-actions.mdapps/web/src/content/blog/de/automatic-build-and-release-with-gitlab.mdapps/web/src/content/blog/de/automatic-capacitor-android-build-github-action.mdapps/web/src/content/blog/de/automatic-capacitor-android-build-gitlab.mdapps/web/src/content/blog/de/automatic-capacitor-ios-build-codemagic.mdapps/web/src/content/blog/de/automatic-capacitor-ios-build-github-action-with-match.mdapps/web/src/content/blog/de/automatic-capacitor-ios-build-github-action.mdapps/web/src/content/blog/de/basic-js-css-config-for-native-app-look.mdapps/web/src/content/blog/de/birth-of-capgo-revolutionizing-capacitor-app-updates.mdapps/web/src/content/blog/de/building-a-native-mobile-app-with-nextjs-and-capacitor.mdapps/web/src/content/blog/de/capacitor-comprehensive-guide.mdapps/web/src/content/blog/de/capacitor-social-login-release.mdapps/web/src/content/blog/de/capgo-price-reduction.mdapps/web/src/content/blog/de/capgo-purpose.mdapps/web/src/content/blog/de/comparing-react-native-vs-capacitor.mdapps/web/src/content/blog/de/cordova-hybrid-app-development.mdapps/web/src/content/blog/de/create-offline-screen-in-vue-angular-react.mdapps/web/src/content/blog/de/create-react-mobile-apps-with-capacitor.mdapps/web/src/content/blog/de/creating-mobile-apps-with-react-and-capacitor.mdapps/web/src/content/blog/de/creating-mobile-apps-with-sveltekit-and-capacitor.mdapps/web/src/content/blog/de/cross-platform-mobile-app-development-guide-2024.mdapps/web/src/content/blog/de/developing-cross-platform-apps-with-capacitorjs.md.mdapps/web/src/content/blog/de/do-apple-allow-live-updates.mdapps/web/src/content/blog/de/do-capgo-work-for-cordova.mdapps/web/src/content/blog/de/do-google-allow-live-updates.mdapps/web/src/content/blog/de/enable-ios-developer-mode-ios16.mdapps/web/src/content/blog/de/how-capgo-is-born.mdapps/web/src/content/blog/de/how-live-updates-for-capacitor-work.mdapps/web/src/content/blog/de/how-to-build-capacitor-app-in-xcode-cloud.mdapps/web/src/content/blog/de/how-to-bypass-app-store-review.mdapps/web/src/content/blog/de/how-to-release-major-version-in-capgo.mdapps/web/src/content/blog/de/how-to-segment-users-by-plan-and-channels.mdapps/web/src/content/blog/de/how-to-send-specific-version-to-users.mdapps/web/src/content/blog/de/how-version-work-in-capgo.mdapps/web/src/content/blog/de/how-your-usage-is-counted.mdapps/web/src/content/blog/de/in-app-purchases-capacitor.mdapps/web/src/content/blog/de/integrate-universal-links-capacitor-nextjs.mdapps/web/src/content/blog/de/introducing-end-to-end-security-to-capacitor-updater-with-code-signing.mdapps/web/src/content/blog/de/ionic-capacitor-push-notifications-firebase.mdapps/web/src/content/blog/de/manage-dev-and-prod-build-with-github-actions.mdapps/web/src/content/blog/de/migrating-cordova-to-capacitor.mdapps/web/src/content/blog/de/moving-from-microsoft-app-center-to-capgo.mdapps/web/src/content/blog/de/open-source-licence.mdapps/web/src/content/blog/de/open-source.mdapps/web/src/content/blog/de/optimise-your-images-for-updates.mdapps/web/src/content/blog/de/quasar-mobile-app-capacitor.mdapps/web/src/content/blog/de/self-hosted-capgo.mdapps/web/src/content/blog/de/self-hosted-live-updates.mdapps/web/src/content/blog/de/setup-ci-and-cd-in-gitlab.mdapps/web/src/content/blog/de/setup-stripe-payment-in-us-capacitor.mdapps/web/src/content/blog/de/turn-off-android-talkback.mdapps/web/src/content/blog/de/update-your-capacitor-apps-seamlessly-using-capacitor-updater.mdapps/web/src/content/blog/de/updating-from-capacitor-4-to-capacitor-5.mdapps/web/src/content/blog/de/vue-mobile-app-capacitor.mdapps/web/src/content/blog/en/a-brand-new-organization-system.mdapps/web/src/content/blog/en/alternative-to-appflow.mdapps/web/src/content/blog/en/alternative-to-expo.mdapps/web/src/content/blog/en/alternative-to-voltbuilder.mdapps/web/src/content/blog/en/android-16kb-page-size-capacitor-plugins.mdapps/web/src/content/blog/en/angular-mobile-app-capacitor.mdapps/web/src/content/blog/en/app-store-age-ratings-guide.mdapps/web/src/content/blog/en/appcenter-migration.mdapps/web/src/content/blog/en/appflow-shutdown-alternative.mdapps/web/src/content/blog/en/automatic-build-and-release-with-github-actions.mdapps/web/src/content/blog/en/automatic-build-and-release-with-gitlab.mdapps/web/src/content/blog/en/automatic-capacitor-android-build-github-action.mdapps/web/src/content/blog/en/automatic-capacitor-android-build-gitlab.mdapps/web/src/content/blog/en/automatic-capacitor-ios-build-codemagic.mdapps/web/src/content/blog/en/automatic-capacitor-ios-build-github-action-with-match.mdapps/web/src/content/blog/en/automatic-capacitor-ios-build-github-action.mdapps/web/src/content/blog/en/basic-js-css-config-for-native-app-look.mdapps/web/src/content/blog/en/birth-of-capgo-revolutionizing-capacitor-app-updates.mdapps/web/src/content/blog/en/build-ios-app-from-windows-capacitor-capgo-build.mdapps/web/src/content/blog/en/building-a-native-mobile-app-with-nextjs-and-capacitor.mdapps/web/src/content/blog/en/building-a-native-mobile-app-with-nuxt-and-capacitor.mdapps/web/src/content/blog/en/capacitor-ai-mobile-apps.mdapps/web/src/content/blog/en/capacitor-comprehensive-guide.mdapps/web/src/content/blog/en/capacitor-edge-to-edge-display-native-config.mdapps/web/src/content/blog/en/capacitor-social-login-release.mdapps/web/src/content/blog/en/capgo-2025-year-in-review.mdapps/web/src/content/blog/en/capgo-price-reduction.mdapps/web/src/content/blog/en/capgo-purpose.mdapps/web/src/content/blog/en/comparing-react-native-vs-capacitor.mdapps/web/src/content/blog/en/cordova-hybrid-app-development.mdapps/web/src/content/blog/en/create-offline-screen-in-vue-angular-react.mdapps/web/src/content/blog/en/create-react-mobile-apps-with-capacitor.mdapps/web/src/content/blog/en/creating-mobile-apps-with-react-and-capacitor.mdapps/web/src/content/blog/en/creating-mobile-apps-with-sveltekit-and-capacitor.mdapps/web/src/content/blog/en/cross-platform-mobile-app-development-guide-2024.mdapps/web/src/content/blog/en/developing-cross-platform-apps-with-capacitorjs.md.mdapps/web/src/content/blog/en/do-apple-allow-live-updates.mdapps/web/src/content/blog/en/do-capgo-work-for-cordova.mdapps/web/src/content/blog/en/do-google-allow-live-updates.mdapps/web/src/content/blog/en/enable-ios-developer-mode-ios16.mdapps/web/src/content/blog/en/how-I-manage-semantic-release-with-CapGo-CapacitorUpdater.mdapps/web/src/content/blog/en/how-capgo-is-born.mdapps/web/src/content/blog/en/how-live-updates-for-capacitor-work.mdapps/web/src/content/blog/en/how-to-build-capacitor-app-in-xcode-cloud.mdapps/web/src/content/blog/en/how-to-bypass-app-store-review.mdapps/web/src/content/blog/en/how-to-release-major-version-in-capgo.mdapps/web/src/content/blog/en/how-to-segment-users-by-plan-and-channels.mdapps/web/src/content/blog/en/how-to-send-specific-version-to-users.mdapps/web/src/content/blog/en/how-version-work-in-capgo.mdapps/web/src/content/blog/en/how-your-usage-is-counted.mdapps/web/src/content/blog/en/in-app-purchases-capacitor.mdapps/web/src/content/blog/en/integrate-universal-links-capacitor-nextjs.mdapps/web/src/content/blog/en/introducing-capgo-cloud-build.mdapps/web/src/content/blog/en/introducing-end-to-end-security-to-capacitor-updater-with-code-signing.mdapps/web/src/content/blog/en/ionic-capacitor-push-notifications-firebase.mdapps/web/src/content/blog/en/live-updates-for-flutter-app.mdapps/web/src/content/blog/en/manage-dev-and-prod-build-with-github-actions.mdapps/web/src/content/blog/en/migrating-cordova-to-capacitor.mdapps/web/src/content/blog/en/moving-from-microsoft-app-center-to-capgo.mdapps/web/src/content/blog/en/nextjs-mobile-app-capacitor-from-scratch.mdapps/web/src/content/blog/en/nuxt-mobile-app-capacitor-from-scratch.mdapps/web/src/content/blog/en/open-source-licence.mdapps/web/src/content/blog/en/open-source.mdapps/web/src/content/blog/en/optimise-your-images-for-updates.mdapps/web/src/content/blog/en/quasar-mobile-app-capacitor.mdapps/web/src/content/blog/en/self-hosted-capgo.mdapps/web/src/content/blog/en/self-hosted-live-updates.mdapps/web/src/content/blog/en/setup-ci-and-cd-in-gitlab.mdapps/web/src/content/blog/en/setup-stripe-payment-in-us-capacitor.mdapps/web/src/content/blog/en/setup-supabase-with-capacitor-social-login.mdapps/web/src/content/blog/en/staging-environments-with-capgo-channels.mdapps/web/src/content/blog/en/transform-bolt-new-app-to-mobile-with-capacitor.mdapps/web/src/content/blog/en/transform-lovable-dev-app-to-mobile-with-capacitor.mdapps/web/src/content/blog/en/transform-pwa-to-native-app-with-capacitor.mdapps/web/src/content/blog/en/turn-every-pr-into-installable-preview.mdapps/web/src/content/blog/en/turn-off-android-talkback.mdapps/web/src/content/blog/en/update-your-capacitor-apps-seamlessly-using-capacitor-updater.mdapps/web/src/content/blog/en/updating-from-capacitor-4-to-capacitor-5.mdapps/web/src/content/blog/en/vue-mobile-app-capacitor.mdapps/web/src/content/blog/en/xcode-26-requirement-for-capacitor-apps.mdapps/web/src/content/blog/es/a-brand-new-organization-system.mdapps/web/src/content/blog/es/alternative-to-appflow.mdapps/web/src/content/blog/es/alternative-to-expo.mdapps/web/src/content/blog/es/alternative-to-voltbuilder.mdapps/web/src/content/blog/es/android-16kb-page-size-capacitor-plugins.mdapps/web/src/content/blog/es/angular-mobile-app-capacitor.mdapps/web/src/content/blog/es/appcenter-migration.mdapps/web/src/content/blog/es/appflow-shutdown-alternative.mdapps/web/src/content/blog/es/automatic-build-and-release-with-github-actions.mdapps/web/src/content/blog/es/automatic-build-and-release-with-gitlab.mdapps/web/src/content/blog/es/automatic-capacitor-android-build-github-action.mdapps/web/src/content/blog/es/automatic-capacitor-android-build-gitlab.mdapps/web/src/content/blog/es/automatic-capacitor-ios-build-codemagic.mdapps/web/src/content/blog/es/automatic-capacitor-ios-build-github-action-with-match.mdapps/web/src/content/blog/es/automatic-capacitor-ios-build-github-action.mdapps/web/src/content/blog/es/basic-js-css-config-for-native-app-look.mdapps/web/src/content/blog/es/birth-of-capgo-revolutionizing-capacitor-app-updates.mdapps/web/src/content/blog/es/building-a-native-mobile-app-with-nextjs-and-capacitor.mdapps/web/src/content/blog/es/capacitor-comprehensive-guide.mdapps/web/src/content/blog/es/capacitor-social-login-release.mdapps/web/src/content/blog/es/capgo-price-reduction.mdapps/web/src/content/blog/es/capgo-purpose.mdapps/web/src/content/blog/es/comparing-react-native-vs-capacitor.mdapps/web/src/content/blog/es/cordova-hybrid-app-development.mdapps/web/src/content/blog/es/create-offline-screen-in-vue-angular-react.mdapps/web/src/content/blog/es/create-react-mobile-apps-with-capacitor.mdapps/web/src/content/blog/es/creating-mobile-apps-with-react-and-capacitor.mdapps/web/src/content/blog/es/creating-mobile-apps-with-sveltekit-and-capacitor.mdapps/web/src/content/blog/es/cross-platform-mobile-app-development-guide-2024.mdapps/web/src/content/blog/es/developing-cross-platform-apps-with-capacitorjs.md.mdapps/web/src/content/blog/es/do-apple-allow-live-updates.mdapps/web/src/content/blog/es/do-capgo-work-for-cordova.md
| created_at: 2022-03-02T00:00:00.000Z | ||
| updated_at: 2026-04-08T14:34:13.000Z | ||
| head_image: /appflow_alt.webp | ||
| head_image: /appflow_alt.jpg |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Description: Search for any remaining .webp references in blog post head_image frontmatter
echo "Searching for remaining .webp head_image references in blog posts..."
# Search for head_image: lines containing .webp in blog content directories
rg -n --type=md -g 'apps/web/src/content/blog/**/*.md' '^head_image:.*\.webp' || echo "✅ No .webp head_image references found"
echo ""
echo "Note: This search excludes in-body image references, which should be preserved per PR objectives."Repository: Cap-go/website
Length of output: 794
Update remaining blog post head_image references from WebP to JPG format.
Verification found 5 additional blog posts with .webp head_image references that need to be updated to match the format applied in this PR:
- apps/web/src/content/blog/en/why-app-reviews-ratings-matter.md (line 10)
- apps/web/src/content/blog/en/how-to-pass-app-store-review-iap.md (line 10)
- apps/web/src/content/blog/en/how-to-keep-capgo-updates-lean-and-fast.md (line 13)
- apps/web/src/content/blog/en/how-capgo-channel-switching-works.md (line 10)
- apps/web/src/content/blog/en/first-time-app-review-guide.md (line 10)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@apps/web/src/content/blog/de/alternative-to-appflow.md` at line 13, Update
the remaining blog frontmatter head_image fields that still reference .webp to
use .jpg so they match the change in this PR; open each affected file (notably
the frontmatter key head_image in the files listed:
apps/web/src/content/blog/en/why-app-reviews-ratings-matter.md,
how-to-pass-app-store-review-iap.md, how-to-keep-capgo-updates-lean-and-fast.md,
how-capgo-channel-switching-works.md, and first-time-app-review-guide.md) and
change the filename extension from .webp to .jpg (e.g., head_image:
/something.webp -> head_image: /something.jpg).
| created_at: 2023-02-21T00:00:00.000Z | ||
| updated_at: 2026-04-08T14:34:13.000Z | ||
| head_image: /react_capacitor.webp | ||
| head_image: /react_capacitor.jpg |
There was a problem hiding this comment.
head_image now points to JPG, but OG type is still hardcoded to WebP globally.
This post now uses /react_capacitor.jpg (Line 12), while apps/web/src/services/meta.ts still emits og:image:type = image/webp (Line 16). That mismatch can break/soft-fail social preview parsing for refreshed cards.
Suggested fix in apps/web/src/services/meta.ts
export function createMetaImage(image: string | null = null, title: string | null = null): Meta[] {
if (image) {
const image_unsecure = image.replace('https://', 'http://')
const titleFix = title || (image.split('/').pop() || '.').split('.')[0]
+ const ext = (image.split('.').pop() || '').toLowerCase()
+ const mimeByExt: Record<string, string> = {
+ jpg: 'image/jpeg',
+ jpeg: 'image/jpeg',
+ webp: 'image/webp',
+ png: 'image/png',
+ gif: 'image/gif',
+ avif: 'image/avif',
+ }
+ const imageType = mimeByExt[ext] ?? 'image/jpeg'
return [
{
hid: 'og:image:alt',
property: 'og:image:alt',
content: titleFix,
},
{
hid: 'og:image:type',
property: 'og:image:type',
- content: 'image/webp',
+ content: imageType,
},
{
hid: 'og:image',
property: 'og:image',
content: image_unsecure,
},🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@apps/web/src/content/blog/es/create-react-mobile-apps-with-capacitor.md` at
line 12, The OG image MIME type is hardcoded to image/webp in
apps/web/src/services/meta.ts while some posts (e.g., head_image =
/react_capacitor.jpg) are JPEGs; update the meta generation function (the
function that emits og:image:type / the OpenGraph meta builder in meta.ts) to
detect the head_image file extension (or infer MIME from the image path/string)
and output the correct MIME type (image/jpeg, image/png, image/webp, etc.)
instead of always image/webp; locate the code that writes og:image:type and
replace the constant with a small mapper/utility that returns the proper MIME
for the head_image value (fallback to image/jpeg or image/* if unknown).
| created_at: 2023-12-02T00:00:00.000Z | ||
| updated_at: 2026-04-08T14:34:13.000Z | ||
| head_image: /create_app_with_js.webp | ||
| head_image: /create_app_with_js.jpg |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Description: Verify JPG asset exists and check for double extension issues
echo "=== Checking if new JPG asset exists ==="
# Check for the JPG file in common static asset directories
fd -t f "create_app_with_js.jpg" apps/web/
echo -e "\n=== Checking for blog files with double .md.md extension ==="
# Find any blog markdown files with double extension
fd -e "md.md" -t f . apps/web/src/content/blog/
echo -e "\n=== Checking for old WebP reference (should be removed) ==="
# Search for any remaining references to the old WebP file
rg -n "create_app_with_js\.webp" apps/web/src/content/blog/Repository: Cap-go/website
Length of output: 925
Fix double .md.md extension across 8 blog files.
The new JPG asset (/create_app_with_js.jpg) is correctly placed and the old WebP reference has been removed. However, this file and 7 other language versions have an incorrect double extension: .md.md should be .md. Affected files:
apps/web/src/content/blog/de/developing-cross-platform-apps-with-capacitorjs.md.mdapps/web/src/content/blog/en/developing-cross-platform-apps-with-capacitorjs.md.mdapps/web/src/content/blog/es/developing-cross-platform-apps-with-capacitorjs.md.mdapps/web/src/content/blog/fr/developing-cross-platform-apps-with-capacitorjs.md.mdapps/web/src/content/blog/id/developing-cross-platform-apps-with-capacitorjs.md.mdapps/web/src/content/blog/it/developing-cross-platform-apps-with-capacitorjs.md.mdapps/web/src/content/blog/ja/developing-cross-platform-apps-with-capacitorjs.md.mdapps/web/src/content/blog/ko/developing-cross-platform-apps-with-capacitorjs.md.md
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@apps/web/src/content/blog/es/developing-cross-platform-apps-with-capacitorjs.md.md`
at line 14, Several blog files are mistakenly named with a double extension
"developing-cross-platform-apps-with-capacitorjs.md.md"; rename each file to
remove the extra ".md" so the filename becomes
"developing-cross-platform-apps-with-capacitorjs.md", and update any internal
references/links that point to the old double-extension names (check templates
or content lists that reference the localized variants). Ensure the eight
localized copies (the ones sharing the base name
"developing-cross-platform-apps-with-capacitorjs.md.md") are all renamed and
that the new single-.md names are committed so assets like "head_image:
/create_app_with_js.jpg" resolve correctly.
ba05050 to
f6a0774
Compare
f6a0774 to
a6fa4d9
Compare
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|



Summary
.webpfilenames and existing frontmatter paths.Verification
apps/web/public/.1536x1024WebP assets.git diff --checkpasses.