Trail is a local-first desktop app for tracking your professional wins, big and small. Log achievements as they happen, tag them by skill or project, and surface them when it counts — performance reviews, promotion docs, portfolio updates, and job interviews.
Your achievements don't track themselves.
Screenshots will be added shortly. In the meantime, build from source and see for yourself.
- Today view — a focused daily log with your streak, recent activity heatmap, and quick-log shortcut (
Cmd/Ctrl + N) - Achievements — full searchable, filterable list of everything you've logged, with impact ratings and rich-text notes
- Tags — curated and custom tags (skills, projects, categories) with color coding
- Summaries — stats, streaks, heatmap, and tag breakdowns across any time range
- Export — copy or download your achievements as Markdown, ready to paste into a resume or doc
- Settings — accent color themes, display density, daily/Friday nudge reminders, and quiet weekends
- Onboarding — guided first-run setup to get your profile and preferences set up
- Local-first — all data lives in SQLite on your machine. Nothing leaves your device.
| Layer | Technology |
|---|---|
| UI | React 18 + TypeScript |
| State | Zustand + TanStack Query |
| Desktop shell | Tauri v2 |
| Backend | Rust |
| Database | SQLite (via Tauri's SQL plugin) |
| Build | Vite 6 |
- Node.js 18+
- Rust (stable toolchain)
- Tauri prerequisites for your platform
# Clone the repo
git clone https://github.com/YOUR_USERNAME/trail.git
cd trail
# Install JS dependencies
npm install
# Start the dev server (opens the Tauri window)
npm run tauri devThe frontend alone (no Tauri window, runs in browser at http://localhost:5173):
npm run devnpm run tauri buildCompiled binaries and installers are output to src-tauri/target/release/bundle/.
trail/
├── src/ # React frontend
│ ├── components/ # Shared UI components
│ ├── views/ # Full-page views (Today, Achievements, etc.)
│ ├── stores/ # Zustand state stores
│ ├── hooks/ # Custom React hooks
│ ├── lib/
│ │ ├── storage.ts # Tauri IPC calls (the frontend/backend bridge)
│ │ └── types.ts # Shared TypeScript types
│ └── onboarding/ # First-run onboarding flow
├── src-tauri/ # Rust backend
│ └── src/
│ ├── commands/ # Tauri IPC command handlers
│ │ ├── achievements.rs
│ │ ├── tags.rs
│ │ ├── settings.rs
│ │ └── summaries.rs
│ └── db/
│ ├── migrations.rs # SQLite schema & migrations
│ └── models.rs # Rust data models
└── .github/ # Issue templates & PR template
- Export to PDF
- Markdown import
- Weekly email digest (opt-in)
- iCloud / custom sync path
- Windows & Linux packaging CI
- Achievement templates
Contributions are welcome! Please read CONTRIBUTING.md before opening a PR.
For bug reports and feature requests, use the issue templates.
MIT — © 2026 Trail Contributors