Library / SDK
bootstrap-vue-next/bootstrap-vue-next avatar
bootstrap-vue-next/bootstrap-vue-next

BootstrapVueNext: a Bootstrap 5 component layer rebuilt for Vue 3 and TypeScript

Seamless integration of Vue 3, Bootstrap 5, and TypeScript for modern, type-safe UI development

1,297 stars185 forksTypeScriptMIT

At a glance

What is it?
BootstrapVueNext exists because the original BootstrapVue components were written for Vue 2, so this is a reimplementation of that component set on Vue 3, Bootstrap 5 and TypeScript. It is a real, actively shipped component library with a monorepo, typed props and a documented site, but it is a re-creation of an older API rather than a fresh design.
Who is it for?
BootstrapVueNext is a sensible pick for a team that already knows the BootstrapVue component API, wants Bootstrap 5 styling, and needs typed props in a Vue 3 codebase, since porting existing templates is far less work than rewriting them against a different component set.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 2 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on November 7, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • bootstrap-vue-next/bootstrap-vue-next1,297 ★ · +3
Star history
Repository2026-10-172026-11-07
bootstrap-vue-next/bootstrap-vue-next1.3k1.3k

3 Stars in the last 21 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

Why the project exists at all: BootstrapVue was built for Vue 2

The stated motivation is blunt. The project describes itself as an attempt to have the BootstrapVue components in Vue 3, Bootstrap 5 and TypeScript, with a second goal of writing the components in a simple and readable way for a better developer experience.

That framing explains both the appeal and the constraints. The original BootstrapVue library targeted Vue 2 and shipped a large catalogue of components, form controls, modals, tables and layout primitives that teams had already built whole applications on. When Vue 3 arrived, that catalogue could not simply be upgraded in place, because Vue 3 changed the reactivity model, the template compiler behaviour and the way components are defined and tree shaken. The choice for a team was to start again or to rebuild the catalogue.

BootstrapVueNext took the rebuild route, and it kept the Bootstrap 5 design system rather than the Bootstrap 3 era styling that the original library carried. The badges in the project documentation pin the target versions, showing Bootstrap 5.3.x and Vue.js 3.5.x, so the library is deliberately tracking current releases of both upstreams rather than freezing on an old pair.

What you get in exchange is a typed component layer. The primary language is TypeScript, and the topic list includes typescript, vue, vue3, bootstrap and bootstrap5. For a Vue 3 codebase with strict typing, that is the substantive difference from a plain Bootstrap stylesheet, because the component props and events become part of the type contract rather than something you discover at runtime.

The monorepo behind the npm package

