English · Türkçe
A single-user desktop app for tracking university applications, programs, people, labs, and the documents and emails that connect them. Storage is plain Markdown + YAML on disk — sync-friendly via Dropbox / iCloud / Syncthing, and editable directly in Obsidian alongside the app.
Just want to use it? Download an installer for Windows, macOS, or Linux from the latest release — the release page lists exactly which file to pick for your OS and how to install it. No setup beyond that.
Status: v1 in active development. Local builds work end-to-end; installers are unsigned (warnings on first launch are dismissable, see the release page for steps).
<slug>-<id>.md with YAML frontmatter[[eth-zurich-K9p3]] references resolve by id-suffix, so renames in Obsidian don't break linksattachments/ and notes/ subfolders, optional sample seeds<data folder>/.eduport-trash/, restorable from the in-app Trash view┌─────────────────────────────────────────┐
│ Tauri shell (Rust) │
│ • spawns + supervises Python sidecar │
│ • hosts WebView at the sidecar's URL │
│ • bridges native dialogs + reveal │
└─────────────┬───────────────────────────┘
│ HTTP loopback (127.0.0.1:<random port>)
▼
┌─────────────────────────────────────────┐
│ Python sidecar (FastAPI + uvicorn) │
│ • REST API over .md entity files │
│ • watchdog file watcher │
│ • markdown-it-py + YAML parsing │
│ • SQLite + FTS5 indexer │
└─────────────────────────────────────────┘
| Layer | Choice |
|---|---|
| Native shell | Tauri 2 (Rust) |
| Frontend | SvelteKit + Svelte 5, Tailwind CSS v4, CodeMirror 6 |
| Markdown render (UI) | marked + custom wikilink/checkbox extraction |
| Sidecar API | FastAPI + uvicorn, Pydantic v2 |
| File watcher | watchdog |
| Storage / search | stdlib sqlite3 with FTS5 |
| Desktop bundling | Tauri externalBin + PyInstaller for the sidecar |
| Tooling | uv (Python), npm (frontend), cargo (Rust) |
docs/ design spec, packaging notes, implementation plans
frontend/ SvelteKit app — UI + API client
scripts/ build helpers (sidecar bundling, Tauri prereqs)
sidecar/ Python (FastAPI) — uv-managed project
src-tauri/ Rust shell (Tauri 2) — entry point + native bridges
The project targets macOS, Windows, and Linux. All three need:
rustup install stable)uvPlus the OS-specific Tauri prerequisites (full reference: https://v2.tauri.app/start/prerequisites/):
xcode-select --installlibwebkit2gtk-4.1-dev, libgtk-3-dev, librsvg2-dev, build-essentialcd sidecar
uv sync
uv run eduport-sidecar
cd frontend
npm install
npm run dev # http://localhost:5173
In browser-only mode, dialogs that require Tauri (folder pickers, native file reveal) fall back to dev placeholders.
The fastest path to a real installable app is the packaging script — it bundles the Python sidecar with PyInstaller, builds the SvelteKit frontend, and runs tauri build:
python3 scripts/build_desktop.py
On Linux this produces .deb and .rpm under src-tauri/target/release/bundle/. Install with sudo apt install ./src-tauri/target/release/bundle/deb/eduport_*.deb (or your distro's equivalent). See docs/packaging.md for advanced bundle targets and CI notes.
# Sidecar (Python) — pytest + ruff
cd sidecar
uv run pytest -q
uv run ruff check src/ tests/
# Frontend — type-check + Svelte diagnostics
cd frontend
npm run check
docs/superpowers/plans/MIT (per src-tauri/Cargo.toml). A standalone LICENSE file is on the to-do list.