Consumer App & SDK Roadmap
Scope: Build a cross-platform SDK and a demo Consumer app to test it, ensuring the public API works smoothly.
Goals
- SDK Composable Architecture: Inspired by the Directus SDK. The SDK is extensible (
.with(rest()),.with(graphql())) and supports Typegen.
GraphQL (v1): the
.with(graphql())adapter has been implemented (items: query + mutation). See the GraphQL API Spec and ADR-009.
- NPM Package: Build a build system (tsup) to package the library in ESM, CJS, and DTS formats, ready to publish.
- Consumer Demo: A Next.js app as a worked example of using the SDK (fetch data, render).
Task Breakdown
1. Refactor @lumibase/sdk
- Convert the architecture to a Composable Client (
createLumiClient().with(...)). - Separate the Core Logic from the Rest Implementation (e.g.
src/rest/readItems.ts). - Set up the tsup builder, update
package.jsonto export the standard endpoints.
2. Update Studio CMS
- Migrate all usages of the old
createLumiClientto the new syntax (inapps/studio).
3. Bootstrap the Consumer App (apps/consumer)
- Create a Next.js App Router boilerplate.
- Integrate
@lumibase/sdk. - Demo fetching items from an arbitrary collection through the SDK with SSR/CSR.