A calm always-on-top daily planning overlay for tasks, notes, reminders, voice capture, and local-first sync.
Status · Why · Scope · Architecture · Development · License
FocusNook is in an early local-first MVP stage.
The repository is public so the product direction, technical decisions, and implementation quality can be reviewed early. The code is not open source and is not licensed for commercial use, redistribution, or independent forks.
Current implemented / in-progress focus:
- Windows desktop overlay shell with Tauri 2.
- Transparent frameless window with custom controls.
- Always-on-top / send-back layer switching.
- Global shortcut with fallback.
- Autostart and tray behavior.
- Per-profile local SQLite vaults on desktop.
- SQLCipher encryption on desktop with plaintext-vault migration support.
- Today, Notes, Reminders, Settings, profile switching, and diagnostics UI.
- Audio note capture with encrypted desktop audio blobs.
- Reminder alert window with snooze and acknowledge actions.
- Android alarm / notification plugin spike with boot rescheduling.
- OAuth foundation for Google Drive and Yandex Disk sync authentication.
- Secure per-profile credential foundation for the optional VDS sync server.
- Local sync readiness status for the active profile operation log.
Most productivity tools ask the user to open a whole workspace, manage projects, sort priorities, and keep a system alive.
FocusNook is intentionally smaller:
- it sits quietly near the edge of the screen;
- it keeps today visible without becoming the work itself;
- it captures a task, note, or reminder in seconds;
- it works locally first;
- it can sync later without making cloud access mandatory;
- it leaves room for future AI/OpenClaw routing and service summaries.
The product is not a project management suite. It is a small, reliable daily nook for the things that must stay close.
- Compact always-on-top Windows window.
- Transparent rounded edges and custom chrome.
- Remembered screen position and layer mode.
- Global shortcut for toggling front/back.
- Autostart with the system.
- Tray-first lifecycle: closing the window should hide it, not kill reminders.
- Today list with task states:
- open;
- done;
- deferred;
- partially done with percentage.
- Notes tab.
- Reminders tab.
- Reminder alert window with sound and snooze actions.
The Android app is planned as a full companion application:
- reminders through native alarms and notifications;
- microphone permission only on explicit voice actions;
- voice-to-text capture;
- audio notes;
- boot-time alarm rescheduling for the active profile;
- background sync through platform-safe scheduling;
- shared domain model with the desktop app.
FocusNook is designed as a local-first product with adapter-based sync:
- Google Drive;
- Yandex Disk;
- OpenClaw / OpenClawe adapter;
- optional ProAnima-hosted VDS sync server.
The app core must not depend on a specific provider. Sync is treated as a port, not as the center of the product.
Attachment sync is documented separately in docs/sync-attachments.md: voice recordings are the first supported binary payload, with the same contract reserved for future images and small text files.
FocusNook follows a progressive local-first architecture:
UI layer
React screens, compact widgets, overlay shell, view-models
Application layer
use cases: create task, update progress, schedule reminder, snooze, sync
Domain layer
entities, value objects, policies, conflict rules, validation
Infrastructure layer
SQLite, encrypted vault, OS APIs, Tauri plugins, Android services, sync providers
Server layer
optional VDS sync relay, auth, device registry, encrypted payload storage
The current repository starts with the desktop spike and will grow toward this layout:
apps/
desktop/ Tauri 2 + React + TypeScript desktop app
mobile/ planned Android app shell and native plugins
server/ planned optional VDS sync relay
packages/
ui/ planned shared UI primitives and design tokens
i18n/ planned typed dictionaries and locale tests
contracts/ planned TypeScript/Rust DTO contracts
crates/
planner-core/ planned domain model and use cases
planner-sync/ planned operation log and conflict handling
planner-storage/planned SQLite repositories and migrations
Desktop stack:
- Tauri 2.
- Rust.
- React.
- TypeScript.
- Vite.
- SQLite through Rust.
Planned mobile stack:
- Tauri 2 mobile shell where useful.
- Native Android/Kotlin plugins for alarms, notifications, microphone, speech-to-text, boot rescheduling, and background sync.
.
├── apps/
│ └── desktop/
│ ├── src/ React application
│ └── src-tauri/ Tauri/Rust shell
├── docs/
│ └── assets/ README and brand assets
├── AGENTS.md AI-agent engineering contract
├── LICENSE restrictive source-available license
└── README.md
Requirements:
- Node.js.
- npm.
- Rust toolchain.
- Tauri platform prerequisites for Windows.
Install and run the desktop app:
cd apps/desktop
npm install
npm run tauri devFrontend-only preview:
cd apps/desktop
npm run devProduction build:
cd apps/desktop
npm run build
npm run tauri buildBefore considering a change ready:
cd apps/desktop
npm run lint
npx tsc --noEmit
npm test
cd src-tauri
cargo clippy --all-targets
cargo testNative overlay behavior must also be checked manually on Windows:
- transparent frameless window;
- drag region;
- always-on-top toggle;
- global shortcut fallback;
- tray lifecycle;
- autostart;
- multi-monitor positioning.
FocusNook is designed around a few non-negotiables:
- local-first data ownership;
- encrypted profile vaults before production sync;
- encrypted desktop audio note blobs;
- OAuth tokens stored in OS-backed secure storage;
- no raw task/note/reminder content in crash logs;
- no silent telemetry upload;
- AI/OpenClaw adapters behind explicit user consent;
- strict Tauri capabilities per window.
- Desktop overlay shell.
- Layer toggle and global shortcut.
- Tray and autostart.
- Local SQLite spike.
- Minimal three-tab UI.
- Android alarm and notification spike.
- Profiles.
- Today list with real local persistence.
- Notes.
- Reminders.
- Reminder alert window.
- Local diagnostics.
- Initial i18n structure.
- Operation log.
- Google Drive adapter.
- Yandex Disk adapter.
- VDS sync server.
- Conflict handling.
- Device linking.
- Android background sync.
- Voice capture.
- Speech-to-text.
- Universal quick capture.
- OpenClaw/OpenClawe adapter.
- AI intent confirmation.
- Inbox foundation for future summaries.
Public issues and focused pull requests are welcome at the discretion of ProAnima Studio.
By submitting a contribution, you agree that ProAnima Studio may use, modify, publish, distribute, and commercialize that contribution under the terms described in the license.
Please read AGENTS.md before making code changes. It defines the engineering constraints for this repository.
This repository is public but not open source.
FocusNook is distributed under the FocusNook Source-Available License 1.0.
You may view and privately evaluate the code. You may not use it commercially, redistribute it, publish independent forks, or create derivative products without prior written permission from ProAnima Studio.