Ginjou is a headless, framework-agnostic library for building admin panels, dashboards, and other applications that handle a lot of data. It is inspired by refine and react-admin.
Ginjou is built on two main ideas: Flexibility and Composition.
Think of it like LEGOs. Ginjou gives you different function "bricks." You can combine these bricks to build the exact application you need.
You can use Ginjou in two ways, depending on the level of control you want.
useList that handle common tasks. They combine multiple small functions to provide features automatically.fetcher.getList or router.go.Ginjou is powerful because these parts work together. The high-level Controllers are made from smaller Composables.
This diagram shows how simple functions are combined to create more powerful tools:
getList) or changing the page URL (go). They do not manage state.useGetList) are wrappers around Core Functions. They use Tanstack Query to automatically handle data loading, caching, and state for you.useList gives you all the logic for a data list page, ready to use.useList ControlleruseList is a great example of how this works. It bundles several smaller composables to create a full solution for a list page, including:
useGetList)useGo, useLocation)useNotify)useTranslate)You can use useList to build your app quickly. But if you need something different, you can use the next level down (useGetList) and add your own logic to build a custom solution.
This design gives you the freedom to choose between fast development and full control.