Introducing rill ⚡ A faster, drop-in replacement for Streamdown, the Markdown renderer for chat UIs
Built with Rust + WASM. Same React API, identical DOM output. Just swap the import
- 4.4× faster long-chat startup
- 6.6× less main-thread work
- 3× less memory
bun add @2018kguo/rill
Built with Rust + WASM. Same React API, identical DOM output. Just swap the import
- 4.4× faster long-chat startup
- 6.6× less main-thread work
- 3× less memory
bun add @2018kguo/rill
8
2
21
554
cranking a bunch of coding agents on your codebase = a massive CI bill. so I cut CI costs ~10x and made it much faster.
1/ switched from Blacksmith to boat.dev. ~13x cheaper compute per runner-minute, plus warm runners that cut setup from minutes to seconds.
2/ CPU-profiled every CI command. turns out TS loaders and spawning processes per test file cost more than the tests themselves. also cut redundant tests.
3/ stopped running all tests on every PR. static checks + a decision model (Jev) select relevant tests using the import graph. full suite still runs on a schedule.
4/ switched to faster tooling: tsrs/Bun check, oxlint, oxfmt, oxc loaders.
5/ forced Git to HTTP/1.1 to avoid HTTP/2 stream resets that occasionally made checkouts take 10+ minutes.
6/ don't forget the basics: cheap checks first, pre-commit hooks, path-based job filtering, cancel superseded runs, cross-run caching, and time-balanced test sharding.
wrote everything up as a skill:
npx skills add 2018kguo/optimize-ci
1/ switched from Blacksmith to boat.dev. ~13x cheaper compute per runner-minute, plus warm runners that cut setup from minutes to seconds.
2/ CPU-profiled every CI command. turns out TS loaders and spawning processes per test file cost more than the tests themselves. also cut redundant tests.
3/ stopped running all tests on every PR. static checks + a decision model (Jev) select relevant tests using the import graph. full suite still runs on a schedule.
4/ switched to faster tooling: tsrs/Bun check, oxlint, oxfmt, oxc loaders.
5/ forced Git to HTTP/1.1 to avoid HTTP/2 stream resets that occasionally made checkouts take 10+ minutes.
6/ don't forget the basics: cheap checks first, pre-commit hooks, path-based job filtering, cancel superseded runs, cross-run caching, and time-balanced test sharding.
wrote everything up as a skill:
npx skills add 2018kguo/optimize-ci
5
0
13
634
