Packages overview
The workspace is split into small packages, each usable on its own. None is published to npm yet: build them from the repository.
| Package | Role | Depends on |
|---|---|---|
nexdk |
The SDK: createSdk, defineResource, defineDriver, resolveHeaders and the types. See the API reference. |
nothing |
@nexdk/http |
REST toolkit: request, createRequest, HttpError, toQuery, splitId, encodeId. |
nexdk (peer) |
@nexdk/hooks |
useResourceForm (Vue forms with Zod). |
nexdk, vue, zod 3 or 4 (peers) |
@nexdk/driver-lomkit |
Laravel + Lomkit (search, mutate, delete). |
nexdk, @nexdk/http (peers) |
@nexdk/driver-nhost |
Hasura GraphQL and subscriptions. | nexdk (peer) |
@nexdk/driver-supabase |
Supabase queries and postgres_changes. |
nexdk, @supabase/supabase-js (peers) |
@nexdk/driver-nest |
Conventional REST CRUD (NestJS). | nexdk, @nexdk/http (peers) |
@nexdk/driver-symfony |
Symfony / API Platform (Hydra). | nexdk, @nexdk/http (peers) |
@nexdk/driver-pocketbase |
PocketBase records API. | nexdk, @nexdk/http (peers) |
@nexdk/driver-strapi |
Strapi v5 REST. | nexdk, @nexdk/http (peers) |
@nexdk/driver-firebase |
Cloud Firestore REST. | nexdk, @nexdk/http (peers) |
The independence rule
Section titled “The independence rule”The nexdk core depends on nothing: no validator, no event library, no mock engine. @nexdk/hooks is the one exception, because it reads Zod internals.
Extensions peer-depend on nexdk only: you bring the SDK, they do not bundle it.
Outside the workspace
Section titled “Outside the workspace”beepr, shamock and dialectr live in their own repositories. nexdk depends on none of them. See Ecosystem.
Naming
Section titled “Naming”Official drivers are @nexdk/driver-*. Community drivers are nexdk-driver-*. See Writing a driver.