Local-first Open source Built for teachers

Language learning
teachers can trust.

Lingua Viva helps teachers capture classroom observations, understand each student's language journey, and prepare differentiated activities while keeping student data local.

Lingua Viva Teacher
No accountTeachers can try the app without creating a cloud profile.
Local dataObservations and student lenses stay on the device by default.
Open sourceSchools can inspect the code and the policy gates.
442 testsCurrent app hardening suite is passing.

A classroom loop, not another dashboard.

Lingua Viva starts from a real teaching habit: notice something, record it quickly, and use it to prepare tomorrow's lesson.

01

Capture

Write or dictate a short observation during class. The note is saved locally and tagged to the student.

-
02

Lens

The student lens updates CEFR signals, RTI context, and observation history without replacing teacher judgment.

-
03

Prepare

Generate differentiated activity ideas that match the class, the unit, and the evidence teachers have recorded.

-
04

Reflect

Keep a private implementation note so the curriculum improves from actual classroom use.

Built around the people using it.

T

Teachers

Capture observations, review student lenses, prepare tiered activities, and draft parent-safe notes from local evidence.

Strongest current tier
C

Coordinators

Programme overview is live. Evidence, capacity, and trends are deliberately deferred until pilot data exists.

No overclaiming
S

Students

Student-facing workflows are planned only after teacher adoption signals justify building them.

Teacher-first product boundary

Schools should be able to inspect the tool they trust.

Lingua Viva is designed as a local-first education tool. The privacy rules, support checks, and data paths are visible in code so a school can review them before a pilot.

Local-first - no telemetry claim - teacher-controlled observations

teacher loop local
# classroom evidence stays local
capture = observe(student, note)
lens = update_lens(capture)
activity = prepare(unit, lens)

if student_data:
  route = "local only"

show_teacher(activity)

From first classroom note to a credible pilot.

01

Install locally

Run the teacher app on a school-controlled device.

Day 1
02

Capture real observations

Use the quick capture loop during normal lessons.

Week 1
03

Prepare from evidence

Generate differentiated language activities from the recorded student lens.

Weeks 2-4
04

Review what is ready

Keep coordinator analytics deferred until the data is consent-aware and large enough.

Pilot review

Get Lingua Viva

A local-first CLI that starts a teacher workbench on your machine. No account needed. No data leaves your computer.

Mac download is Apple Silicon. Linux users: curl -fsSL https://raw.githubusercontent.com/lingua-viva/learning-architecture/main/install.sh | sh