Skip to content
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

feat: add blog article 'nuxt: looking forward' #1541

Merged
merged 15 commits into from Mar 28, 2024
4 changes: 2 additions & 2 deletions content/0.index.yml
@@ -1,8 +1,8 @@
navigation: false
hero:
cta:
label: Nuxt v3.11 is out
to: /blog/v3-11
label: "Nuxt: Looking forward"
to: /blog/looking-forward-2024
variant: outline
icon: i-ph-arrow-right
size: xs
Expand Down
141 changes: 141 additions & 0 deletions content/7.blog/23.looking-forward-2024.md
@@ -0,0 +1,141 @@
---
title: 'Nuxt: Looking forward'
description: A lot of things have happened for Nuxt over the last year. Sébastien and Daniel share their thoughts on what we've achieved, and where we're going next.
navigation: false
image: /assets/blog/vision-for-2024.png
authors:
- name: Daniel Roe
avatarUrl: https://ipx.nuxt.com/_/gh_avatar/danielroe
link: https://twitter.com/danielcroe
- name: Sébastien Chopin
avatarUrl: https://ipx.nuxt.com/_/gh_avatar/atinux
link: https://twitter.com/atinux
date: 2024-03-27T00:00:00.000Z
category: Release
---

## A Review of 2023 - Sébastien

In January 2023, Daniel set out [**Nuxt: A vision for 2023**](/blog/vision-2023). We achieved most of the goals we set out to accomplish. Some are them are missing and we will tackle them this year!

It was a productive year and the team shipped **9 minor releases**: from v3.1 to v3.9.

