Skip to content

chore: update all dependencies to latest versions, migrate Nuxt SEO and OG image setup, and align workspace tooling#33

Merged
toddeTV merged 20 commits into
mainfrom
chore/update-all-dependencies-to-latest
May 18, 2026
Merged

chore: update all dependencies to latest versions, migrate Nuxt SEO and OG image setup, and align workspace tooling#33
toddeTV merged 20 commits into
mainfrom
chore/update-all-dependencies-to-latest

Conversation

@toddeTV
Copy link
Copy Markdown
Owner

@toddeTV toddeTV commented May 18, 2026

Summary by CodeRabbit

  • Chores
    • Updated core and dev dependencies and added build tooling improvements; updated workspace build/install rules.
  • Refactor
    • Unified Open Graph image handling site-wide and standardized content/SEO configuration for more consistent metadata.
  • Documentation
    • Simplified example env guidance with deployment placeholders and expanded .gitignore to cover build/cache artifacts.

Review Change Stack

@toddeTV toddeTV self-assigned this May 18, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 18, 2026

📝 Walkthrough

Walkthrough

This PR migrates page-level OG image usage to typed defineOgImage calls and explicit content SEO schemas, updates island hashing in a nuxt-og-image patch, and changes workspace/dependency configs, .env.example, and .gitignore.

Changes

OG image & Content SEO

