Version 1.3.1 · Free Forever

Your workspace.
Finally alive.

Leaf Note is the offline-first workspace that refuses to be boring. Branches for projects, rich-text leaves for every thought, full metadata, deadlines, and an editor that handles everything from code to diagrams to YouTube embeds.

Download for Windows Read the docs →

100% Local & Private  ·  No Subscription  ·  No Cloud  ·  No Tracking

Leaf Note
Dashboard
All Leafs 51
Branches
Client Work14
Personal Projects9
Bug Reports11
Dev Research7
Meeting Notes10
Client Work
Filter + Leaf
Title
Type
Status
Pri
Updated
Implement OAuth 2.0 refresh tokens
Feature
dev
Today
Rust async runtime comparison
Docs
review
Apr 19
Database N+1 query in user listing
Bug
blocked
Apr 18
Redis caching layer spec
Task
planned
Apr 17
Microservices migration kickoff
Note
backlog
Apr 16
Feature OAuth 2.0 Refresh Token Implementation ✓ Saved

OAuth 2.0 Refresh Token Implementation

The current session expiry is causing friction for users in long work sessions. Need to implement silent refresh before the access token expires.

Key decisions:

Use httpOnly cookies for the refresh token
Rotate tokens on every use
Do not store tokens in localStorage

typescript
async function refreshIfExpired(req, next) {
  const token = req.headers['authorization'];
  if (isExpired(token)) { const fresh = await callRefreshEndpoint(); }
  return next(req);
}

See API Gateway Spec for the endpoint contract.

Research Rust async runtime comparison ✓ Saved

Rust Async Runtime Comparison

Evaluating Tokio vs async-std vs smol for the new microservices layer. Primary concerns: latency, ecosystem maturity, and Tauri compatibility.

Tokio

Work-stealing scheduler — excellent for I/O-heavy workloads
Used by Tauri internally — no runtime conflict
Largest ecosystem (reqwest, sqlx, axum)

async-std

Mirrors the std API — lower learning curve. Ecosystem smaller. Not recommended for this project given Tauri's Tokio dependency.

rust
// Tokio multi-thread is the default for Tauri
#[tokio::main]
async fn main() {
  tauri::Builder::default()
    .run(tauri::generate_context!())
    .unwrap();
}

Verdict: Tokio. See Microservices Migration Plan for next steps.

Feature OAuth 2.0 Refresh Tokens ✓ Saved

OAuth 2.0 Refresh Token Implementation

Implement silent refresh before the access token expires to prevent session friction in long work sessions.

Use httpOnly cookies for the refresh token
Rotate tokens on every use
No localStorage

Research Rust async runtimes ✓ Saved

Rust Async Runtime Comparison

Evaluating Tokio vs async-std for the microservices layer.

Tokio: used by Tauri internally
No runtime conflict — clear winner.

Lexical
Meta's open source editor engine
0%
Local & Private
$0
Forever Free
v1.3.1
Latest Release

Everything starts
with a Branch.

Branches are your top-level containers. Think of them as projects, clients, or focus areas. Each one holds its own leaves, and you can have as many as you need. Drag to reorder. Click to filter. It stays out of the way until you need it.

  • Drag-and-drop reordering — arrange branches however your brain works.
  • Per-branch filtering — click a branch and see only what's inside it.
  • Live search counts — each branch shows how many results match as you type.
  • Color-coded identity — every branch gets a pastel color for instant recognition.
  • Unlimited branches — no cap. Build your whole workspace.
Leaf Note
Dashboard
All Leafs  51
Branches
Client Work14
Personal Projects9
Bug Reports11
Dev Research7
Meeting Notes0
New Branch
Drag to reorder
Database N+1 query in user listing
Bug blocked
Branch
Bug Reports
Priority
High
Tags
#db #performance #critical
Follow-up
Apr 18, 2026 · Tomorrow
Status
backlog development blocked ←
Comments
Confirmed on staging. The ORM is issuing a separate SELECT per user row. Need to add eager loading for the roles relationship.

Every detail.
Right there.

Each leaf is more than a note. It's a full work item with type, status, priority, tags, a follow-up date, comments, and a rich editor — all in one place.

  • Workflow statuses across multiple stages: Idea, Pending, In-Progress, Paused, and Done.
  • Priority levels from None all the way to Critical, so important things stay visible.
  • Custom leaf types — Bug, Feature, Task, Docs, or anything you invent, each with its own color.
  • Hashtag-powered tags — type #tagname anywhere in your note and it syncs automatically.
  • Follow-up dates — set a deadline. The dashboard will surface it when it matters.
  • Comments — keep your thinking attached to the leaf, not buried in another app.

An editor that does
everything you throw at it.

Built on Lexical, Meta's open source rich-text engine. Formatting, code, drawings, embeds, tables, columns, and inline note references — scroll through to see what it can do.

Your deadlines,
always visible.

The Dashboard groups your follow-up items by urgency. Today, Tomorrow, This Week, Overdue. Filter by branch and status. Never lose track of what needs attention.

Leaf Note
Dashboard
All Leafs 51
Branches
Client Work
Personal Projects
Bug Reports
Dev Research
Meeting Notes
Dashboard
All Branches ▾
All Statuses ▾
Past Due 1
Fix memory leak in worker pool Bug Reports 3 days ago
Today 2
Code review: OAuth middleware PR Client Work Today
Write up Rust async findings Dev Research Today
Tomorrow 1
Database N+1 query fix Bug Reports Tomorrow
This Week 2
Redis caching layer spec draft Dev Research Apr 21
Architecture review with Cecilia Meeting Notes Apr 22

Find anything,
instantly.

Full-text search with a query language. Filter by tags, branches, types, statuses, priorities, and date ranges — all from the keyboard.

🐞
Database N+1 query in user listing
Bug Reports · #db #performance · blocked
blocked
Implement OAuth 2.0 refresh tokens
Client Work · #auth #security · development
dev
📄
Redis caching layer spec
Dev Research · #redis #backend · planned
planned
#tagname
Filter by tag
@branch
Filter by branch
status:review
Filter by status
priority:high
Filter by priority
type:bug
Filter by type
from:2026-01
Date range

Your data lives
on your machine.

No accounts. No sync servers. No cloud. Just an SQLite database on your device, fast and entirely yours. Export it anytime in an open format.

Zero Cloud

All data stored locally in SQLite. Nothing leaves your device, ever.

Zero Tracking

No analytics. No telemetry. No usage data collection of any kind.

$

Zero Subscription

Download once, use forever. Free now and free always.

Portable Backups

Export branches or your full database to an open .alx file. Import anywhere, anytime.

Start building
your forest.

Download Leaf Note and bring structure, creativity, and clarity to everything you're working on.

Download for Windows — Free

Version 1.3.1  ·  Windows 10/11  ·  ~200 MB