Roadmap
A living list of what is planned for KatanaKit (katanakit-js). Contributions
are welcome — pick something and open a pull request.
Legend: [x] done · [ ] planned.
Shipped (as of 2.2.1)
Architecture and packaging
- Hexagonal reorganization into
types/,core/services/,infrastructure/,adapters/,config/. - Pure ESM: relative imports with explicit
.jsextensions,module: nodenext,"type": "module"and anexportsmap with subpaths (katanakit-js/adapters/express,katanakit-js/adapters/nuxt). -
use*method convention across every service (onlygetInstance()is exempt). - Destructured, tree-shakeable exports from Singleton facades.
- Single source of truth for contracts and domain types in
src/types/. - No side effects on import; SSR-safe infrastructure adapters.
- Removed TypeScript errors, import-time side effects and duplicate types.
- Dependency restructure: only
@js-temporal/polyfillas a runtime dependency;express,cors,dotenvandvueas optional peer dependencies. - Package renamed for publication as
katanakit-js(previously developed askatanakit-dev).
Services and adapters
- Core services: HTTP client, logger, formatter, converter, errors, generator, dates (Temporal), geometry, timing, data/system utilities and the reactive signals kernel.
- Infrastructure adapters: DOM, storage, viewport, sensors, observer (+ lazy loader), worker (+ pools) and theme.
- Astro adapter (
AstroService) forgetStaticPaths. - RSS service (
RssService) with raw XML generation and AstroGETendpoints — no external dependencies. - Site config (
SiteConfig/siteConfig) and SEO module (useHeadTags,useGenerateMetaTags,useTitle,useRssHeadLink). - Nuxt adapter (
katanakit-js/adapters/nuxt):useUnwrap,useSafeResponse,useEventResponse. - Vue adapter (
katanakit-js/adapters/vue):useKatanaFetchcomposable (data,error,loading,refetch). - Express reference server (
katanakit-js/adapters/express) with CORS restriction defaults and hardened headers. - Worker pool concurrency fixed by correlating tasks with a
taskIdecho. -
useEncryptgenerates a random salt when none is provided.
Quality and tooling
- Vitest suite: 60 tests across 8 files (http, logger, storage, core, rss,
nuxt, seo, vue) with the
@/alias. - ESLint + Prettier lint + format wired (
lint,check,formatscripts). -
release:patch|minor|major|betascripts with avalidategate (check + test + build). - English documentation: README, Getting Started, Architecture, API Reference, Roadmap, CONTRIBUTING, SECURITY, CHANGELOG.
- Security fixes applied: URL scheme validation, DOM
on*attribute block, JSON-LD</script>escaping, worker cleanup, generic server errors.
Next
- Publish
katanakit-js2.2.1 to npm (the package is renamed and versioned but not yet released). - HTTP client: request interceptors, retry with backoff, request
cancellation (
AbortSignal) and a caching layer (stale-while-revalidate). - Reactive: automatic dependency tracking for
useCreateEffect/useCreateMemo. - More framework adapters: React hooks (
useApi,useSignal) and Svelte stores. - Structured/JSON logger strategy.
- Add Vitest coverage reporting and a CI pipeline (GitHub Actions) running
check,testandbuildon thedevbranch.
Later
- UI kit (Katana UI) — tokens, headless primitives, layouts and app pages. See the UI Kit section.
- Deno / Cloudflare Workers compatibility pass.
- More geometry (3D solids) and unit-system conversions.
- i18n and relative-time output for
DatesService.useDiff. - E2E tests for the Express adapter.
- AbortController support in
useInterval/timeout helpers.