Skip to content

feat: add announcement blog post for nuxt v4.4#2205

Merged
danielroe merged 5 commits into
mainfrom
feat/v4-4
Mar 12, 2026
Merged

feat: add announcement blog post for nuxt v4.4#2205
danielroe merged 5 commits into
mainfrom
feat/v4-4

Conversation

@danielroe
Copy link
Copy Markdown
Member

🔗 Linked issue

nuxt/nuxt#34382

📚 Description

this adds an announcement blog post for nuxt v4.4

@danielroe danielroe requested a review from atinux as a code owner March 12, 2026 08:25
@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented Mar 12, 2026

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

Project Deployment Actions Updated (UTC)
nuxt Ready Ready Preview, Comment Mar 12, 2026 10:02am

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Mar 12, 2026

Warning

Rate limit exceeded

@danielroe has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 3 minutes and 23 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 9ea8ef3c-23c1-4f48-87c1-6e5f814fb2ae

📥 Commits

Reviewing files that changed from the base of the PR and between fe390b9 and 5b79712.

📒 Files selected for processing (1)
  • content/blog/43.v4-4.md
📝 Walkthrough

Walkthrough

Adds a new blog post at content/blog/43.v4-4.md containing Nuxt v4.4 release notes. The post documents new and changed features including createUseFetch/createUseAsyncData custom instances and merging, Vue Router v5 and SSR notes, typed layout props via definePageMeta, useAnnouncer/NuxtAnnouncer accessibility APIs, migration to unrouting, payloadExtraction with an in-memory LRU runtime cache, useCookie refresh option, useState reset via clearNuxtState, enhanced import protection, experimental view transitions and normalized page component names, Vite optimizeDeps hints, build profiling outputs, and links to release and upgrade guidance.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: adding a blog post announcement for Nuxt v4.4, which matches the file addition in the changeset.
Description check ✅ Passed The description directly relates to the changeset by explaining that it adds an announcement blog post for Nuxt v4.4, which aligns with the added blog file.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/v4-4

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

Copy link
Copy Markdown
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: 2

🧹 Nitpick comments (1)
content/blog/43.v4-4.md (1)

259-260: Consider clarifying the v3.21 upgrade comment.

The comment mentions upgrading to v3.21 in a v4.4 release announcement. While this may be intentional for users on the v3 branch, it could be confusing in a v4.4 release post. Consider adding context about why v3.21 is mentioned or if this should reference a different version.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@content/blog/43.v4-4.md` around lines 259 - 260, The mention "or, if you are
upgrading to v3.21" together with the command "npx nuxt@latest upgrade --dedupe
--channel=v3" is ambiguous in a v4.4 release post; update this line to either
explain why v3.21 is relevant (e.g., "for users remaining on the v3 branch
(v3.21)") or change the version reference to the intended target, and make the
command's intent explicit (e.g., clarify that --channel=v3 is for v3 users).
Edit the text near the literal string "or, if you are upgrading to v3.21" and/or
the command "npx nuxt@latest upgrade --dedupe --channel=v3" to add that context
or correct the version so readers aren’t confused.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@content/blog/43.v4-4.md`:
- Line 7: Replace the HTML entity list marker with a standard YAML hyphen:
change the line that currently starts with "– name: Daniel Roe" to use a
plain "-" as the YAML list item marker (i.e., "- name: Daniel Roe") so that the
YAML list parses correctly; update the content in the same block where the list
appears (the line containing "name: Daniel Roe") and ensure there are no
remaining HTML entities used as list markers elsewhere in that list.
- Line 126: Update the documentation link that currently points to
use-route-announcer so the useAnnouncer section links to the correct page:
replace the read-more target "/docs/api/composables/use-route-announcer" with
"/docs/api/composables/use-announcer" in the markdown for the useAnnouncer
section (look for the :read-more{to="..."} line referencing
use-route-announcer).

---

Nitpick comments:
In `@content/blog/43.v4-4.md`:
- Around line 259-260: The mention "or, if you are upgrading to v3.21" together
with the command "npx nuxt@latest upgrade --dedupe --channel=v3" is ambiguous in
a v4.4 release post; update this line to either explain why v3.21 is relevant
(e.g., "for users remaining on the v3 branch (v3.21)") or change the version
reference to the intended target, and make the command's intent explicit (e.g.,
clarify that --channel=v3 is for v3 users). Edit the text near the literal
string "or, if you are upgrading to v3.21" and/or the command "npx nuxt@latest
upgrade --dedupe --channel=v3" to add that context or correct the version so
readers aren’t confused.
🪄 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: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: e22c578c-6878-4cf3-a35f-e2fda23995c3

📥 Commits

Reviewing files that changed from the base of the PR and between d38ce2d and 1ea778e.

