A monorepo of small, focused libraries for JavaScript environments — browsers, Node.js, and other modern runtimes.
Everything here is written in TypeScript and ships with type definitions, so you get autocompletion and type safety out of the box whether your own project uses TypeScript or plain JavaScript. The packages are ESM-only, tree-shakeable, and keep external dependencies to a minimum, so you only pay for what you actually import.
Each package is published independently to npm, using the @zemd and @logtown scopes where applicable — pick just the one you need.
| Package | Version | License | Description |
|---|---|---|---|
@zemd/color |
Apache-2.0 |
Typed sRGB, OKLab, and OKLCH color utilities | |
@zemd/std-modules |
BlueOak-1.0.0 |
Standalone ECMAScript modules for diverse use cases | |
@zemd/http-client |
Apache-2.0 |
A lightweight framework to build your custom fetch |
|
@zemd/openapi |
Apache-2.0 |
OpenAPI TypeScript definitions and tools | |
@zemd/tsconfig |
MIT |
Shared TypeScript configs with strict defaults | |
logtown |
Apache-2.0 |
Versatile logging wrapper for JavaScript projects | |
@logtown/hono |
Apache-2.0 |
Hono middleware for logging with logtown |
| Package | Version | License | Description |
|---|---|---|---|
@zemd/figma-rest-api |
Apache-2.0 |
Lightweight, fetch-based, type-safe Figma REST API client | |
@zemd/flickr-rest-api |
Apache-2.0 |
Flickr API client simplified |
git clone https://github.com/zemd/js.git
cd js
pnpm installNote
The repository uses pnpm workspaces. Install it with corepack enable or follow the pnpm installation guide.
All tasks are orchestrated by Turborepo and run across every workspace package.
| Command | Description |
|---|---|
pnpm build |
Build all packages |
pnpm test |
Run unit tests |
pnpm test-browser |
Run browser-based tests |
pnpm test-browser-setup |
Download the Chromium build used by browser tests |
pnpm typecheck |
Type-check all packages |
pnpm format |
Format the codebase with oxfmt |
pnpm format-check |
Verify formatting without writing changes |
pnpm lint |
Run type-aware linting and auto-fix with oxlint |
pnpm lint-check |
Run type-aware linting and fail on warnings |
pnpm lint-publish |
Validate publishable package metadata (publint) |
To run a script for a single package, use the workspace filter:
pnpm --filter @zemd/http-client buildTo report a vulnerability, follow SECURITY.md.
Issues and pull requests are welcome. Before opening a PR, please make sure that pnpm lint-check, pnpm format-check, pnpm typecheck, and pnpm test all pass.
Each package declares its own license — see the table above and the LICENSE file inside every package directory. Unless stated otherwise, packages are released under Apache-2.0 😇.