An offline Electron desktop client for Mukurtu CMS, intended for museum and library reading rooms without reliable connectivity.
Read-only exhibit mode: an admin curates a fixed set of items for a specific kiosk/venue and exports a versioned package (content + community/protocol metadata + bundled media) from Mukurtu. This client installs that package and displays it — it does not resolve permissions live and has no write path, so there's no sync-conflict problem to solve yet.
Planned roadmap beyond this repo's current scope:
- Read-only exhibit mode (this repo, in progress)
- Additive-only offline annotations/drafts
- Full CRUD sync with per-user permission mirroring and conflict resolution
Early scaffold. Electron + TypeScript project structure is in place; there is no package-import UI or Mukurtu-side export endpoint yet. packageStore.ts reads a manifest.json from the app's user-data directory if one is placed there by hand — that's the only "loading" path that exists today.
src/main/ Electron main process (window creation, kiosk mode, IPC)
src/shared/ Types shared between main and future package-export tooling
public/ Static renderer UI (plain HTML/JS, no bundler yet)
npm install
npm start # builds TypeScript and launches Electron in kiosk/fullscreen mode
MUKURTU_KIOSK=0 npm start # windowed mode with devtools, for development
GPL-2.0.