TypeScript SDK for the Lytics API with a plugin architecture.
Core (@lytics/lio-client): Generic Lytics API client (workflows, content, schema)
Plugins (@lytics/lio-client-*): CMS integrations (Contentstack example)
Stack: TypeScript + tsup + Vitest + pnpm/Turborepo
Fill the gap between Go SDK and JS/TS ecosystem. Enable any Lytics integration.
Start: pnpm install && pnpm build
Dev: pnpm dev (watch mode)
Test: pnpm test
Release: pnpm changeset (see @.claude/rules/changesets.md)
Packages: pnpm -F "@lytics/lio-client" <command>
- Type-safe - Strict TypeScript, no
any - Plugin-based - Functional plugins (SDK Kit patterns)
- Not content-specific - Core is generic, plugins add CMS features
- Universal - Node.js, browser, edge
Specs: specs/prd.md, specs/spec.md
Deep dives (search when needed):
- @.claude/rules/architecture.md - Monorepo, plugins, SDK Kit
- @.claude/rules/typescript.md - Strict mode, types, patterns
- @.claude/rules/testing.md - Vitest, mocking, patterns
- @.claude/rules/api-patterns.md - Lytics API, auth, responses
- @.claude/rules/publishing.md - OIDC trusted publishing setup (for npm releases)
- @.claude/rules/changesets.md - Version management workflow (how to release)
❌ Don't use Jest (use Vitest)
❌ Don't make core content-specific (use plugins)
❌ Don't use classes for plugins (use functions)
❌ Don't call fetch directly (use transport layer)