⛔ Files ignored due to path filters (3)
  • public/assets/blog/build-profiler.png is excluded by !**/*.png
  • public/assets/blog/import-protection.png is excluded by !**/*.png
  • public/assets/blog/v4.4.png is excluded by !**/*.png
📒 Files selected for processing (1)
  • content/blog/43.v4-4.md

Comment thread content/blog/43.v4-4.md Outdated
Comment thread content/blog/43.v4-4.md Outdated
Copy link
Copy Markdown
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: 1

♻️ Duplicate comments (1)
content/blog/43.v4-4.md (1)

126-126: ⚠️ Potential issue | 🟡 Minor

Point the useAnnouncer section at the correct docs page.

This section is about useAnnouncer, but the read-more link still goes to use-route-announcer, which will send readers to the wrong API page.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@content/blog/43.v4-4.md` at line 126, The read-more link currently points to
the wrong docs page: change the
:read-more{to="/docs/api/composables/use-route-announcer"} reference so it
targets the useAnnouncer API page instead; update the to="..." value to the
correct path for useAnnouncer (e.g., "/docs/api/composables/use-announcer") so
the read-more under the useAnnouncer section links to the appropriate
documentation.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@content/blog/43.v4-4.md`:
- Line 130: Replace the awkward phrase "The initial start is roughly the same
(~8ms vs ~6ms for large apps)" in the sentence about unrouting route-generation
with clearer wording such as "Initial startup time is roughly the same (~8ms vs
~6ms for large apps)" or "Initial route-generation time is roughly the same
(~8ms vs ~6ms for large apps)"; update the sentence in the blog content that
begins "We've migrated Nuxt's file-system route generation..." so it uses one of
these clearer alternatives.

---

Duplicate comments:
In `@content/blog/43.v4-4.md`:
- Line 126: The read-more link currently points to the wrong docs page: change
the :read-more{to="/docs/api/composables/use-route-announcer"} reference so it
targets the useAnnouncer API page instead; update the to="..." value to the
correct path for useAnnouncer (e.g., "/docs/api/composables/use-announcer") so
the read-more under the useAnnouncer section links to the appropriate
documentation.
🪄 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: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 6bd6d578-c86e-4c66-a2a1-53dbd2c9e732

📥 Commits

Reviewing files that changed from the base of the PR and between 1ea778e and d539bf6.

📒 Files selected for processing (1)
  • content/blog/43.v4-4.md

Comment thread content/blog/43.v4-4.md Outdated
Copy link
Copy Markdown
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: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@content/blog/43.v4-4.md`:
- Line 59: Replace the awkward phrase "moving to take typed routes out of
experimental status." with the corrected wording "to take typed routes out of
experimental status" in the sentence on Line 59 (i.e., update the sentence that
currently begins "The next step will be moving to take typed routes..." to "The
next step will be to take typed routes out of experimental status.").
- Around line 105-117: The example in ContactForm.vue uses formData inside
submitForm but never defines it, causing a reference error; add a definition for
formData (e.g., a reactive object with name/email/message) at the top of the
<script setup> or replace the body in the $fetch call with an inline payload,
and ensure the form state is exported/used with the same identifier used by
submitForm and works with useAnnouncer() as shown.
🪄 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: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 92cbcfed-fcc1-441f-85da-9135f88fe0c6

📥 Commits

Reviewing files that changed from the base of the PR and between d539bf6 and b8deaa2.

📒 Files selected for processing (1)
  • content/blog/43.v4-4.md

Comment thread content/blog/43.v4-4.md Outdated
Comment thread content/blog/43.v4-4.md
Copy link
Copy Markdown
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: 1

♻️ Duplicate comments (1)
content/blog/43.v4-4.md (1)

105-117: ⚠️ Potential issue | 🟡 Minor

Define formData before using it in the example.

Line 111 references formData, but the snippet never declares it. As written, this example fails immediately when copied.

✏️ Possible fix
 ```vue [components/ContactForm.vue]
 <script setup lang="ts">
 const { polite, assertive } = useAnnouncer()
+const formData = reactive({
+  name: '',
+  email: '',
+  message: ''
+})

 async function submitForm() {
   try {
     await $fetch('/api/contact', { method: 'POST', body: formData })
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@content/blog/43.v4-4.md` around lines 105 - 117, The snippet uses formData
inside submitForm but never declares it; add a reactive formData object in the
same <script setup> scope (e.g., declare const formData = reactive({ name: '',
email: '', message: '' }) and import reactive from 'vue' if needed) so
submitForm and the $fetch body reference a defined variable in ContactForm.vue.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@content/blog/43.v4-4.md`:
- Around line 259-260: The heading "or, if you are upgrading to v3.21" is
ambiguous relative to the command "npx nuxt@latest upgrade --dedupe
--channel=v3"; update that heading to make clear this command is for staying on
Nuxt v3 (not upgrading to v4) — e.g., change the text that currently reads "#
or, if you are upgrading to v3.21" to something like "# or, if you want to stay
on Nuxt v3 (pin to v3.21)" so readers understand the "npx nuxt@latest upgrade
--dedupe --channel=v3" command keeps them on the v3 channel.

---

Duplicate comments:
In `@content/blog/43.v4-4.md`:
- Around line 105-117: The snippet uses formData inside submitForm but never
declares it; add a reactive formData object in the same <script setup> scope
(e.g., declare const formData = reactive({ name: '', email: '', message: '' })
and import reactive from 'vue' if needed) so submitForm and the $fetch body
reference a defined variable in ContactForm.vue.
🪄 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: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 32ca10fa-aa58-4086-80b2-e95d4efff638

📥 Commits

Reviewing files that changed from the base of the PR and between b8deaa2 and fe390b9.

📒 Files selected for processing (1)
  • content/blog/43.v4-4.md

Comment thread content/blog/43.v4-4.md Outdated
@danielroe danielroe merged commit 40d9bdb into main Mar 12, 2026
14 of 15 checks passed
@danielroe danielroe deleted the feat/v4-4 branch March 12, 2026 11:02
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.

2 participants