Skip to main content

max / goingson

3.5 KB · 75 lines History Blame Raw
1 # GoingsOn
2
3 A desktop productivity app -- tasks, email, calendar, contacts, and project management in one place. Built with Tauri 2, Rust, and vanilla JS.
4
5 Local-first. Your data lives in a SQLite database on your own machine. No telemetry, no analytics, no remote logging. Cloud sync is optional and end-to-end encrypted.
6
7 Published by Make Creative, LLC. Contact: info@makenot.work. Privacy policy: `docs/privacy-policy.md`.
8
9 ## Your data
10
11 - **Export** -- JSON (full), CSV (tasks), ICS (calendar events).
12 - **Backup and restore** -- full snapshots restorable into a fresh install.
13 - **Storage** -- SQLite on disk; you can copy or back up the file directly.
14 - **Updates** -- checked on launch; install is user-initiated, never forced.
15
16 ## Prerequisites
17
18 - **Rust** (stable toolchain, 2024 edition)
19 - **Tauri 2 CLI** (`cargo install tauri-cli --version '^2'`)
20 - **Linux only:** system dependencies for WebKitGTK
21 ```
22 # Debian/Ubuntu
23 sudo apt install libwebkit2gtk-4.1-dev build-essential curl wget file \
24 libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-dev
25
26 # Arch
27 sudo pacman -S webkit2gtk-4.1 base-devel curl wget file openssl \
28 appmenu-gtk-module libappindicator-gtk3 librsvg2-dev
29 ```
30 - **macOS / Windows:** no extra system dependencies beyond Rust and the Tauri CLI.
31
32 ## Build and Run
33
34 ```sh
35 # Development (hot-reload frontend, debug backend)
36 cargo tauri dev
37
38 # Production build (macOS DMG, Windows installer, Linux AppImage)
39 cargo tauri build
40
41 # Run all workspace tests
42 cargo test --workspace
43 ```
44
45 ## Workspace Architecture
46
47 The project is a Cargo workspace with three library crates and one application crate:
48
49 | Crate | Path | Role |
50 |-------|------|------|
51 | `goingson-core` | `crates/core/` | Domain models, repository traits, error types, business logic. No database dependency (optional sqlx feature for type derives). |
52 | `goingson-db-sqlite` | `crates/db-sqlite/` | SQLite persistence via sqlx. Repository implementations, FTS5 full-text search, migrations. |
53 | `goingson-plugin-runtime` | `crates/plugin-runtime/` | Rhai scripting engine for import plugins (CSV, custom formats). File watching for hot-reload. |
54 | `goingson-desktop` | `src-tauri/` | Tauri 2 desktop shell. Commands (thin wrappers over library crates), frontend (vanilla HTML/CSS/JS), OAuth flows, email sync, SyncKit integration. |
55
56 Dependency flow: `core` is leaf -> `db-sqlite` and `plugin-runtime` depend on `core` -> `src-tauri` depends on all three plus `synckit-client`.
57
58 ## Features
59
60 - **Tasks** -- urgency scoring, recurrence, snooze, subtasks, day planning (time blocking), weekly review
61 - **Email** -- IMAP/SMTP and Fastmail JMAP, OAuth (Google, Microsoft, Fastmail), threaded display, compose/reply
62 - **Calendar** -- events with recurrence, project/contact linking, timeline view
63 - **Contacts** -- multi-field (emails, phones, social handles), tags, search
64 - **Projects** -- per-project dashboards (tasks + events + emails), milestones
65 - **Search** -- FTS5 full-text search across all entity types
66 - **Cloud sync** -- SyncKit integration with E2E encryption
67 - **Plugins** -- Rhai scripting for CSV/data import
68 - **Themes** -- built-in light and dark themes with system auto-detection (see `src-tauri/frontend/themes/helix/`)
69 - **Keyboard shortcuts** -- vim-style navigation throughout
70 - **Platforms** -- macOS (primary), Windows, Linux; iOS in development
71
72 ## License
73
74 PolyForm Noncommercial 1.0.0. Personal, research, and non-commercial use are free. For commercial use, contact `info@makenot.work` to discuss a commercial license.
75