nanostores/nanostores

A tiny (340 bytes) state manager for React/RN/Preact/Vue/Svelte with many atomic tree-shakable stores

View on GitHub ↗Jump to charts ↓Open shareable report →

nanostores/nanostores has 7.5k+ stars and 150+ forks on GitHub, is written in TypeScript, and was last pushed on Oct 15, 2026. Data as of . Signed-in members get hourly updates — create a free account.

Summary Information

Updated 19 minutes ago
Added to GitGenius on September 8th, 2026
Created on October 14th, 2020
Open Issues & Pull Requests: 23 (+0)
GitHub issues: Enabled
Number of forks: 164
Total Stargazers: 7,627 (+1)
Total Subscribers: 24 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 1.4 hours
Mean response time: 22.5 days
90th percentile: 3.3 days
Tracked items: 30

Maintainer activity

2 people did triage or write work on this repository in the last 12 months.

Counts unlabeled, assigned, unassigned, milestoned, demilestoned, locked, unlocked over the last 12 months. These are issue and pull request events that require triage or write permission. Commits and code review are not counted. labeled and renamed are excluded because GitHub issue forms record the issue author as the actor. Figures from October 11, 2026. This count is not comparable across projects: each project's automation decides which of these events a person emits. How this is counted.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 10
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 845 days
Stale 30+ days: 6
Stale 90+ days: 6

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

Sign in to see which issues are moving.
Sign in

Detailed Description

Nanostores is a state manager for React, React Native, Preact, Vue, Svelte, Solid, Lit, Angular, and vanilla JavaScript that uses many atomic tree-shakable stores.

The tool addresses the problem of bloated state management by keeping bundle size minimal while maintaining performance. It works through atomic stores and direct manipulation, allowing components to subscribe only to the specific stores they need rather than triggering selector functions across all components on every change. The architecture is designed to move business logic out of components and into stores, with computed stores enabling derived state and effects enabling side effects.

Nanostores suits projects where bundle size matters and where you prefer explicit, atomic state over normalized global state. It works well in applications targeting multiple frameworks since it provides framework-specific integrations rather than being framework-locked. The ecosystem includes optional smart stores for async operations, persistence, routing, media queries, and other common patterns, so you can add only what you need. Teams already comfortable with direct store manipulation and atomic design patterns will find the approach natural; those expecting a Redux-like normalized store structure should evaluate whether the atomic model fits their mental model.

The project maintains strict size control through automated tooling and has invested in TypeScript support. Development activity shows attention to framework compatibility across a wide range of targets and a modular plugin ecosystem where functionality like async operations, persistence, and routing are maintained as separate packages rather than bundled into the core.