The published package is one piece of a larger workspace. The root manifest is named bootstrap-vue-next-monorepo, is marked private, and declares workspaces over packages/* and apps/*, with pnpm as the declared package manager at version 10.28.2.

The task runner is Turborepo, and the root scripts show the shape of the workflow:

json
  "scripts": {
    "dev": "turbo run dev --parallel",
    "build": "turbo run build",
    "type-check": "turbo run type-check",
    "test:unit": "turbo run test:unit"
  },

There is a separate script set for CI variants of the lint and unit test tasks, and a coverage task, which tells you the library treats lint, type checking and unit tests as separate gates rather than one combined check. The devDependencies are minimal and purposeful, with husky for git hooks, lint-staged for staged file checks and turbo itself.

The rest of the repository layout explains the rest. There is a packages directory for the library itself, an apps directory that most likely holds the documentation site and playground, an architecture directory, a templates directory, a vitest.config.ts at the root for the test runner, a pnpm-workspace.yaml, and a turbo.json. There are also .husky and .prettierrc.yaml for formatting hooks, .release-please-manifest.json and release-please-config.json for automated releases, and an AGENTS.md file alongside a .agents directory and a skills-lock.json, which is a newer convention for coding assistant instructions in a repository. An .editorconfig and .markdownlint.json sit alongside for text formatting.

The contributor list in the manifest names six individuals with repository links, which is a reasonable indication of who the maintenance burden actually falls on.

Releases are automated and the 1.2 line is still moving

Release management is handled by release-please, configured through the two release-please files in the repository. That tooling derives version bumps and changelog entries from conventional commit messages, which is why the release tags in the project carry a scoped name, the recent releases being tagged bootstrapvuenext-v1.2.0, bootstrapvuenext-v1.2.1 and bootstrapvuenext-v1.2.2.

The dates of those three releases are 2026-09-14, 2026-09-18 and 2026-09-27, so three patch level releases landed inside a fortnight. The last push to the repository was on 2026-09-27, and it is not archived. The release numbers are low and the cadence is high, which is the signature of a library still finding its API rather than one that has settled.

The consequence for an adopting team is straightforward. There is no long term support branch and no evidence of a compatibility promise across minor versions, so the safe approach is to pin an exact version of the npm package and read the changelog for that line before upgrading. The 1.x number tells you the API is intended to be stable going forward, and the 1.2 patch series is where you would look for the details of what changed.

The two points of contact for outside contributors are an issue tracker and a pull request area, and the project documentation points new contributors at a Contribution Guide file in the repository for the mechanics.

Type safety is the payoff, and the boundary of it

The TypeScript claim needs unpacking, because a component library can be typed in two quite different ways and the difference matters when you are deciding whether to migrate.

The good version is the props and emits contract. A component that declares its props with types means a wrong prop name or a wrong prop type is a compile error in your template, and a change to a component's API in a minor release shows up in your type check rather than as a runtime warning. The repository runs a dedicated type-check task through Turborepo across the workspace, which is the mechanism that keeps that contract honest.

The weaker version is only typing the internals. Plenty of libraries are written in TypeScript while exposing untyped props, and that gives you nothing at the call site. The project documentation describes the library as type-safe UI development and lists typescript as a primary topic, and the type-check task in the root scripts is the visible evidence. Beyond that, the documentation at the project site is where you would confirm per component whether the props are actually typed, since the repository listing shows an architecture directory and a documentation app rather than a single summary of prop coverage.

The second boundary is the Bootstrap 5 dependency itself. BootstrapVueNext styles with Bootstrap 5, and the project documentation links to the Bootstrap 5.3 getting started page, which means the visual result depends on Bootstrap's own CSS and utility classes being present. You are not getting a standalone design system; you are getting Vue 3 components that emit Bootstrap 5 markup. If your organisation has an opinionated Bootstrap theme, that is where it plugs in, and it also means the library cannot offer a design that departs from Bootstrap without a fork.

Where this is the wrong choice

Two situations make BootstrapVueNext a poor fit, and both come from the same root cause, which is that this is a port with a legacy shape rather than a new design.

The first is a greenfield project with no Bootstrap history. A team that has never used BootstrapVue inherits an API whose conventions come from a different era. Component names and slot layouts follow the BootstrapVue original, and a reviewer who knows modern Vue 3 component libraries will find the surface familiar in name and unfamiliar in shape. There is no component catalogue in the project description to compare against alternatives, so the decision falls on the documentation site, component by component.

The second is a team that has already standardised on a different Vue 3 component library. Migrating to BootstrapVueNext then means two component systems in one application, with two sets of styling conventions and two accessibility behaviours, and the reason to do that is usually a legacy suite of templates rather than a technical advantage.

There is also the plain maintenance question. The project is a volunteer effort with a small named contributor base, shipping frequent patch releases on a 1.x line. For an internal tool that one team owns, that is fine. For a product surface that has to keep working, the cost of tracking releases and the absence of a long term support branch have to be weighed in. The documentation is hosted on GitHub Pages, the licence is MIT, so the code can be forked and maintained in house if that decision is made deliberately rather than by default.

Editorial conclusion

BootstrapVueNext is a sensible pick for a team that already knows the BootstrapVue component API, wants Bootstrap 5 styling, and needs typed props in a Vue 3 codebase, since porting existing templates is far less work than rewriting them against a different component set. It is the wrong choice for a greenfield project that has no Bootstrap heritage, because you inherit an API shaped by Bootstrap 2 conventions rather than by modern component design, and for teams that have already standardised on a different Vue 3 component library. Before adopting it, check the component coverage list in the documentation against the components your screens actually use, confirm your TypeScript version against the declared type-check tooling, and read the release notes for the version you pin, since the library is on a 1.2 line that is still moving.

Frequently asked questions

What is BootstrapVueNext and how does it differ from BootstrapVue?

BootstrapVueNext is an attempt to have the BootstrapVue components in Vue 3, Bootstrap 5 and TypeScript. The original BootstrapVue library targeted Vue 2, so this is a reimplementation of that component set on the current Vue and Bootstrap versions.

How do I install BootstrapVueNext?

The project is published on npm as the bootstrap-vue-next package, and the documentation site is hosted at bootstrap-vue-next.github.io. The root manifest of the repository is a private monorepo that uses pnpm workspaces, which is only relevant when working on the source rather than consuming the package.

Which versions of Vue and Bootstrap does BootstrapVueNext target?

The badges in the project documentation show Bootstrap 5.3.x and Vue.js 3.5.x as the targeted versions, so the library tracks current releases of both rather than pinning to an old pair.

Is BootstrapVueNext still being worked on?

The last push was on 2026-09-27, and the recent releases are bootstrapvuenext-v1.2.0, v1.2.1 and v1.2.2, dated 2026-09-14, 2026-09-18 and 2026-09-27. The repository is not archived, and versions are managed with release-please.

What licence is BootstrapVueNext released under?

The project is released under the MIT licence, with copyright held by BootstrapVueNext, and the repository contains a LICENSE file. MIT terms let an organisation fork and maintain the components internally if needed.

Official sources

  1. bootstrap-vue-next/bootstrap-vue-next on GitHub
  2. License: MIT
  3. Project website
  4. README
  5. Releases

Was this useful?