Skip to content

Latest commit

 

History

History
98 lines (72 loc) · 5.86 KB

File metadata and controls

98 lines (72 loc) · 5.86 KB

Kishore's monorepo

A collection of open-source TypeScript projects focused on Effect, monorepo architecture, local developer tooling, data modeling and sync, and React.

The packages are developed together in a pnpm workspace and share the same build, lint, test, formatting, and release infrastructure. Package documentation is available at docs.kishore.app.

What's included

Applications

Workspace Purpose
apps/docs Documentation site for the public packages, built with Fumadocs and TanStack Start and deployed to Cloudflare Workers.

Developer tools

These packages share a fixed Changesets version and are released together.

Workspace Package Purpose
devtools/devtools @pkishorez/devtools Local DevTools server for inspecting dependency graphs and OpenTelemetry traces, logs, and metrics.
devtools/laymos laymos Declares, enforces, and visualizes TypeScript architecture as layers, modules, and stories.
devtools/lotel @pkishorez/lotel Local OpenTelemetry server and library for ingesting, storing, and querying traces, logs, and metrics during development.

Packages

Workspace Package Purpose
packages/effect-cloudflare @pkishorez/effect-cloudflare (private) Effect building blocks for Cloudflare Workers: hibernation-safe Durable Object RPC and its WebSocket client.
packages/frontend @monorepo/frontend (private) Shared React UI components, forms, styles, hooks, and graph visualization blocks used by projects in this repository.
packages/use-effect-ts use-effect-ts React hooks for running and consuming Effect programs.

Single-table design toolkit

std-toolkit (npm) is a published package containing a set of composable modules for database-agnostic single-table design:

Entry point Purpose
std-toolkit/core Shared entity, metadata, broadcasting, and error primitives.
std-toolkit/eschema Versioned, self-migrating schemas built on Effect Schema, including the eschema CLI.
std-toolkit/dynamodb DynamoDB table and entity services, expression builders, and marshalling utilities.
std-toolkit/sqlite SQLite services with adapters for Node.js, Bun, better-sqlite3, and Cloudflare Durable Objects.
std-toolkit/tanstack-sync TanStack DB synchronization with paced writes and IndexedDB offline storage.

See the std-toolkit README for installation and entry-point documentation.

Toolchain

  • TypeScript and Effect
  • pnpm workspaces
  • Vite+ for repository-wide tasks
  • Vitest for tests
  • Changesets for package versioning and npm releases

Getting started

The release workflow uses Node.js 24 and pnpm 10.

corepack enable
pnpm install

Run a task across all workspaces that define it:

pnpm build
pnpm lint
pnpm test
pnpm fmt

To work on one project, filter by its workspace name:

pnpm --filter docs dev
pnpm --filter std-toolkit test
pnpm --filter laymos lint

Other useful repository commands:

Command Purpose
pnpm dev Start the development tasks exposed by the workspaces.
pnpm clean Remove generated dist directories and installed node_modules.
pnpm changeset Describe a publishable package change.
pnpm version Apply pending changesets and update package versions.
pnpm release Publish versioned packages to npm.

Releases from main are managed by Changesets through the GitHub Actions release workflow.