Components
CRUD and action UI for your Quickback API, installed into your own React app with shadcn. Base-ui only.
Add tables, forms, and action dialogs for your API to your own React app with
shadcn add. There's no fork of the CMS and no admin framework involved. Each
component is a file in your repo, and you edit it like any other code.
npx shadcn add @quickback/resource-table @quickback/resource-form @quickback/action-dialogTwo layers
| Layer | Who owns it | Regenerated? | Knows the wire format? |
|---|---|---|---|
quickback.client.ts | The compiler emits it (client config) | Every compile | Yes. Only this file does. |
quickback-provider, resource-table, resource-form, action-dialog | You. shadcn add copies them into your repo | Never | No |
The components never build a URL, unwrap a list envelope, or parse
application/problem+json. They call the emitted
fetch client and read the
schema registry for column kinds, guards, and
action inputs. When the API changes shape, you recompile and only the client
changes. Your edits to the components survive.
Base-ui only
The items target shadcn's base-ui styles (base-nova, base-mira, …).
Radix styles are not supported.
- They compose your own primitives (
button,dialog,table, …) throughregistryDependencies, using base-ui'srender=prop where composition is needed. - They never use Radix's
asChild. On a base-ui project,shadcn addsilently rewritesasChildtorender={<firstChild />}. That still typechecks but drops the other children. - The namespace URL includes the style (
/r/{style}/{name}.json), and onlybase-*paths exist. A Radix project therefore fails at install, with a404that names its style, before any file is written.
Pages
- Install: the
clientconfig, the@quickbacknamespace, and direct URLs - Auth: cookie vs bearer, React Native
quickback-provider:<QuickbackProvider>and the TanStack Query hooksresource-table: paginated, sortable, searchable listresource-form: create / edit formaction-dialog: run an action with its inputs- Build a frontend: end-to-end guide