# Nuxt Apollo wires GraphQL into a Nuxt 3 application

> The Nuxt Apollo module is the bridge between a Nuxt application and Vue-Apollo, and it does three things that would otherwise be manual wiring. It brings in the Apollo client and the Vue composables, it merges your GraphQL configuration with the module defaults, and it gives the build a way to import GraphQL documents directly from files.

**nuxt-modules/apollo** — Nuxt.js module to use Vue-Apollo. The Apollo integration for GraphQL.

- Repository: https://github.com/nuxt-modules/apollo
- Website: https://apollo.nuxtjs.org
- Stars: 985 · Forks: 201
- Language: TypeScript
- License: MIT
- Published: 2026-10-20 · Updated: 2026-10-20 · Language: en
- Canonical page: https://hysenlabs.com/projects/nuxt-modules-apollo

## What the module is for

The short description is a Nuxt.js module to use Vue-Apollo, the Apollo integration for GraphQL, and the goal stated in the README is to integrate GraphQL into your Nuxt 3 projects. In practice that means the module supplies the pieces a GraphQL client needs in a server-rendered framework: the Apollo client itself, the Vue integration in both forms, a way to share a cache between server and client, and a way to keep the GraphQL endpoint configuration in one place. The documentation is published at apollo.nuxtjs.org, and there is a StackBlitz preview link so you can open a working example in a browser without cloning anything, which is the fastest way to judge whether the module fits the shape of your project before you install it into an application that already has a build pipeline.

## The branch is the compatibility matrix

The note at the top of the README handles the question that will otherwise cost an afternoon. This branch is for a Nuxt 3 compatible module, and the v4 branch is for Nuxt 2 support. The default branch in the repository is v5, and the module version in the package file is 5.0.0-alpha.16, so the branch name, the major version and the Nuxt generation line up. Anyone arriving from the older module has to make that choice explicitly, and the note is the only guidance offered. The wider package metadata shows a module that has moved with the framework rather than staying put, with @nuxt/kit and @nuxt/schema both at 4.0.2 and nuxt itself as a development dependency at the same version, which tells you the module targets the current Nuxt 4 line even though the branch is described in Nuxt 3 terms.

## The dependency list is the architecture

The runtime dependencies describe exactly what the module does for you. The Apollo client at 3.13.8 is the core, and the two Vue packages, @vue/apollo-composable and @vue/apollo-option, are the Vue integration in its composable and option forms. The GraphQL stack is graphql at 16.11.0 with graphql-tag for parsing documents and graphql-ws for the websocket transport, which is what carries subscriptions. The Rollup plugin for GraphQL is the piece that makes a query importable from a file at build time, which removes a class of runtime parsing. The configuration helpers are defu for merging defaults with your own configuration and destr for safe parsing of untrusted values, and there are two more that are easy to miss, jiti for loading TypeScript configuration at runtime and ohash for hashing. The kit package, @nuxt/kit at 4.0.2, is the module authoring API itself.

## The build is the standard Nuxt module build

The package is built with the Nuxt module builder, and the scripts show the whole lifecycle. The build step is a single call:

```json
    "build": "nuxt-module-build build",
    "prepack": "pnpm build",
    "dev": "npm run dev:prepare && nuxi dev playground",
```

The prepack script runs the build before publishing, and the dev script prepares the module and then starts the playground, which is the pattern for developing a Nuxt module against a real application rather than in the abstract. The published artefact is small, with the files list containing only dist. The exports map has two entries, the module itself at the root with its types and the ES module build, and a separate ./config subpath, which is the conventional way for a Nuxt module to expose its configuration schema and defaults separately from its runtime. The types are shipped as .d.mts files with a matching typesVersions block, and the package is marked as an ES module throughout.

## Releases go out on the next tag

The release script is unusual enough to be worth reading as a whole, since it explains what the alpha versions are for. It runs standard-version with the prerelease flag set to alpha, pushes the commits and the tags, and then publishes with the next tag rather than the latest one. So the channel matters: a consumer who installs the latest tag gets the last stable release of the module, while the alpha builds sit on a separate tag and are what the badge in the README points at, since the version badge is read from the next tag. The release history shows three alphas, 5.0.0-alpha.16 on 2026-01-09, 5.0.0-alpha.15 on 2025-07-31 and 5.0.0-alpha.14 on 2024-03-29, so the cadence is irregular and the project is clearly still pre-1.0 in its major line even though the branch numbering suggests a mature module. The repository keeps a CHANGELOG.md, and renovate.json is present, so dependency updates are automated rather than manual.

## The development loop and the current state

The development instructions are four steps. Clone the repository, make sure you have the latest LTS version of Node.js installed, enable corepack, and install the dependencies with pnpm. The corepack step makes the pnpm version the project expects available, and the lockfile plus a workspace file at the root confirm that pnpm is the expected tool. Then the playground is started with pnpm dev, and the dev:prepare script behind it stubs the module build, prepares it and then runs nuxi prepare on the playground, so the module is always in a usable state in the example app. The repository also carries a build.config.ts for the module builder, an.nuxtrc, an eslint.config.mjs with the Nuxt eslint config, a docs/ directory that is published with nuxt generate docs, and a playground/ directory that is the example application. The licence is MIT, the repository is not archived, the last push was on 2026-10-17, and every published version so far is an alpha on the next channel.

## Conclusion

Nuxt Apollo fits a Nuxt team that wants GraphQL without assembling the client, the composables and the bundler plumbing by hand, and the module keeps that plumbing in one place so an upgrade moves it as a unit. It does not fit a project on Nuxt 2, since this branch targets Nuxt 3 and the older line lives on the v4 branch, and it does not fit a team that needs a stable release, because everything published so far is an alpha on the next tag. Before you depend on it, read the documentation at apollo.nuxtjs.org, try the StackBlitz preview to see the module in a working project, and check the version you install, since 5.0.0-alpha.16 is the newest release and the last push was on 2026-10-17.

## FAQ

### What does the Nuxt Apollo module do?

It is a Nuxt module for using Vue-Apollo, the Apollo integration for GraphQL, and it supplies the Apollo client, the Vue composable and option packages, a websocket transport for subscriptions, a Rollup plugin that lets GraphQL documents be imported at build time, and configuration merging with defu.

### Which Nuxt version does this branch support?

This branch is for a Nuxt 3 compatible module, and the v4 branch is the one for Nuxt 2. The module version in the package file is 5.0.0-alpha.16, and the dependencies target @nuxt/kit and @nuxt/schema at 4.0.2.

### How do I run the module locally?

Clone the repository, install the latest LTS version of Node.js, run corepack enable, install the dependencies with pnpm install, and start the playground with pnpm dev, which prepares the module first and then runs the playground application.

### How are the Nuxt Apollo releases published?

The release script runs standard-version with the alpha prerelease flag, pushes the commits and tags, and publishes under the next tag rather than latest, so the alpha builds are a separate channel from the last stable release.

### Is Nuxt Apollo still updated?

The repository is not archived and the last push was on 2026-10-17, with the newest release 5.0.0-alpha.16 published on 2026-01-09 after 5.0.0-alpha.15 in July 2025. The licence is MIT and the documentation lives at apollo.nuxtjs.org.

## Sources

- [License: MIT](https://github.com/nuxt-modules/apollo/blob/v5/LICENSE)
- [nuxt-modules/apollo on GitHub](https://github.com/nuxt-modules/apollo)
- [Project website](https://apollo.nuxtjs.org)
- [README](https://github.com/nuxt-modules/apollo/blob/v5/README.md)
- [Releases](https://github.com/nuxt-modules/apollo/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/nuxt-modules-apollo
