Case study / offline-first Android

Handwritten notes, anchored to the lecture page.

Marginalia is an offline-first Android tablet app for taking handwritten notes next to imported course PDFs.

Marginalia's notebook view: a lecture PDF sits beside a writable handwritten-note margin

Scope

Independent Android projectProduct design, offline data model, PDF import, handwritten ink, and automated checks.

Constraint

Keep handwritten context attached to the source page.Notes are page-aware, while stylus input and touch navigation remain separate.

Public artifacts

Source, tagged releases, and CIRepository ↗ · releases ↗ · workflows ↗

01 / write beside

Every PDF page gets its own margin canvas.

Notes sit alongside the source rather than obscuring it.

02 / stay anchored

Strokes belong to the page where they were written.

Page context is part of the data model, not just the interface.

03 / no mode switch

The stylus writes. Fingers move the page.

Ink and navigation are separated by input, not a button.

Built with

Kotlin, Jetpack Compose, Room, pdfium, and androidx.ink.

Release and automated checks

The repository includes a tagged release and automated emulator checks.

Tests exercise database migration, lecture CRUD, PDF import, zoom, links, and ink behavior. The project remains offline-first: no account and no cloud.