Layer / File(s) Summary
Page OG/SEO runtime changes
app/pages/[...slug].vue, app/pages/index.vue, app/pages/projects/*, app/pages/talks/*, app/pages/vcard.vue
Import typed OgImageComponents; conditionally apply useSchemaOrg(...); map page.value.ogImage.url to useSeoMeta({ ogImage }) or call defineOgImage(component, props); fallback to defineOgImage('Default').
Content collection schema wiring
content.config.ts
Replace asSeoCollection(...) with explicit defineCollection for pages/**, importing and composing defineRobotsSchema, defineSitemapSchema, defineOgImageSchema, and defineSchemaOrgSchema.
Nuxt optimizeDeps for build
nuxt.config.ts
Add vite.optimizeDeps.include entries to pre-bundle @unhead/schema-org/vue and Vue devtools packages.
nuxt-og-image island hash patch
patches/nuxt-og-image@6.5.0.patch
Switch fetchIsland hashing to computeIslandHash(component, filterIslandProps(props), {}, void 0) and remove ohash usage.
Footer link-checker directive
app/components/layout/SiteFooter.vue
Add inline eslint-disable directives around the footer “Legal Notice” and “Privacy Policy” NuxtLinks to suppress link-checker/valid-sitemap-link false positives.

Workspace, deps, env, ignore

Layer / File(s) Summary
Env and ignore
.env.example, .gitignore
Add Cloudflare and NUXT_OG_IMAGE_SECRET placeholders to .env.example; expand .gitignore to include Nuxt/Vite build outputs and common artifacts.
Package.json runtime & devDependencies
package.json
Bump nuxt (~4.3.1 → ~4.4.6) and vue (~3.5.29 → ~3.5.34); update many devDependencies and add @resvg/resvg-js, rolldown, satori, and vite-plus.
pnpm workspace allowBuilds
pnpm-workspace.yaml
Replace ignoredBuiltDependencies/onlyBuiltDependencies with allowBuilds per-package settings; retain catalog/overrides/patches/peer/publicHoist and trust policy entries.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • toddeTV/todde.tv#16: Overlaps project pages creation and OG image template changes in app/pages/projects/*.
  • toddeTV/todde.tv#7: Related content.config.ts and @nuxtjs/seo setup changes.
  • toddeTV/todde.tv#15: Overlaps talk pages changes and OG image handling for app/pages/talks/*.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main changes: dependency updates, Nuxt SEO/OG image migration, and workspace tooling alignment, which are reflected across multiple files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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


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

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@package.json`:
- Line 78: The package dependency "`@tailwindcss/vite`" currently pinned as
"~4.2.4" should be changed to a safe version: either upgrade to "4.3.x" (e.g.
^4.3.0) or explicitly downgrade to "4.2.2" to avoid the known at-rule import
bug; update the "`@tailwindcss/vite`" version string in package.json, ensure the
installed tailwindcss peer matches the chosen major (adjust tailwindcss if
needed), then run your package manager to regenerate the lockfile and verify the
build (vite/dev/prod CSS output) succeeds.
🪄 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: Path: .coderabbit.yml

Review profile: ASSERTIVE

Plan: Pro

Run ID: c54536c0-eb87-4b10-ae2b-2384b76af7ec

📥 Commits

Reviewing files that changed from the base of the PR and between 75d6740 and 0de13bc.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml, !pnpm-lock.yaml
📒 Files selected for processing (1)
  • package.json

Comment thread package.json Outdated
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.

🧹 Nitpick comments (2)
.env.example (1)

12-13: 💤 Low value

Remove unnecessary quotes from single-word values.

Lines 12-13 contain values without spaces or special characters, so the quotes are unnecessary. Removing them improves consistency with shell conventions.

✨ Proposed simplification
-NUXT_PUBLIC_LEGAL_ADDRESS_COUNTRY="Germany"
-NUXT_PUBLIC_LEGAL_VAT_ID="DE123456789"
+NUXT_PUBLIC_LEGAL_ADDRESS_COUNTRY=Germany
+NUXT_PUBLIC_LEGAL_VAT_ID=DE123456789
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.env.example around lines 12 - 13, Remove the unnecessary double quotes
around single-word environment values NUXT_PUBLIC_LEGAL_ADDRESS_COUNTRY and
NUXT_PUBLIC_LEGAL_VAT_ID in the .env.example; edit the lines that currently read
NUXT_PUBLIC_LEGAL_ADDRESS_COUNTRY="Germany" and
NUXT_PUBLIC_LEGAL_VAT_ID="DE123456789" to remove the quotes so they become
NUXT_PUBLIC_LEGAL_ADDRESS_COUNTRY=Germany and
NUXT_PUBLIC_LEGAL_VAT_ID=DE123456789, matching shell conventions and the rest of
the file.
pnpm-workspace.yaml (1)

25-29: ⚡ Quick win

Track removal of temporary nuxt-og-image patch.

The inline comment states this patch is temporary and should be removed when no longer needed. The patch fixes island hash computation incompatibility between nuxt-og-image@6.5.0 and nuxt@4.4.6.

Monitor for nuxt-og-image updates that resolve the issue:

#!/bin/bash
# Check for newer nuxt-og-image versions that may fix the issue
npm view nuxt-og-image versions --json | jq '.[-5:]'
npm view nuxt-og-image@latest version

Consider opening a tracking issue to revisit this patch after future nuxt-og-image releases.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@pnpm-workspace.yaml` around lines 25 - 29, The patch entry under
patchedDependencies for nuxt-og-image@6.5.0 is marked temporary; add a TODO to
track and remove this patch when upstream fixes island hash compatibility,
create a tracking issue (e.g., "remove-patch-nuxt-og-image-6.5.0") and document
the check commands from the review in that issue, and optionally add a short
CI/cron task or README note that runs the npm view checks against nuxt-og-image
versions and alerts when a newer release likely fixes the problem so the
patchedDependencies: nuxt-og-image@6.5.0 entry can be removed.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In @.env.example:
- Around line 12-13: Remove the unnecessary double quotes around single-word
environment values NUXT_PUBLIC_LEGAL_ADDRESS_COUNTRY and
NUXT_PUBLIC_LEGAL_VAT_ID in the .env.example; edit the lines that currently read
NUXT_PUBLIC_LEGAL_ADDRESS_COUNTRY="Germany" and
NUXT_PUBLIC_LEGAL_VAT_ID="DE123456789" to remove the quotes so they become
NUXT_PUBLIC_LEGAL_ADDRESS_COUNTRY=Germany and
NUXT_PUBLIC_LEGAL_VAT_ID=DE123456789, matching shell conventions and the rest of
the file.

In `@pnpm-workspace.yaml`:
- Around line 25-29: The patch entry under patchedDependencies for
nuxt-og-image@6.5.0 is marked temporary; add a TODO to track and remove this
patch when upstream fixes island hash compatibility, create a tracking issue
(e.g., "remove-patch-nuxt-og-image-6.5.0") and document the check commands from
the review in that issue, and optionally add a short CI/cron task or README note
that runs the npm view checks against nuxt-og-image versions and alerts when a
newer release likely fixes the problem so the patchedDependencies:
nuxt-og-image@6.5.0 entry can be removed.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro

Run ID: 875fbc2c-fb2f-4363-8a36-876ed5dfa6b2

📥 Commits

Reviewing files that changed from the base of the PR and between 0de13bc and 3082c67.

⛔ Files ignored due to path filters (7)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml, !pnpm-lock.yaml
  • public/apple-touch-icon.png is excluded by !**/*.png
  • public/favicon.ico is excluded by !**/*.ico
  • public/icon-16x16.png is excluded by !**/*.png
  • public/icon-192x192.png is excluded by !**/*.png
  • public/icon-32x32.png is excluded by !**/*.png
  • public/icon-512x512.png is excluded by !**/*.png
📒 Files selected for processing (25)
  • .env.example
  • .gitignore
  • app/components/OgImage/OgImageDefault.satori.vue
  • app/components/OgImage/OgImageHome.satori.vue
  • app/components/OgImage/OgImageProject.satori.vue
  • app/components/OgImage/OgImageTalk.satori.vue
  • app/components/OgImageComponents/OgImageAvatar.vue
  • app/components/OgImageComponents/OgImageCategoryLabel.vue
  • app/components/OgImageComponents/OgImageDescription.vue
  • app/components/OgImageComponents/OgImageFooter.vue
  • app/components/OgImageComponents/OgImageGlow.vue
  • app/components/OgImageComponents/OgImageTitle.vue
  • app/components/layout/SiteFooter.vue
  • app/pages/[...slug].vue
  • app/pages/index.vue
  • app/pages/projects/[slug].vue
  • app/pages/projects/index.vue
  • app/pages/talks/[slug].vue
  • app/pages/talks/index.vue
  • app/pages/vcard.vue
  • content.config.ts
  • nuxt.config.ts
  • package.json
  • patches/nuxt-og-image@6.5.0.patch
  • pnpm-workspace.yaml
✅ Files skipped from review due to trivial changes (1)
  • app/pages/talks/index.vue

@toddeTV toddeTV changed the title chore: update all dependencies to latest versions chore: update all dependencies to latest versions, migrate Nuxt SEO and OG image setup, and align workspace tooling May 18, 2026
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

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.env.example:
- Around line 10-12: The .env.example entries NUXT_PUBLIC_LEGAL_ADDRESS_STREET
and NUXT_PUBLIC_LEGAL_ADDRESS_CITY (and any other values containing spaces such
as NUXT_PUBLIC_LEGAL_ADDRESS_COUNTRY if applicable) must be quoted to avoid
parser ambiguity; update those environment values by wrapping the right-hand
side in double quotes (e.g., change Musterstrasse 1 to "Musterstrasse 1" and
01234 Musterstadt to "01234 Musterstadt"), taking care to escape any internal
quotes if present, so dotenv/shell loaders consistently parse them.
🪄 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: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro

Run ID: 57cc4092-17a6-4c54-9ce9-4544732768ed

📥 Commits

Reviewing files that changed from the base of the PR and between 3082c67 and 2411f2d.

📒 Files selected for processing (2)
  • .env.example
  • app/components/layout/SiteFooter.vue
✅ Files skipped from review due to trivial changes (1)
  • app/components/layout/SiteFooter.vue

Comment thread .env.example
@toddeTV toddeTV merged commit 810dcf3 into main May 18, 2026
5 checks passed
@toddeTV toddeTV deleted the chore/update-all-dependencies-to-latest branch May 18, 2026 13:21
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