Learning Experience (LX) tool — curriculum alignment, objective tracking, session planning, and proof of learning.
Bring the devtools ethos to learning experience. Whether you're an individual learner, a parent facilitating homeschool, or an educator in a classroom, Prolly helps you plan, track, and demonstrate learning progress.
The core entity is the LX (Learning Experience) — a learner-centric container that captures the epistemological journey:
- Record (Perception) — what was observed: text, photo, voice, video, file
- Reflection (Inference) — what was understood: questions, curiosities
- Observation (Testimony) — what others saw: feedback, comments, nudges
LXs connect to Objectives, Programs, Sessions, Achievements, Associations, and Test Scores.
Objective cascade: Program → Session → LX. Objectives flow down through junction tables. Sessions relate to programs implicitly through shared objectives. LX objectives have a source field (lx/session/program) distinguishing how each was mapped.
Bun workspace monorepo:
domain/ — @prolly/domain: shared types, errors, ID utilities (pure TS, zero deps)
api/ — REST API server (Bun.serve(), no framework)
web/ — SvelteKit SPA (static adapter, Svelte 5, Dexie for offline)
Requires Bun v1.3+.
bun install # install all workspace deps
bun run dev # starts API (:3000) + Vite dev server (:5173)Or individually:
bun run dev:api # API only on :3000
bun run dev:web # Vite dev server on :5173 (proxies /api to :3000)Run tests:
cd api && bun testBuild for production:
bun run build # builds web/ → api/public/, then compiles API binary| Mode | SERVE_FRONTEND | Database | Use Case |
|---|---|---|---|
| SaaS | false (CDN) | PostgreSQL | Cloud-hosted |
| On-prem | true (single binary) | SQLite or PostgreSQL | Self-hosted school |
| Dev | false (Vite) | SQLite or PostgreSQL | Local development |
Dual-licensed under MIT and Apache-2.0. You may choose either license.