Courses that belong to the people who make and take them.
Matko is a local-first course authoring and sharing app, built for freedom, privacy, and learning together. No cloud account. No central hosting service. Course files live on your device, and teachers share them directly with students — over a peer-to-peer network, or on paper.
The plan
Matko is planned for desktop and native mobile — not the browser. Its peer-to-peer networking runs in a Bare runtime, which browsers don't support.
Course content is made from portable files: localized Markdown for written material, and JSON for structured course data. These files describe a course's sections, lessons, and tests — readable, ordinary formats that are easy to inspect, preserve, and move between devices.
A player and print layout designed to make paper a first-class way to learn — no device or network required to take a course.
Peer to peer
A teacher shares a course QR code in class or online. Students scan it, download the course directly from peers, and take it in Matko.
Peer-to-peer sharing is built around Bare workers and holepunching. When a student imports a course, their device can keep sharing its files with other peers while Matko is running — the network is powered by the people using it, not a central host. Optional always-on seedboxes can help a new course get started, without being a required central service.
Privacy, security, and identity
Course work stays local, with no cloud account required. Students can use the app without ever setting up a keypair. A teacher only needs a persistent sharing identity when they choose to publish a course over the peer-to-peer network — not to write or print one.
Peer-to-peer work runs in a separate native worker, and sharing is always an explicit choice. A keypair gives a teacher a persistent sharing identity, so it should be protected — it can't simply be replaced without changing that identity. Matko is an evolving project; these design goals aren't a claim that every part of the app or network has had an independent security audit.
Courses
A course is organized into sections, and each section holds lessons and tests. A lesson is a document a teacher writes for students to read; a test is a set of exercises a student answers and gets graded on. A lesson can also carry its own attached test, or embed an exercise directly inline in the document.
Lessons are written in a block-based editor — headings, formatted text, images, video, and audio all live in the same document — and the same document is shown to students in a read-only view, so a lesson looks and behaves the same whether you're writing it or taking it.
Numeric template
A story with variables and a formula.
Multiple choice
One, several, or no correct options.
Word types
Tag highlighted words by grammatical type.
Missing words
Fill in the blank in a passage.
Region picker
Click the correct shapes on a diagram.
Region marker
Mark regions on an uploaded or preset diagram.
Region label
Type the name for each numbered region.
Exercise types — and potentially other parts of the app — are planned to be extendable through third-party plugins, similar to how editors like VS Code support extensions. Not built yet; it's part of the direction the app is heading.