awesome-tiny-js

Bundle trimmer

A collection of tiny JavaScript libraries to help reduce bundle size

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

GitHub

703 stars
15 watching
12 forks
Language: JavaScript
last commit: about 2 months ago
Linked from 1 awesome list

awesomeawesome-listjavascripttinytypescript

Awesome Tiny JS / UI Frameworks

preact 36,827 7 days ago React-like API (pre-hooks). Cool ecosystem of similarly tiny tools and components. Highly recommended
hyperapp 19,082 about 1 month ago vDOM framework with pure JS syntax and immutable state,
redom 3,424 5 months ago Hyperapp-style templates with event listeners and updates,
fre 3,715 8 months ago React-like library with hooks and concurrency,
van 3,891 7 days ago vDOM-based framework optimized for no-build setups,
superfine 1,597 over 2 years ago Hyperapp with state & effect hooks removed,
arrowjs 2,404 6 months ago Tagged templates + reactive data,
umbrella 2,302 about 2 months ago jQuery-style DOM manipulation library,

Awesome Tiny JS / Event Emitters

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

Awesome Tiny JS / State Managers

zustand 47,989 9 days ago Simple stores with pleasant actions and selectors. Vanilla , React
nanostores 5,401 2 months ago Modular store with good tree-shaking support, vanilla, + React extra. Supports all the top frameworks
exome 238 4 months ago Atomic stores with lots of framework connectors, + React extra. Supports all the top frameworks
storeon 1,977 22 days ago Minimal redux-styled store with lots of framework connectors, . React extra + Vue, Svelte, Angular
unistore 2,858 over 3 years ago Centralized store with actions, + React
teaful 713 about 2 years ago Store with useState-like API, , including React / preact connector

Awesome Tiny JS / State Managers / Signals

@preact/signals 3,803 about 1 month ago The OG signals from preact core, with react integration
usignal 221 about 1 month ago A smaller signal implementation,
hyperactiv 439 about 2 months ago 4 functions to make objects observable and listen to changes,
flimsy 187 10 months ago Signals from Solid (it fit into UI frameworks category itself). Author warning:

Awesome Tiny JS / State Managers / Reactive Programming

flyd 1,563 10 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,743 about 2 months ago Declarative router for React / preact, , also available as a standalone hook:
@nanostores/router 246 about 1 month ago Routes as a nanostores store (framework-agnostic),
navaid 783 10 months ago History-based observable router,
matchit 322 about 3 years ago Route parser and matcher in
regexparam 568 12 months ago Convert path to regexp in
qss 445 over 1 year ago Parse querystrings in . Not sure you need it, support is good

Awesome Tiny JS / API Layer

redaxios 4,713 over 1 year ago Drop-in axios replacement for modern browsers,
wretch 4,830 6 days ago Chainable API with error processing and lots of extra plugins,
gretchen 330 about 1 year ago Chainable API with type-safe errors,
unfetch 5,710 over 1 year ago Loose fetch polyfill,

Awesome Tiny JS / I18N

@nanostores/i18n 229 4 months ago Detect locale, load dictionaries, format dates / numbers, including nanostores
eo-locale 348 6 days ago Interpolation and dates / numbers, , or with react bindings
rosetta 790 10 months ago Bare-bones template strings ( ) and custom functions for everyting else,
lingui 4,613 9 days ago Small core with template strings,

Awesome Tiny JS / Dates and Time

date-fns 34,872 about 2 months ago Not tiny as a whole, but are under 1 kB each (format and parse are quite heavy)
dayjs 47,000 10 days ago moment.js-compatible API, covers most use cases,
tinytime 1,338 almost 2 years ago Simple date / time formatter: ,
tinydate 1,066 10 months ago Date / time formatter, only supports padded numeric output ( ),
time-stamp 111 almost 4 years ago More of the same,
ms 5,159 3 months ago Parse & format ms durations, e.g. ,
timeago.js 5,325 4 months ago Format dates into stuff like or
fromnow 190 over 5 years ago More of the same,

Awesome Tiny JS / Generic Utilities

remeda 4,532 4 days ago 90 tree-shakable helpers
rambda 1,658 16 days ago 187 tree-shakable helpers
just 6,043 9 months ago 82 helpers in separate packages
@fxts/core 936 11 days ago 96 tree-shakable helpers. Lazy evaluation support

Awesome Tiny JS / Validation

v8n 4,170 2 months ago zod-style API with fine-grained checks: . No tree shaking,
banditypes 168 over 1 year ago The smallest validation library:
superstruct 7,024 about 2 months ago The most popular modular validation library with good tree-shaking,
valibot 6,262 6 days ago Another modular validation library,
deep-waters 200 almost 2 years ago Composable functional validators,

Awesome Tiny JS / Unique ID Generation

@lukeed/uuid 396 about 2 months ago Real UUIDs,
nanoid 24,655 24 days ago Random IDs with larger alphabet,
uid 655 about 2 months ago More of the same,
hexoid 195 about 1 month ago Hexadecimal IDs,

Awesome Tiny JS / Colors

colord 1,692 about 1 year ago Manipulate colors and convert between spaces, . Extra features come as plugins, 150b to 1.5 kB each
colr 105 over 4 years ago More of the same,
polychrome 288 almost 7 years ago More of the same,
randomcolor 6,092 10 months ago Attractive random colors with configuration

Awesome Tiny JS / Touch Gestures

alloyfinger 3,431 almost 6 years ago Pan, swipe, tap, doubletap, longpress, pinch / rotate. My personal favorite.
tinygesture 210 12 months ago Configurable pan, swipe, tap, doubletap, longpress.
pointer-tracker 185 about 2 months ago Unified interface for mouse, touch and pointer events,
detect-it 419 over 3 years ago Detect present and primary input method (touch / mouse) and supported events,
js-search 2,209 over 1 year ago Feature-rich and customizable: multi-field indices, stop words, custom stemmers and tokenizers
ndx 153 over 1 year ago Similar to js-search, differs in and is less strict for multi-word queries . Supports field weights
wade 2,978 over 1 year ago Also similar,
libsearch 163 over 2 years ago Index-free search (slower, but easier to use) with sane ordering
stemmer 129 about 2 years ago -
porter-stemmer 100 about 4 years ago -
fuzzy 831 almost 3 years ago Index-free, can highlight matches
fuzzy-search 224 over 1 year ago With stateful index
fzy.js 152 about 2 months ago Matches one string at a time, tree-shakeable scores and match highlighting. total, or ~150 bytes for only
fuzzysearch 2,712 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 almost 2 years 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,369 almost 3 years ago Find misspellings, e.g. missipissi -> Missisipi, Commercial usage costs $42

Backlinks from these awesome lists:

More related projects: