Important
If you or your company are using any of my projects or like what I'm doing, please consider backing me up. I appreciate it! 🙏 Your support will help me allocate more time to the open source work.
- Become a sponsor
- Buy me a coffee ☕️
- or send a Solana airdrop 🚀 🌘, SOL:
LJJwteDZjL8u2Uhh5giwVpRa5KcHLkDogYAZntYbMsD
I maintain and contribute to OSS software, below is a list of my latest projects and writings. My current focus is on developing CRDT and OT collaborative editing solutions, local-first software, and Web3 apps.
- UI and React
react-use
andlibreact
— lots of React hooks and utility components.nano-css
andnano-theme
— the fastest and smallest CSS-in-JS library with lots of plugins (successor offreestyler
).react-embed
— embed social widgets in your React app.use-media
— CSS media queries through React hook.react-simple-player
— a minimalistic audio player React component.clickable-json
— JSON viewer and editor with hoverable and clickable objects.flexible-input
— React<input>
and<textarea>
components which stretch to fit the content.awesome-styleguides
— index of style guides and design systems.code-colors
andcode-colors-react
— code syntax highlighting libraries.use-t
— a small internationalization library for React.iconista
— 100,000 free SVG icons, available on CDN and packaged as a React component.react-router-lite
— a lightweight React router.
- Filesystem
- Collaborative editing
json-joy
, a JSON CRDT implementation and collection of JSON awesomeness.json-joy/json-crdt
— the fastest list CRDT implementation in JavaScript.json-joy/json-patch
— very fast JSON Patch (and JSON Pointer) implementation in JavaScript.json-joy/json-type
— the fastest JSON schema validation implementation in JavaScript.
collaborative-editor
— General JSON CRDTstr
node sychnonization with any editor.collaborative-input
— React<input>
and<textarea>
components with JSON CRDT real-time collaboration support.collaborative-ace
— JSON CRDT real-time collaboration bindings for Ace editor.collaborative-monaco
— JSON CRDT real-time collaboration bindings for the Monaco editor.collaborative-codemirror
— JSON CRDT real-time collaboration bindings for the CodeMirror editor.json-pointer
— JSON Pointer (RFC 6901) implementation with JIT compilation.json-expression
— JSON Expression implementation with JIT compilation.
- Data structures, algorithms, and utilities
git-cz
—feat: 🎸 emoji-fied Git commits
sonic-forest
— very fast AVL, Splay, and Radix tree implementations in JavaScript.thingies
— a collection of useful TypeScript utilities.rx-use
— useful RxJS observables for web apps.tree-dump
— utility to easily print tree-like structures.cross-ci
— env var normalization across CI/CD services.web4
🔜 soon — CRDT-based content-addressable local-first data repository.
- Parsing
json-pack
— the fastest CBOR, MessagePack, RESP3, UBJSON, JSON, and Bencode codecs in plain JavaScript.jit-router
— the fastest HTTP router in JavaScript.md-mdast
— extremely small and fast Markdown to MDAST parser.mdast-flat
— MDAST format to flat-MDAST converter.mqtt-codec
🧪💥 experimental — the fastest MQTT packet parser for Node.js.jit-parser
🧪💥 experimental — PoC of PEG recursive descent backtracking JIT parser generator.
- Server & Networking
ass-js
🧪💥 experimental — X86_64 assembler compiler in JavaScript.reactive-rcp
🧪💥 experimental — a very fast and type safe JSON Reactive RPC server and client.redis-joy
🧪💥 experimental — a very fast Redis 7+ RESP3 standalone and cluster client.node-multicore
🧪💥 experimental — PoC of a very fast thread pool for Node.js.
- Specifications
spec
JSON CRDT — Full JSON implementation as a CRDT (Conflict-free Replicated Datatype).spec
JSON CRDT Patch — The patch format for JSON CRDT.spec
JSON Expression — s-expression specification for JSON.spec
JSON Reactive RPC — JSON Reactive RPC protocol (RPC with server push) implementation.encoding
Compact JSON — A compact Tuple-Type-Value (TTV) encoding for JSON.
- Blog posts
- My random notes
note
Programmingnote
JavaScriptnote
Collaborative editingnote
Funny GitHub profiles
Your support means a lot to me and will help me to continue working on my projects!
Support
- Become a sponsor
- Buy me a coffee ☕️
- or send a Solana airdrop 🚀 🌘, SOL:
LJJwteDZjL8u2Uhh5giwVpRa5KcHLkDogYAZntYbMsD