No description
  • JavaScript 71.1%
  • CSS 17.3%
  • HTML 11.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-23 13:28:22 +02:00
src update 2026-08-23 13:28:22 +02:00
static init 2026-07-22 11:27:49 +02:00
vendor update 2026-08-23 13:28:22 +02:00
.gitignore init 2026-07-22 11:27:49 +02:00
bun.lock update 2026-08-23 13:28:22 +02:00
index.html update 2026-08-23 13:28:22 +02:00
LICENSE Initial commit 2026-06-14 07:29:16 +02:00
package.json update 2026-08-23 13:28:22 +02:00
README.md init 2026-07-22 11:27:49 +02:00
styles.css update 2026-08-23 13:28:22 +02:00
tsconfig.json init 2026-07-22 11:27:49 +02:00
types.d.ts update 2026-08-23 13:28:22 +02:00

unimo web-app

Trivial vanilla web UI for unimo — teff (styling) + uhtml (rendering) + the unimo TS SDK. No bundler; the browser runs the source directly via an import map.

Run

  1. Start the gateway. Default expected origin is http://localhost:8787 (set in config.js). Note: this is the origin — the SDK appends /api/... itself.
  2. Install dev deps (types + typecheck only, not bundled): npm install
  3. Serve statically over localhost (WebCrypto needs https or localhost — not file://): npm run serve (or python3 -m http.server 5173)
  4. Open http://localhost:5173.

Typecheck

npm run typecheck — tsc --noEmit against the JS (// @ts-check + JSDoc).

Layout

  • index.html — import map + teff + <app-root> entry.
  • app.js — boot, session restore, view swap.
  • lib/ — util, seed-store (device-seed persistence), drive (KV index + blob up/download).
  • components/ — auth-view, dashboard-view, drop-zone (light-DOM custom elements).
  • vendor/ — teff + the SDK bundle (and its .d.mts). uhtml loads from jsdelivr.

Notes / roadmap

  • Runtime deps: teff + SDK are vendored; uhtml loads from a pinned jsdelivr URL. Once unimo-sdk-ts is published, point the import map at the npm/CDN URL and drop vendor/unimo-client.*.
  • M1 (current): the device seed is stored in localStorage (plaintext). End-to-end register / login / upload / download / delete with a synced file index.
  • M2: WebAuthn-PRF–wrapped seed behind the same lib/seed-store.js interface (localStorage = fallback).
  • M3: recovery export/import polish, logout safety, error/empty states, responsive polish.
  • Folders/VFS are out of scope — the SDK's VFS collection is not implemented yet.