A modular toolkit for building high-performance orderbook visualizations with time travel playback using Kraken's WebSocket API. TypeScript-first, framework-agnostic, production-ready.
- Ready-to-use Components: Based on shadcn/ui and Tailwind CSS for orderbook visualization, configuration, and asset pair selection
- Time Travel Playback: Replay and analyze historical orderbook states
- High-Performance WebSocket: Optimized Kraken WS integration with throttling and debouncing
- 7+ React Hooks: Composable hooks for orderbook data, subscriptions, and state management
- Framework Agnostic: Use with React, or build for vanilla JS and your favorite framework
- TypeScript First: Full type safety across core, hooks, and UI kit
- Node.js 20+
- Bun (or npm/yarn/pnpm)
# Clone the repository
git clone https://github.com/fapiper/krono.git
# Navigate to the project directory
cd krono
# Install dependencies
bun install
# Start development server
bun devFor detailed setup instructions, read the documentation.
Full documentation is available at krono.fabianpiper.com/docs.
Krono uses a monorepo structure managed by Turborepo:
krono/
├── apps/ # Deployable applications
│ ├── web/ # Showcase app
│ ├── docs/ # Documentation
│ └── storybook/ # Component library
├── examples/ # Example integrations
│ ├── react/ # React integration
│ └── nextjs/ # Next.js integration
└── packages/ # Shared packages
├── core/ # Core orderbook logic
├── hooks/ # React hooks
├── kit/ # UI components
├── tsconfig/ # Shared TypeScript configs
└── ui/ # Base UI primitives
Each app is self-contained and independently deployable. Packages are shared across apps for consistency and maintainability.
- TypeScript - Static type checking
- Biome - Code linting, formatting, and fixing
- Vitest - Unit testing
- Playwright - End-to-end testing
- Storybook - Component development and documentation
bun build- Build all apps and packagesbun dev- Develop all apps and packagesbun dev:ui- Develop with Turbo's experimental UIbun test- Run all tests with Vitestbun test:cov- Run tests with coverage reportbun test:cov:ui- Run tests with Vitest UIbun test:e2e- Run end-to-end tests with Playwrightbun lint- Lint and format all packagesbun lint:fix- Lint, format, and fix all packagesbun clean- Clean up allnode_modulesanddistfoldersbun ui:add:component- Add a shadcn/ui component to@krono/uibun storybook- Run Storybook for component development
We use GitHub Actions for continuous integration. Every push or pull request to the main branch runs:
- Setup - Checks out code and sets up Bun
- Install - Installs dependencies
- Build - Builds all apps and packages
- Unit Tests - Runs tests with Vitest
- E2E Tests - Runs tests with Playwright
- Lint - Performs linting and formatting checks with Biome
We welcome contributions! See the contributing guide for details.
Made with contrib.rocks.
MIT © Fabian Piper