Curi provides packages to render with popular frameworks.

Sync or Async

Curi re-renders apps synchronously by default, but can easily switch to async, which enables code-splitting and preloading data.


Response objects provide data about the route that matches a location and are used to render your application.

Route Matching

Curi uses path-to-regexp to define route paths using simple but expressive strings.


Curi uses the hickory package to power navigation anywhere you can run JavaScript.

Server Side Rendering

Server side rendering with Curi is as easy as client side rendering. The main difference is that you will swap the browser history with an in-memory history.