clickvoidx is a Bun-based monorepo for building a dead-click detector package for browser applications.
packages/core: the TypeScript core package that captures clicks, observes response signals, and reports dead clicks.docs/paper.txt: the original product/design note that defines the detector MVP.docs/packages-core-api.en.md: English API and module guide.docs/packages-core-api.ko.md: Korean API and module guide.docs/release-process.en.md: English release and CI/CD guide.docs/release-process.ko.md: Korean release and CI/CD guide.
bun install
bun run checkbun run lint
bun run typecheck
bun run build
bun run test
bun run test:ci
bun run changeset:add
bun run version-packages
bun run release:dry-run
bun run example:react
bun run example:react:typecheck
bun run example:react:buildimport { createDeadClickDetector } from "@hyunrim03/clickvoidx";
const detector = createDeadClickDetector({
onDeadClick(report) {
console.log(report);
},
onHandled(click, signals) {
console.log(click, signals);
},
});
detector.start();- Runtime / package manager: Bun
- Commit guard: Husky pre-commit hook runs
bun run lint - Language: TypeScript
- Lint: Oxlint
- Version tracking: Changesets
- CI/CD: GitHub Actions
- Registry publish:
bun publishto npm
- Example app:
examples/react-latest - Start locally:
bun install
bun run example:react- Create a changeset with
bun run changeset:add. - Open and merge a feature PR into
main. - The release workflow on
maincreates or updates a version PR. - Merge the version PR.
- The release workflow runs again on
mainand publishes to npm only if lint, build, and test all pass.
To fully block direct pushes to
main, enable GitHub branch protection and require pull requests plus the CI checks documented indocs/release-process.en.md.