Curi is a JavaScript router for single-page applications

Curi cares about routing, not how you render.

Rendering depends on the UI library that you are using. Currently, there are packages to support using Curi with React (DOM and React Native), Vue, and Svelte, but with a little elbow grease Curi should work with any rendering library.

Curious to see Curi in action? The examples section has a variety of demos showing off what you can do with Curi.

Ready to learn more? Check out the creating a router guide.

import { curi } from '@curi/router';
import Browser from '@hickory/browser';

const history = Browser();
const routes = [
  { name: 'Home', path: '', ... },
  { name: 'User', path: 'u/:userID', ... },
  // more routes...
  { name: 'Not Found', path: '(.*)', ... }

const router = curi(history, routes);