holectus

@holectus/react

React component for a file checklist

Mount <DocumentChecklist /> so a signed-in user sees which files they still owe, uploads them, and watches status — without leaving your product.

Start building

What the checklist shows

Each row is a required or optional slot you configure: a W-9, an insurance certificate, a license. The React file checklist lists those slots for one subject, with template downloads when you attach them, MIME and size checks on upload, and the current status.

  • Missing files stay pending until the user uploads
  • Submitted files move through uploaded, in review, approved, or rejected
  • Expiring and expired slots invite a replacement file

Drop it into any React 19 app

Next.js is optional. Your server mints a short-lived subject token; the component calls that route, then talks to Holectus for status and uploads. The API key never reaches the browser.

documents.tsx
import { DocumentChecklist } from '@holectus/react';
import '@holectus/react/styles.css';

export function SubjectDocuments({ subjectId }) {
  return (
    <DocumentChecklist
      tokenEndpoint={`/api/holectus/session?s=${subjectId}`}
    />
  );
}

After the file is in

Collection is how files get in. Validity is the gate: query which slots are still good, and call assert_valid before you unlock the next step. Signed webhooks fire when a file is uploaded, approved, expiring, or expired.

How to wire it