awesome-tiny-js

🤏 A collection of tiny JS libraries (under 2 kB) to put your bundle on a diet

GitHub

688 stars
15 watching
12 forks
Language: JavaScript
last commit: 11 days ago
Linked from 1 awesome list

awesomeawesome-listjavascripttinytypescript

Awesome Tiny JS / UI Frameworks

preact 36,634 3 days ago React-like API (pre-hooks). Cool ecosystem of similarly tiny tools and components. Highly recommended
hyperapp 19,065 about 1 month ago vDOM framework with pure JS syntax and immutable state,
redom 3,420 3 months ago Hyperapp-style templates with event listeners and updates,
fre 3,706 6 months ago React-like library with hooks and concurrency,
van 3,814 21 days ago vDOM-based framework optimized for no-build setups,
superfine 1,568 about 2 years ago Hyperapp with state & effect hooks removed,
arrowjs 2,376 5 months ago Tagged templates + reactive data,
umbrella 2,287 5 months ago jQuery-style DOM manipulation library,

Awesome Tiny JS / Event Emitters

mitt 10,717 about 2 months ago Plain event emitter that I use on most projects,
nanoevents 1,470 3 months ago Nicer unsubscribe API, but no event,
onfire.js 498 over 5 years ago Also has method,

Awesome Tiny JS / State Managers

zustand 46,633 12 days ago Simple stores with pleasant actions and selectors. Vanilla , React
nanostores 5,211 25 days ago Modular store with good tree-shaking support, vanilla, + React extra. Supports all the top frameworks
exome 235 about 2 months ago Atomic stores with lots of framework connectors, + React extra. Supports all the top frameworks
storeon 1,978 15 days ago Minimal redux-styled store with lots of framework connectors, . React extra + Vue, Svelte, Angular
unistore 2,855 over 3 years ago Centralized store with actions, + React
teaful 712 almost 2 years ago Store with useState-like API, , including React / preact connector

Awesome Tiny JS / State Managers / Signals

@preact/signals 3,746 10 days ago The OG signals from preact core, with react integration
usignal 212 over 1 year ago A smaller signal implementation,
hyperactiv 435 11 days ago 4 functions to make objects observable and listen to changes,
flimsy 186 8 months ago Signals from Solid (it fit into UI frameworks category itself). Author warning:

Awesome Tiny JS / State Managers / Reactive Programming

flyd 1,563 8 months ago Rx-styled event streams,
callbag-basics 1,650 over 1 year ago Rx-style event streams,

Awesome Tiny JS / Routers and URL Utils

wouter 6,633 17 days ago Declarative router for React / preact, , also available as a standalone hook:
@nanostores/router 239 2 months ago Routes as a nanostores store (framework-agnostic),
navaid 774 9 months ago History-based observable router,
matchit 321 almost 3 years ago Route parser and matcher in
regexparam 564 10 months ago Convert path to regexp in
qss 442 over 1 year ago Parse querystrings in . Not sure you need it, support is good

Awesome Tiny JS / API Layer

redaxios 4,662 about 1 year ago Drop-in axios replacement for modern browsers,
wretch 4,791 10 days ago Chainable API with error processing and lots of extra plugins,
gretchen 329 about 1 year ago Chainable API with type-safe errors,
unfetch 5,707 about 1 year ago Loose fetch polyfill,

Awesome Tiny JS / I18N

@nanostores/i18n 224 2 months ago Detect locale, load dictionaries, format dates / numbers, including nanostores
eo-locale 348 about 1 year ago Interpolation and dates / numbers, , or with react bindings
rosetta 785 9 months ago Bare-bones template strings ( ) and custom functions for everyting else,
lingui 4,484 10 days ago Small core with template strings,

Awesome Tiny JS / Dates and Time

date-fns 34,607 12 days ago Not tiny as a whole, but are under 1 kB each (format and parse are quite heavy)
dayjs 46,748 12 days ago moment.js-compatible API, covers most use cases,
tinytime 1,337 over 1 year ago Simple date / time formatter: ,
tinydate 1,064 9 months ago Date / time formatter, only supports padded numeric output ( ),
time-stamp 111 almost 4 years ago More of the same,
ms 5,123 about 1 month ago Parse & format ms durations, e.g. ,
timeago.js 5,306 2 months ago Format dates into stuff like or
fromnow 190 about 5 years ago More of the same,

Awesome Tiny JS / Generic Utilities

remeda 4,440 8 days ago 90 tree-shakable helpers
rambda 1,646 9 days ago 187 tree-shakable helpers
just 6,007 8 months ago 82 helpers in separate packages
@fxts/core 881 24 days ago 96 tree-shakable helpers. Lazy evaluation support

Awesome Tiny JS / Validation

v8n 4,170 18 days ago zod-style API with fine-grained checks: . No tree shaking,
banditypes 167 over 1 year ago The smallest validation library:
superstruct 6,978 5 days ago The most popular modular validation library with good tree-shaking,
valibot 5,994 2 days ago Another modular validation library,
deep-waters 199 over 1 year ago Composable functional validators,

Awesome Tiny JS / Unique ID Generation

@lukeed/uuid 395 8 days ago Real UUIDs,
nanoid 24,423 about 1 month ago Random IDs with larger alphabet,
uid 650 11 days ago More of the same,
hexoid 192 9 months ago Hexadecimal IDs,

Awesome Tiny JS / Colors

colord 1,673 about 1 year ago Manipulate colors and convert between spaces, . Extra features come as plugins, 150b to 1.5 kB each
colr 104 over 4 years ago More of the same,
polychrome 287 over 6 years ago More of the same,
randomcolor 6,078 8 months ago Attractive random colors with configuration

Awesome Tiny JS / Touch Gestures

alloyfinger 3,427 almost 6 years ago Pan, swipe, tap, doubletap, longpress, pinch / rotate. My personal favorite.
tinygesture 205 10 months ago Configurable pan, swipe, tap, doubletap, longpress.
pointer-tracker 184 11 days ago Unified interface for mouse, touch and pointer events,
detect-it 415 over 3 years ago Detect present and primary input method (touch / mouse) and supported events,
js-search 2,202 over 1 year ago Feature-rich and customizable: multi-field indices, stop words, custom stemmers and tokenizers
ndx 152 over 1 year ago Similar to js-search, differs in and is less strict for multi-word queries . Supports field weights
wade 2,975 over 1 year ago Also similar,
libsearch 162 about 2 years ago Index-free search (slower, but easier to use) with sane ordering
stemmer 129 almost 2 years ago -
porter-stemmer 99 about 4 years ago -
fuzzy 828 almost 3 years ago Index-free, can highlight matches
fuzzy-search 222 over 1 year ago With stateful index
fzy.js 149 11 days ago Matches one string at a time, tree-shakeable scores and match highlighting. total, or ~150 bytes for only
fuzzysearch 2,711 over 1 year ago One string at a time, does not compute score / rank
liquidmetal 295 over 4 years ago Quicksilver algorithm, prioritizes matches at start of word for command abbreviations (e.g. -> ). One string at a time
quick-score 158 over 1 year ago Another quicksilver-based lib, tweaked for long strings. Built-in list filtering and sorting, or 1.2 kB for single-string scoring
fuzzyset 1,368 almost 3 years ago Find misspellings, e.g. missipissi -> Missisipi, Commercial usage costs $42

Backlinks from these awesome lists: