Skip to content
TypeScript · React · react-admin · IGNIS

Admin apps with a
real architecture

react-admin's data contract on IGNIS's container. Dependency injection, a typed REST data layer, auth recovery and i18n - one import, browser-pure core.

1
import to install
0
Node builtins in the core
100%
type-safe hooks
application.tsxlive
import 'reflect-metadata'
import { BaseArdorApplication, CoreBindings, DefaultRestDataProvider } from '@venizia/ardor'
import { useInjectable, useTranslate } from '@venizia/ardor'

class Application extends BaseArdorApplication {
  bindContext() {
    this.bind({ key: CoreBindings.REST_DATA_PROVIDER_OPTIONS })
      .toValue({ url: '/api', noAuthPaths: ['/auth/login'] })
    this.bind({ key: CoreBindings.DEFAULT_REST_DATA_PROVIDER })
      .toProvider(DefaultRestDataProvider)
    this.service(ProductApi)   // -> services.ProductApi
  }
}

const ProductList = () => {
  const productApi = useInjectable<ProductApi>({ key: 'services.ProductApi' })
  const translate = useTranslate()
  return <h1>{translate('resources.product.name')}</h1>
}
Everything you need

Enterprise structure,
without the ceremony

The patterns that scale teams - wired into a framework that doesn't slow down.

Browser IoC Container

Full dependency injection in the browser. Resolve bound singletons cleanly with useInjectable and services.* keys.

REST Data Provider

Maps react-admin pagination, sorting, and filters to IGNIS { where, order, limit, skip }, parsing totals from Content-Range.

Self-Healing Auth

Handles login, logout, checkAuth, and checkError with one-shot token refresh recovery on 401s and configurable no-auth paths.

Type-Safe i18n

Contextual useTranslate hook with keys checked via module augmentation, shipping with built-in en and vi bundles.

Typed Redux Hooks

Factory-generated typed selectors and dispatch hooks connected seamlessly into your IGNIS application container state.

Tailwind + Radix UI

Accessible, production-ready admin layouts and primitives via ardor-ui-kit, styled with Tailwind CSS and Radix UI.

Isomorphic Core

Frontend state has a
structure limit. ARDOR
solves it cleanly.

Built as an IGNIS inversion-of-control container, ARDOR eliminates spaghetti providers and ad-hoc wiring while preserving react-admin data conventions.

Zero Node builtins in ardor-kernel. Isomorphic and lightweight.

ardor-kernel
0 Node builtins
ARDOR
1 meta-package
ardor-react
Context + Hooks
ardor-admin
ra-core Adapters
ardor-ui-kit
Tailwind + Radix
Is it for you?

Honest about the fit

✶ Perfect for

  • Enterprise admin panels needing clean IoC architecture
  • Applications pairing react-admin with IGNIS backends
  • Teams wanting DI in React via useInjectable
  • Typed REST data provider, token refresh, and i18n

○ Consider alternatives

  • Lightweight landing pages with no admin state
  • Non-React applications (Vue, Svelte, Angular)
  • Apps with no service orchestration or DI requirements
  • Greenfield projects not using react-admin data contracts
Built on giants

Powered by the best of the ecosystem

react-admin · ra-core
IGNIS · IoC Container
React · UI Runtime
TypeScript
Radix + Tailwind

Bringing IGNIS inversion of control and react-admin data contracts to modern frontend applications.

Released under the MIT License.