Qrati SDK
import { Card, CardGrid } from ‘@astrojs/starlight/components’;
Why the SDK
Section titled “Why the SDK”Qrati Connect embeds a complete, ready-made
gallery UI in minutes. @qratilabs/qrati-sdk is the same platform without the
widget — the same operations, called directly, so you own the UI end to end:
a custom drop zone, your own design system, a gallery that looks nothing like
Connect’s, or an upload triggered from a flow the widget doesn’t cover.
It’s headless in the same sense any API-first product is: the platform does the work (storage, processing, ownership, moderation), your code does the rendering. Uploads are live today; the rest of Connect’s surface — gallery browsing, curation, reactions, leaderboards — is being built out the same way, one piece at a time. See the Roadmap for the full picture.
@qratilabs/qrati-sdk is TypeScript, but Qrati isn’t a TypeScript-only platform —
underneath every SDK is the same REST API, which any language can already
call directly. TypeScript is just the first official, ergonomic wrapper;
more languages are planned, not a TypeScript-forever decision.
Quick look
Section titled “Quick look”import { createQrati } from '@qratilabs/qrati-sdk';
const qrati = createQrati(API_KEY, { uid, fname, lname });
const { contentId } = await qrati.upload({ eventId, file, onProgress: ({ percent }) => setProgress(percent),});Continue with Getting started, or see the Roadmap for what’s shipped versus what’s next.