danielroe marked this conversation as resolved.
Show resolved Hide resolved
As you know, when building Nuxt 3, [Pooya Parsa](https://github.com/pi0) and the team created standalone packages for each part of Nuxt so that the web community could benefit from our innovations. These packages are part of the [UnJS](https://unjs.io) ecosystem and now count **56 packages**. Among them, we saw [jiti](https://unjs.io/packages/jiti) being used by [TailwindCSS](https://tailwindcss.com) and even [Nitro](https://nitro.unjs.io) used by [SolidStart](https://start.solidjs.com/getting-started/what-is-solidstart) as well as [AnalogJS](https://analogjs.org/docs/features/api/overview).
danielroe marked this conversation as resolved.
Show resolved Hide resolved

In 365 days, Nuxt 3 reached new milestones:
danielroe marked this conversation as resolved.
Show resolved Hide resolved

- :icon{name="i-ph-star-duotone"} **49,5K stars** on GitHub ([add yours](https://github.com/nuxt/nuxt) 😊)
- :icon{name="i-ph-download-duotone"} **27M downloads** on npm
- :icon{name="i-ph-user-circle-plus-duotone"} **612 contributors** on the [nuxt repository](https://github.com/nuxt/nuxt)
- :icon{name="i-ph-puzzle-piece-duotone"} **184 modules** created by **142 maintainers**
- :icon{name="i-ph-check-circle-duotone"} **2,423 closed issues**
- :icon{name="i-ph-git-pull-request-duotone"} **1,728 merged pull request**
- :icon{name="i-simple-icons-discord"} **26,300 members** on [Discord](https://chat.nuxt.dev)

End of October, Nuxt 3 downloads [surpassed Nuxt 2 downloads](https://twitter.com/Atinux/status/1731980841142669379) 🚀.

The same month, we released [Nuxt Image 1.0](https://image.nuxt.com) with Nuxt 3 support and new features to make sure your website stays performant when using Images. Nuxt now auto-installs it as soon as you start using the [`<NuxtImg>`](/docs/api/components/nuxt-img) or [`<NuxtPicture>`](/docs/api/components/nuxt-picture) component.

We shipped [Nuxt DevTools](/blog/nuxt-devtools-v1-0), leveling up the Developer Experience we can expect from a Web framework. I am happy to see that we inspired other frameworks to adopt a similar approach: [Vue DevTools](https://twitter.com/vuejs/status/1741032977919053865), [Next DevTools](https://twitter.com/xinyao27/status/1741447261132145133), [Remix DevTools](https://twitter.com/AlemTuzlak59192/status/1741903214860009539), [Vite Plugin DevTools](https://github.com/pheno-agency/vite-plugin-devtools), [Astro Dev Toolbar](https://twitter.com/n_moore/status/1732164645778071888) and more.

After many months of building our UI library internally, [Benjamin Canac](https://github.com/benjamincanac) open sourced [Nuxt UI](https://ui.nuxt.com) to let you create websites at a faster pace with highly customizable components built with TailwindCSS.

[Nuxt Content](http://content.nuxt.com) had 10 minor releases with various improvements: from performance to the MDC syntax. We have some ongoing work to better support [edge rendering](https://nuxt.com/blog/nuxt-on-the-edge) in the future. At the same time, the NuxtLabs team is working on [Nuxt Studio](https://nuxt.studio) to let users edit Markdown files with a Notion-like editor while keeping your content inside your git repository.
danielroe marked this conversation as resolved.
Show resolved Hide resolved

## Looking forward into 2024 - Daniel

We are well into 2024, and this update is definitely overdue!

Here are a few thoughts on the direction that I'll be seeking to lead Nuxt in over the next year.

### Continued development and reimagination

I would love to see us continuing to question best practices, expand the boundaries of what good DX could be, and improve Nuxt.
danielroe marked this conversation as resolved.
Show resolved Hide resolved

I am really pleased at what we currently offer in Nuxt. But I would never want to rest on our laurels. We need to keep pursuing new possibilities that appear as the web platform develops. We've committed to [Baseline Compatibility](https://developer.mozilla.org/en-US/docs/Glossary/Baseline/Compatibility) going forward (and are included in conversations about it with the [W3C WebDX Community Group](https://github.com/web-platform-dx/web-features)).

We have some strategies to enable us to do this while also prioritising stability for our existing users, and recognising the scope of the Nuxt ecosystem.

1. In general we follow a pattern of **introducing a module or experimental feature** that can be disabled in testing while we gather feedback and confirm the direction and API of new features.
2. We have adopted the **ecosystem-ci pattern** of validating that our code changes in Nuxt don't break downstream projects unintentionally. If you maintain a well-tested module or library that depends on Nuxt, I'd welcome a PR adding your project to [nuxt/ecosystem-ci](https://github.com/nuxt/ecosystem-ci).
3. We plan to release a **pull-based test** that will allow you to configure your CI to test itself against the latest nightly version of Nuxt to provide early feedback on new Nuxt releases, rather than facing an issue when upgrading.
4. Finally, we have adopted a **push-based approach to updating existing projects**. When we identify breaking changes or improvements that can be rolled out to the ecosystem, we will proactively raise PRs to Nuxt modules (and, to a lesser extent, other open-source projects using Nuxt).

I hope this will allow us to continue to innovate and experiment with new features without sacrificing the stability and maintainability.

In particular, look for active development on the following:

- ✅ [nuxt/fonts](https://github.com/nuxt/fonts) - working up to v1.0.0
- ✅ [nuxt/eslint](https://github.com/nuxt/eslint) - working up to v1.0.0
- 🔥 [nuxt/scripts](https://github.com/nuxt/scripts) - soon to be released
- 🚧 [nuxt/a11y](https://github.com/nuxt/a11y) - coming soon!
- 🚧 [nuxt/auth](https://github.com/nuxt/auth) - coming soon!
- 🚧 [nuxt/hints](https://github.com/nuxt/hints) - coming soon!

### Sustainable open source

I want Nuxt to continue to be an independent, community-driven framework for the long term.

I'm really delighted to see successful businesses founded on Nuxt, and initiatives springing up around Nuxt that become [sponsors](/enterprise/sponsors) or otherwise giving back to the core framework, enabling ongoing Nuxt development.

Obviously, [NuxtLabs](https://nuxtlabs.com) is the preeminent example of that. [Pooya Parsa](https://github.com/pi0), [Anthony Fu](https://github.com/antfu) and I are all able to work full-time on open source (on Nuxt, UnJS and further afield) thanks to their paid services around Nuxt: [Nuxt UI Pro](https://ui.nuxt.com/pro/getting-started), [Nuxt Experts](/enterprise/support), [Nuxt Studio](https://nuxt.studio/) and [NuxtHub](https://hub.nuxt.com/) (soon). They also [sponsor community members](https://github.com/orgs/nuxtlabs/sponsoring) from Vue, Vite and Nuxt.
danielroe marked this conversation as resolved.
Show resolved Hide resolved

For me, keeping Nuxt independent and sustainable for the future requires an active and growing team and community. In the weeks ahead, I'll be announcing a broader 'Nuxt team' alongside the core team. This is about recognising the tireless work of the many people whose contributions are already making Nuxt what it is.

I would also love to see more of those team members or the wider community sponsored to work in the Nuxt ecosystem in the years ahead. If your company has benefited from Nuxt, please do consider sponsoring some of the developers working on Nuxt, whether they are team or wider community members.
manniL marked this conversation as resolved.
Show resolved Hide resolved

### Friendly collaboration

From the beginning of our work on Nuxt 3, we have sought to extract out utilities, libraries and even frameworks that we benefit from so they can _also_ benefit a much broader audience.

That's the origin of [UnJS](https://unjs.io/), of course, and it continues to thrive under the leadership of [Pooya Parsa](https://github.com/pi0) (who is also a key member of the Nuxt core team).

We'd like to continue that attitude of friendly collaboration. Although building things ourselves or keeping them to ourselves might to be 'success', I don't have any time for zero-sum games. We will go further, both as a framework and as a web community, if we build _together_.

Equally, one of our core values is platform-independence (alongside deep platform _integration_). We support 90+ providers across deployment, testing, stories, KV and cache, databases, image CDNs and font hosts. That breadth of ecosystem is one that bears rich rewards and frees people up to make choices about which providers they use based on the value they bring. But it _also_ means we are dependent on our community who use these different providers to help us keep these integrations up-to-date.

Nuxt isn't going anywhere, but we hope that the work we do collaboratively will last long beyond us.

### A welcoming community

Although it is easy to focus on technical excellence or the quality of developer experience, I am more encouraged to see the continued growth of the Nuxt ecosystem as a welcoming and friendly community.

I am incredibly grateful for the kind tone that prevails across [our community Discord](https://chat.nuxt.dev), on [Twitter](https://twitter.com/nuxt_js), and on [GitHub](https://github.com/nuxt/nuxt).

### What about Nuxt 4?

The JavaScript space is known for producing a new framework every week, which means there is a natural hype cycle.

But we are not aiming for hype with the continued development of Nuxt, which is part of why we have committed to regular release cycles:

- **major** framework releases every year
- **minor** releases every month or so
- **patch** releases every week or so

You can expect to see breaking changes shipped in major releases, with features shipped in our minor releases. That means we aren't holding features back for Nuxt 4; we'll ship those as regularly as we can in our 6-weekly minor release cycle.

Our aim is that Nuxt 4 is an opportunity for _thoughtful_ breaking changes with either a straightforward migration path (ideally with automated processes) or the ability to opt-in to previous behaviour.

There are definitely lessons we as a team have learned form the transition from Nuxt 2 to 3, and I see Nuxt 4 as an opportunity for us to prove that major releases can be a good experience for users.

You can preview the changes we have in mind by browsing [our roadmap](https://github.com/orgs/nuxt/projects/8/views/4) or checking through [the issues we've tagged for v4](https://github.com/nuxt/nuxt/issues?q=is\:issue+label:4.x). Feedback and wishes are very welcome as always!

#### Timetable

Our roadmap for Nuxt 4 is a little complex as we are also planning on major releases across the UnJS ecosystem.

Roughly speaking, Pooya and I are aiming to have one more minor release for Nuxt v3 and Nitro v2, before beginning a raft of major releases across the UnJS ecosystem of packages - culminating in Nuxt v4.
danielroe marked this conversation as resolved.
Show resolved Hide resolved

Pooya will be announcing the UnJS roadmap in parallel, but in brief we are aiming to release **Nuxt v4** **on or before June 14** (though obviously this is dependent on having enough time after Nitro's major release to be properly tested in the community, so be aware that this is not an exact date).
danielroe marked this conversation as resolved.
Show resolved Hide resolved

#### Ongoing Support

After the release of Nuxt v4, we will be providing **six months** of ongoing support and bug-fixes for Nuxt v3, which we expect will be more than ample to upgrade to v4 given our aim of a gentle upgrade path.

We hope you are as excited as we are about the pending release of Nuxt v4! 🎉

---

Finally, thank you so much for all your trust and support as we've been building Nuxt. I know I speak for the whole team when I say that it's such a privilege to be doing this alongside everyone in the Nuxt community! ❤️

Daniel (on behalf of the whole Nuxt team)
Binary file added public/assets/blog/vision-for-2024.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.