What is aleup?
aleup is a headless, modular document toolkit for React apps. It gives you:
- Import — files from local disk and cloud providers (Google Drive, OneDrive, Box, Dropbox) via Uppy + Companion, streamed server-side so bytes never touch the browser.
- View — pdf / docx / markdown / text / images with format-appropriate renderers.
- Edit — markdown and DOCX in-app (headless Tiptap), with high-fidelity DOCX round-tripping: only the blocks the user changed are patched, so every byte of untouched formatting survives.
- Export — the exact DOM the user is looking at, paginated to PDF.
- Save back — to a user's connected cloud drive.
The one rule
aleup never knows about your app. No auth, no database, no storage opinions. Host
concerns are injected through small interfaces called ports —
DestinationPort says where uploaded bytes go, CredentialsPort supplies OAuth app
credentials, and so on. That's also what makes npm update safe: vendor libraries
(Uppy, Tiptap, docxodus, html2pdf.js) are peer dependencies touched only inside
adapters, and the behaviors we rely on are pinned by contract tests that run in CI
against the installed versions.
Headless first, themeable always
Every capability ships as hooks/logic with zero UI. The optional React components share
one theming contract — per-slot classNames, components slot
substitution, data-aleup-* attributes, and --aleup-* CSS variables — so the same
picker renders native in shadcn, MUI, daisyUI, Mantine, or anything else. See the
examples.
Packages
| Package | What it does |
|---|---|
@aleup/core | Ports, MIME registry, format detection. Zero runtime deps. |
@aleup/import | useUppyImport + useCloudDrivePicker headless hooks. |
@aleup/companion | Config-mapped factory for the Uppy Companion server. |
@aleup/editor | Headless Tiptap document editor preset + page component. |
@aleup/view | Format router; DOCX/markdown renderers behind opt-in subpaths. |
@aleup/docx | DOCX ⇄ HTML/Markdown translation + editing sessions (WASM). |
@aleup/pdf | DOM → paginated PDF export. |
@aleup/connect | OAuth + save-back write clients, fetch-only. |
Install only what you use — @aleup/core is the single shared dependency.