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.
| Workspace | Purpose |
|---|---|
apps/docs |
Documentation site for the public packages, built with Fumadocs and TanStack Start and deployed to Cloudflare Workers. |
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. |
| 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. |
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.
- TypeScript and Effect
- pnpm workspaces
- Vite+ for repository-wide tasks
- Vitest for tests
- Changesets for package versioning and npm releases
The release workflow uses Node.js 24 and pnpm 10.
corepack enable
pnpm installRun a task across all workspaces that define it:
pnpm build
pnpm lint
pnpm test
pnpm fmtTo work on one project, filter by its workspace name:
pnpm --filter docs dev
pnpm --filter std-toolkit test
pnpm --filter laymos lintOther 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.