# Memoir **Repository Path**: Xj_Madatkar_admin/Memoir ## Basic Information - **Project Name**: Memoir - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-15 - **Last Updated**: 2026-08-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

Memoir

Memoir

A memoir that stays on disk.
Open a folder. Write. Preview. Save.
Markdown / MDX — still ordinary files, still yours.

English · 简体中文

License: MIT Tauri 2 React 19 Platforms

Memoir desktop app: library, Markdown editor, and live preview

Memoir is a quiet desktop notebook. Point it at a folder of `.md` / `.mdx` files and you get a library, a CodeMirror editor, and a live preview — without an account, a sync service, or a proprietary vault. Notes are ordinary files. You can open the same folder in git, VS Code, or any other editor. ## Features - **Local-first** — the workspace is a folder you choose. Memoir never uploads your notes. - **Markdown and MDX** — GitHub Flavored Markdown, KaTeX, Mermaid, task lists, and a small set of built-in MDX components. - **Edit / split / preview** — write source, read the rendered page, or do both with synced scroll. - **Library** — folders, frontmatter tags, favorites, recent notes, and a heading outline. - **Safe by default** — atomic writes, crash-safe drafts, autosave, and deletes that go to `.memoir-trash/` instead of vanishing. - **Appearance** — light / dark / system theme, accent colors, density, type scale, and Chinese / English UI. - **Sandboxed paths** — only `.md` / `.mdx` inside the workspace; `..`, symlinks, and hidden/build directories are rejected. ### Writing ````md --- title: Two Sum tags: [leetcode, rust] --- # Two Sum Inline math: $O(n)$. Display math: $$ \sum_{i=1}^{n} i = \frac{n(n+1)}{2} $$ - [x] Read the prompt - [ ] Write a test ```mermaid graph LR scan --> edit --> preview --> save ``` ```` MDX files can use built-in components. `import` / `export` are disabled on purpose so a note cannot pull in arbitrary modules: ```mdx The file on disk is the source of truth. Callout, Badge, Card, Columns, Steps ``` ## Getting started There are no packaged releases yet. Build from source. ### Requirements - [Bun](https://bun.sh) 1.3+ - [Rust](https://www.rust-lang.org/tools/install) (desktop app only) - Tauri 2 [system dependencies](https://v2.tauri.app/start/prerequisites/) ### Desktop ```bash git clone https://github.com/DrizzleTime/Memoir-Note.git cd Memoir-Note bun install bun run tauri dev ``` Open a folder of Markdown / MDX files. That folder is the workspace. ### Browser preview ```bash bun install bun run dev ``` The browser build is an in-memory demo. It does not read or write real files, and it does not persist settings. ## Development ```bash bun install bun run dev # Vite, browser demo bun run tauri dev # desktop shell ``` Verify a change before opening a PR: ```bash bun test bun run build cargo test --manifest-path src-tauri/Cargo.toml ``` ### Layout ```text src/ React app (features, store, gateways, domain) src-tauri/ Tauri / Rust workspace IO and persistence docs/ architecture notes and assets ``` The frontend is feature-first: ```text app → features → store → gateways → platform → domain ``` Components do not call Tauri `invoke` or touch `localStorage`. Store actions go through `WorkspaceGateway` / `PersistenceGateway`. Rust stays a thin `commands → services → domain / infrastructure` stack. See [`docs/architecture.md`](docs/architecture.md) for the Tauri command contract, app-data layout, path rules, and how to add a feature. ## Status Memoir is **0.1.0**. The editor, library, preview, and desktop persistence are usable day to day; packaged installers, plugins, and sync are not part of this release. ## Contributing Issues and pull requests are welcome. 1. Read [`docs/architecture.md`](docs/architecture.md) so new code follows the existing boundaries. 2. Keep the change small and match the surrounding style. 3. Cover helpers, store actions, and Rust filesystem rules with tests. 4. Run the three commands in [Development](#development). Please do not add cloud sync, telemetry, or a second persistence path without an issue first.