Migrate to RunxBuild today!! Deploy More while Spending Less

Calculate your savings
unxBuild

Gridsome and Vue: What It Was, and Where to Migrate Now

Sean

Platform Writer

Sep 28, 2026
8 min read

Gridsome is a Vue 2 static site generator with a GraphQL data layer, and it is effectively unmaintained: its GitHub repository’s last commit dates to September 2022. Combined with Vue 2 reaching end of life on December 31, 2023, that is not a project to start new work on today.

Gridsome and Vue: What It Was, and Where to Migrate Now

Gridsome had a real moment — a genuinely nice GraphQL-driven content layer on top of Vue, built for exactly the Jamstack pattern people wanted around 2019 and 2020. This is an honest look at where it stands now, verified against the project’s own repository rather than its still-optimistic README, and the three migration paths that make the most sense depending on what you actually built.

Table of contents

What Gridsome actually is

Gridsome is a static site generator built on Vue 2, with a GraphQL layer that pulls content from Markdown files, headless CMSs, or any API into a single queryable data source at build time. Pages query that GraphQL layer directly inside .vue files, and the CLI generates a folder of static HTML, prefetching linked pages for fast client-side navigation once loaded.

The pitch was legitimate: a component model developers already knew from Vue, plus a data layer that made pulling from WordPress, Contentful, or local Markdown feel identical from the page’s point of view. For a documentation site or a content-driven marketing site in 2019, that was a genuinely good trade.

The honest status, verified

The project’s GitHub README still reads “This project is under active development. Any feedback or contributions would be appreciated.” The repository itself tells a different story: the latest commit, a small test change, is dated September 22, 2022. That is roughly four years of no development activity as of today, despite 8.5k stars and 466 forks showing the project once had real traction.

Layer on top of that: Gridsome is built against Vue 2, and Vue 2 reached official end of life on December 31, 2023 — no more security patches, no more bug fixes, from the Vue core team itself. A framework with no recent commits, built on a major dependency that no longer receives security updates, is not a foundation to build new work on, however much the README still says otherwise.

None of this means an existing Gridsome site stops working. Static output does not rot. But it does mean you are on your own for anything Gridsome itself would have needed to fix, and every dependency in its chain is aging without upstream attention.

The practical risk shows up first at the tooling layer, not the rendered site. Run npm install on a four-year-old Gridsome project today and expect peer dependency warnings, a webpack version that predates several security advisories, and Node.js version constraints that fight whatever LTS release you actually have installed. None of that breaks an already-built static site sitting on a CDN, but it makes the next content update or plugin change meaningfully harder than it should be.

Migration option 1: Nuxt with static generation

Nuxt is the most direct successor for a Gridsome project, because it keeps you on Vue — specifically Vue 3, which is actively maintained — and Nuxt’s static generation mode (nuxt generate) produces the same kind of prerendered output Gridsome does.

npx nuxi init my-site
cd my-site
npm install
npm run generate

nuxt generate crawls your routes and writes static HTML for each, similar in spirit to Gridsome’s build step, but without a GraphQL layer in the middle — Nuxt content modules like @nuxt/content read Markdown directly, which is usually simpler to reason about than Gridsome’s query-per-page pattern once you have migrated it once.

This is the right choice if the Vue component model and Vue-specific ecosystem knowledge is what you want to keep.

Migration option 2: VitePress

If the Gridsome site in question is documentation or a content-heavy site with a fairly standard layout, VitePress is a lighter option than Nuxt. It is Vue-powered under the hood, built and maintained by the Vue core team, and purpose-built for documentation and Markdown-driven sites rather than being a general application framework pressed into that role.

npm add -D vitepress
npx vitepress init

The trade-off is scope: VitePress assumes a docs-shaped site. A marketing site with custom page layouts and interactive components will fight VitePress’s conventions; a documentation site will feel like VitePress was built specifically for this migration.

Migration option 3: Astro with Vue islands

Astro is worth serious consideration even though it is not Vue-first, because it supports Vue components as islands — meaning you can port your existing .vue components with minimal changes and drop them into an Astro page, hydrating only the interactive pieces while the rest ships as plain HTML.

<!-- src/pages/index.astro -->
<!-- frontmatter: import MyVueComponent from '../components/MyVueComponent.vue' -->
<html>
  <body>
    <MyVueComponent client:load />
  </body>
</html>

This is the best option when you want to keep specific Vue components you have already written — an interactive search widget, a filter UI — without porting the entire site’s architecture to a new component model at once. Astro’s own content collections replace Gridsome’s GraphQL layer for Markdown-driven pages.

Deploying the migrated site statically

Whichever path you pick, the output is the same shape Gridsome already produced: a folder of static HTML, CSS, and JS with no server required to serve it. nuxt generate, vitepress build, and astro build all write to a dist or .output/public folder that any static host can serve directly.

That means the migration is a build-tool and framework change, not a hosting change. On RunxBuild, pointing a static site at the migrated repository works the same way it would for the old Gridsome build — push to GitHub, the platform builds from the repository’s build command, and the result goes live on a custom domain with the bandwidth and headers a real production site needs.

Treat the migration as a chance to simplify rather than a like-for-like port. Gridsome’s GraphQL layer was solving a real problem in 2019 — unifying content sources behind one query interface — but most sites only ever pulled from local Markdown, and Nuxt Content or Astro’s content collections read that directly with no query layer at all. Porting the GraphQL queries verbatim into a new framework usually means porting complexity you no longer need.

How this fits the rest of the stack

Gridsome was a good idea that stopped moving, and pretending otherwise just delays a migration that gets more annoying the longer a stale Vue 2 dependency tree sits untouched. Nuxt, VitePress, and Astro all get you to the same static output with an actively maintained foundation underneath. Once you have picked one and it builds, the RunxBuild hosting calculator shows what hosting the result actually costs against a real plan.

After the migration, the generated output deploys like any other static site from the RunxBuild dashboard.

Useful related references:

FAQ

Is Gridsome still maintained?

Effectively no. The project’s GitHub repository shows its last commit in September 2022, roughly four years of inactivity, despite the README still describing it as under active development. New projects should not start on it.

Is Gridsome dead?

It is not formally archived or deprecated by its maintainers, but with no commits since 2022 and its foundation (Vue 2) past its own end-of-life date, it functions as dead for the purpose of starting new work, even though existing built sites continue to work.

What is the difference between Gridsome and Nuxt?

Gridsome is a static-site-only generator built on Vue 2 with a mandatory GraphQL data layer. Nuxt is a full Vue 3 application framework that also supports static generation via nuxt generate, without requiring GraphQL for content, and it is actively maintained.

How do I migrate from Gridsome to Nuxt or Astro?

Port your .vue page and component files, replace Gridsome’s GraphQL content queries with Nuxt Content or Astro’s content collections for Markdown-driven data, and rebuild the routing to match the new framework’s file conventions. Astro specifically lets you keep existing Vue components as islands during the transition.

Does Gridsome support Vue 3?

No. Gridsome was built against Vue 2 and was never updated to support Vue 3, which is part of why it is now tied to a framework version that no longer receives security patches from the Vue core team.

#gridsome vue#Gridsome#Vue#Nuxt#VitePress