Repository navigation
Design Decisions
Eric Dean edited this page Sep 30, 2026
·
1 revision
An architecture decision record (ADR) is a short document about one important choice. It records the problem, the options, what was chosen, and what follows from it. Anything hard to reverse gets an ADR before the code.
The full list, and the steps to add one, are in the ADR index.
| ADR | Decision | Status |
|---|---|---|
| 0001 | Build the app with Tauri 2, a Rust core, and a TypeScript, React, and Vite interface | Accepted (camera check in ADR 0004 pending) |
| 0002 | License OpenNote under Apache 2.0 | Accepted |
| 0003 | Pin TypeScript to 6.0.x until typescript-eslint supports TypeScript 7 | Accepted |
| 0004 | Keep WebView2 for ink, draw live strokes on a desynchronized canvas, and try delegated ink trails and a native ink layer in Phase 5 | Accepted (camera check and budget review pending) |
| 0005 | Build each text container as its own Tiptap editor on one zoomable world, with contained blocks and ink in cached tiles | Accepted (review of the typing budget pending) |
| 0006 | Export PDFs with WebView2 PrintToPdf from a hidden WebView, with print CSS and layout rules that keep screen and paper in step | Accepted |
| 0007 | Record the microphone and system audio with cpal on WASAPI, align both to the performance counter, and store Opus in 1-second Ogg pages | Accepted |
ADR 0000 is the template. Decisions after 0007 are proposed on the phase branches, and this page lists them once they merge to main.
| Status | Meaning |
|---|---|
| Proposed | Written and open for discussion, but not yet binding |
| Accepted | Agreed, and the code should follow it |
| Superseded | Replaced by a later ADR, which the status line links to |
Accepted records aren't rewritten when plans change. A new ADR replaces the old one, and the old status changes to "Superseded by ADR NNNN". Numbers are never reused.
- Copy the template to a new file with the next free number.
- Fill in each section. One or two pages is enough.
- Set the status to Proposed, and open a pull request with the ADR and no code.
- Before it merges, set the status to Accepted, and add it to the index.
See Development process and Phase 1 spike results, which covers ADRs 0004 to 0007.
OpenNote is licensed under the Apache License 2.0. Repository | Issues | Releases
- Getting started
- Installing and updating
- Where your notes are stored and how they stay safe
- Notebooks, sections, and pages
- Typed notes
- Ink and drawing
- Audio recording
- Math and study tools
- Productivity and study tools
- Tables and charts
- Search and links
- Page views, printing, and PDF
- Import and export
- On-device intelligence
- Settings and Connectors
- Keyboard shortcuts
- Accessibility
- Privacy and your data
- Troubleshooting
- FAQ