Guide.js v0.1

Comparison

Guide.js vs Onborda

Next.js-only tour library that requires Framer Motion and Tailwind CSS

Bundle

Guide.js · ~8 KB Onborda · Heavy (+ framer-motion ~34 KB + Tailwind)

License

Guide.js · MIT Onborda · MIT

React

Guide.js · Native Onborda · Next.js App Router only

TypeScript

Guide.js · First-class Onborda · Yes

API style

Guide.js · Stateless Onborda · Stateful — OnbordaProvider context

Step types

Guide.js · 4 types Onborda · Tooltip, keyhole spotlight

Where Guide.js wins

  • Works with any React app — not locked to Next.js
  • No framer-motion or Tailwind dependency
  • Actively maintained
  • Banner and Announcement step types
  • Smaller effective bundle

Where Onborda wins

  • Built-in route transitions between tour steps (Next.js router integration)
  • Smooth animations via Framer Motion if already in your stack
  • Keyhole spotlight overlay

Onborda is purpose-built for Next.js App Router apps. If you're on that stack and already have framer-motion and Tailwind installed, the implicit dependency cost is zero. If you're not, you're pulling in ~34 KB of Framer Motion for tour animations. The project has had no commits since December 2024, which raises maintenance questions for a long-term dependency.

Next.js lock-in

Onborda is designed exclusively for Next.js App Router. It uses Next.js router APIs internally to navigate between steps that live on different routes. This is a genuine capability — multi-page tours that navigate the app. But it also means Onborda is completely unusable in a plain React app, Remix, Vite SPA, or any non-Next.js environment. Guide.js works wherever React runs.

Implicit dependencies

Onborda lists framer-motion and Tailwind CSS as peer dependencies. Framer Motion weighs approximately 34 KB gzipped. If your app already uses both, this is free. If it doesn't, you're adding substantial weight for animations in a tour component. Guide.js lists only React as a peer dependency — no animation library, no utility CSS framework.

Maintenance status

The last commit to Onborda's public repository was in December 2024. As of early 2026, the library has been quiet for over a year with no bug fixes, dependency updates, or new features. With 1.4k stars and a small community, the risk of the project being abandoned is real. Guide.js is actively maintained by the Userorbit team with ongoing development.

Context provider model

Like Reactour, Onborda uses a context provider: `<OnbordaProvider>` wraps your layout, and tours are defined as config objects. This is fine for Next.js apps where a root layout is the natural place for a provider. In any other React setup, the provider pattern adds global state for what is fundamentally a local UI element. Guide.js renders as `<Guide>` inline — no root layout changes needed.

The Guide.js API

See for yourself

No boilerplate. No providers. Just a component.

import { Guide } from "guide.js";
import "guide.js/styles.css";

// Pass steps as props. That's it.
<Guide
  tour={{ id: "onboarding", title: "Get started", steps }}
  steps={steps}
  isActive
/>

Ready to switch?

Install Guide.js in one command and render your first tour in under two minutes.