A fast, local-first Windows workspace for diagrams, workflows, architecture, and visual thinking.
Open → Draw → Connect → Organize → Explain → Export
Download the latest Windows release · Product blueprint · Changelog
Important
Planer is in early development. Version 0.1.0 establishes the desktop, project, board, canvas, autosave, and export foundation. Back up important work using .planer export while the native file workflow is still evolving.
Most diagram tools force a choice between a generic drawing surface and a heavy project platform. Planer is being built for the space between them: an immediate infinite canvas wrapped in a focused project and multi-board workflow.
It is intended for:
- flowcharts, mind maps, and concept maps;
- system, API, database, and user-flow diagrams;
- broadcast, studio, and production workflows;
- product architecture and feature planning;
- visual notes, technical explanations, and decision maps.
Planer uses the Excalidraw package as its canvas engine, but it is an independent product—not an Excalidraw fork and not a continuation of the repository's former draw.io scaffold.
| Area | Available in 0.1.0 |
|---|---|
| Canvas | Infinite canvas, shapes, text, connectors, free draw, image, eraser, frames, selection, grouping, alignment, zoom, pan, undo, and redo through Excalidraw |
| Projects | Local launcher; create, open, rename, and delete projects |
| Boards | Multiple independent boards; create, switch, rename, duplicate, and delete |
| Persistence | Debounced autosave to local IndexedDB |
| Appearance | Light and dark workspace modes |
| Export | Complete project as .planer JSON; active board as .excalidraw JSON |
| Privacy | No account, login, telemetry, cloud sync, or network dependency for normal use |
| Desktop | Tauri v2 Windows application with MSI and NSIS installer targets |
- Open GitHub Releases.
- Download the
.exeinstaller for the simplest setup, or the.msipackage for managed Windows deployment. - Run the installer and launch Planer.
Every published release is built by GitHub Actions from the verified main branch. Development builds and temporary CI artifacts are not treated as releases.
Note
Windows may show a reputation warning for early unsigned builds. Verify that the installer came from this repository's Releases page before continuing.
Project
├── Overview
├── Architecture
├── User Flow
├── Database
└── Notes
Each board owns its own canvas scene. Switching boards preserves the scene inside the active project, and project changes are saved automatically on the device.
The current .planer format is readable JSON containing project metadata, settings, boards, and their scene data. It is an early format: native import, packaged assets, migrations, and a stable public file specification are still planned.
Planer is local-first by design:
- project state lives in the application's local IndexedDB database;
- canvas edits are autosaved on the device;
- no telemetry or analytics are implemented;
- no Planer account or remote service is required;
- clearing application/WebView data can remove locally stored projects.
Until native open/import and backup recovery are complete, regularly export important projects as .planer files and keep those files in a separate backed-up folder.
flowchart TD
A["Planer AppShell"] --> B["Project Launcher"]
A --> C["Workspace"]
C --> D["Board Management"]
C --> E["Excalidraw Canvas"]
D --> F["Zustand Store"]
E --> F
F --> G["IndexedDB Autosave"]
F --> H["Planer / Excalidraw Export"]
| Layer | Technology | Responsibility |
|---|---|---|
| Desktop | Tauri v2 | Native window, Windows runtime, MSI and NSIS packaging |
| UI | React 18 + TypeScript | Launcher, workspace, board bar, and actions |
| Build | Vite 7 | Development server and production frontend bundle |
| Canvas | Excalidraw 0.18 | Scene rendering and drawing interaction |
| State | Zustand 5 | Active view, theme, project, and board state |
| Persistence | IndexedDB | Local project storage and autosave |
| Icons | Lucide React | Product interface icons |
- Node.js 20 or newer
- npm 10 or newer
- Rust stable toolchain
- Tauri v2 platform prerequisites
- On Windows: Microsoft C++ Build Tools and WebView2
See the official Tauri prerequisites for complete platform setup.
git clone https://github.com/sufyanaser/Planer.git
cd Planer
git switch develop
npm ci
npm run devThe Vite development server runs at http://localhost:1420 by default.
npm run tauri devnpm run check:version
npm run lint
npm run buildnpm run tauri buildInstallers are produced under src-tauri/target/release/bundle/nsis/ and src-tauri/target/release/bundle/msi/.
| Command | Purpose |
|---|---|
npm run dev |
Start the Vite development server |
npm run build |
Type-check and build the production frontend |
npm run lint |
Run ESLint with zero warnings allowed |
npm run check:version |
Verify npm, Tauri, and Cargo versions are identical |
npm run preview |
Preview the production frontend |
npm run tauri dev |
Run the native desktop shell in development |
npm run tauri build |
Build the native desktop installers |
Planer/
├── .github/workflows/ # CI and release publishing
├── docs/ # Product and architecture documents
├── scripts/ # Repository validation scripts
├── src/
│ ├── components/ # Launcher, workspace, canvas, and board UI
│ ├── services/ # Project creation and local persistence
│ ├── store/ # Zustand state
│ ├── styles/ # Product styling
│ └── types.ts # Project and board contracts
├── src-tauri/ # Rust shell, Tauri config, and app icons
├── CHANGELOG.md
└── package.json
| Branch | Purpose |
|---|---|
develop |
Source of truth for active development |
main |
Verified release source only |
A release is not merely an Actions artifact. The repository follows this gate:
- make a focused change from
develop; - keep
package.json,src-tauri/tauri.conf.json, andsrc-tauri/Cargo.tomlversions aligned; - update
CHANGELOG.md; - pass version check, lint, and production build;
- build both Windows installer formats in CI;
- promote the verified commit to
main; - create the version tag and GitHub Release;
- attach the
.exeand.msiinstallers to the Release.
Failed validation or packaging blocks publication. A new installed build must use a new version number.
- Tauri, React, TypeScript, and Vite baseline
- Project launcher and workspace shell
- Excalidraw canvas integration
- Project and multi-board state model
- IndexedDB autosave baseline
-
.planerand.excalidrawexport - Automated Windows installer and Release pipeline
- Native project open/import and backup workflow
- Stable
.planerspecification and migrations - Native filesystem persistence through Tauri
- Board reordering and project-level search
- PNG, SVG, PDF, and clipboard export
- Planer-level grid and snap controls
- Automated UI and desktop end-to-end tests
- Smart planning nodes
- Quick Connect
- Auto Layout
- Templates
- Search across boards
The detailed scope and product boundaries live in the Planer Product Blueprint.
V1 does not include accounts, cloud sync, team workspaces, real-time collaboration, chat, video, AI, a plugin marketplace, Kanban management, 3D, animation, or a presentation engine. These exclusions protect startup speed and the stability of the core canvas and data model.
Planer is still in foundational development. Discuss large features in an issue before implementation, keep changes focused, and report the validation commands used. See CONTRIBUTING.md for the branch, validation, and UI evidence requirements.
Do not report security vulnerabilities in a public issue. Use GitHub private vulnerability reporting.
No open-source license has been selected. Unless a license is added, no permission is granted to copy, modify, or redistribute the source beyond rights provided by applicable law.
Focused visual planning. Local by default.