Kiru

A batteries-included, easy-to-use rendering library with a tiny footprint

Get Started
Global state via blazingly fast signals & stores

Global state via blazingly fast signals & stores

Comprehensive routing & CSR utilities by default

Comprehensive routing & CSR utilities by default

Granular control of reactivity & state

Granular control of reactivity & state

Do more with less... Actually, just do less.

Kiru makes it easy to create optimized web apps by embracing a 'reactivity where it matters' approach.

App.tsx
function App() {
  const inputText = useSignal(""),
    todos = useSignal<Todo[]>([])

  const handleSubmit = (e: Event) => {
    e.preventDefault()
    const id = crypto.randomUUID(),
      text = inputText.peek(),
      todo = { id, text }

    todos.value = [...todos.value, todo]
    inputText.value = ""
  }

  console.log("Hello from Kiru! This component never rerenders 😉")

  return (
    <>
      <form onsubmit={handleSubmit}>
        <input bind:value={inputText} />
        <button type="submit">Add</button>
      </form>
      <ul>
        <For each={todos} fallback={<i>No todos</i>}>
          {(item) => <TodoItem todo={item} />}
        </For>
      </ul>
    </>
  )
}
  • Kiru
  • Is
  • Awesome!

Say goodbye to dependency hell.

Kiru aims to embody the word 'framework' in a literal sense. Routing, state management, responsive forms, asynchronous state and more - Kiru makes it possible to build incredible web apps without any other libraries.

{
  "name": "react-app",
  // ...
  "dependencies": {
    "react": "19.2.0",
    "react-dom": "19.2.0",
    "react-router-dom": "7.9.6",
    "swr": "2.3.6",
    "zustand": "5.0.8",
    "@tanstack/react-form": "1.25.0",
  },
  "devDependencies": {
    "vite": "7.2.2",
    "@vitejs/plugin-react": "5.1.1",
    "typescript": "5.9.3",
    "@types/react": "19.2.6",
    "@types/react-dom": "19.2.3"
  }
}
{
  "name": "kiru-app",
  // ...
  "dependencies": {
    "kiru": "0.53.0"
  },
  "devDependencies": {
    "vite": "7.2.2",
    "vite-plugin-kiru": "0.31.0",
    "typescript": "5.9.3"
  }
}

Let's build the modern web!