From 0941ad88b3401fbbdbb31c45e5ba8c7637543714 Mon Sep 17 00:00:00 2001
From: Atharva Patil
Date: Tue, 15 Sep 2026 09:15:27 +0530
Subject: [PATCH 01/20] README: light/dark theme showcase screenshots,
killer-features section
Added a dark/light side-by-side of the same reference board (image,
note, color, and URL cards wired with a real connection) to the
screenshots gallery, and a new "What makes Kanvaz different" section
calling out the differentiators that are easy to miss in the feature
list: live 3D model preview, shared cards across boards, the MCP
Bridge AI integration, typed connections as a real graph, plugin
sale rights, and staying fully offline.
Co-Authored-By: Claude Sonnet 5
---
README.md | 27 +++++++++++++++++--
assets/screenshot-showcase-dark-v7.26.0.png | Bin 0 -> 351491 bytes
assets/screenshot-showcase-light-v7.26.0.png | Bin 0 -> 330043 bytes
3 files changed, 25 insertions(+), 2 deletions(-)
create mode 100644 assets/screenshot-showcase-dark-v7.26.0.png
create mode 100644 assets/screenshot-showcase-light-v7.26.0.png
diff --git a/README.md b/README.md
index 0d01351..2564f15 100644
--- a/README.md
+++ b/README.md
@@ -44,12 +44,22 @@ No account. No cloud. No subscription. Just a canvas that's actually yours.
-More screenshots — Layers panel, multi-select Align/Distribute/Tidy Up, classic card design
+More screenshots — light/dark theme, Layers panel, multi-select Align/Distribute/Tidy Up, classic card design
+
+
+
Dark theme: a real mood/reference board — image, note, color, and URL cards, wired together with a typed connection.
+
+
+
+
+
Same board, light theme — one keypress (L) away, no restart needed.
+
+
-
Layers panel: every card in z-order, click to select, pin/hide icons.
+
Layers panel: every card in z-order, click to select, drag to reorder, pin/hide icons.
@@ -66,6 +76,19 @@ No account. No cloud. No subscription. Just a canvas that's actually yours.
---
+## What makes Kanvaz different
+
+Most reference boards stop at "put images on a canvas." Kanvaz goes further, and these are the ones worth trying first:
+
+- **Real 3D model preview, not a static thumbnail.** Drop in a `.glb`/`.gltf`/`.obj`/`.fbx` and orbit it live, right on the board — Normal/Wireframe/Matcap shading, animation playback with a scrub bar. No other offline reference tool does this.
+- **One card, many boards, zero duplication.** Share a reference across a Character board and a Lighting board — edit it once, and it updates everywhere it's used. Most tools make you choose between duplicating a file or losing track of where it lives.
+- **An AI can read and edit your board locally, with your permission.** The MCP Bridge plugin lets Claude Desktop or Claude Code query and modify the active board over local IPC, never the network — every change is undo-reversible like anything else you'd do by hand.
+- **Typed connections, visualized as a real graph.** Not just arrows — 7 relationship kinds (Inspired By, Derived From, Alternative To, and more), viewable as a node-editor-style Map View when you want to see the whole web of ideas at once.
+- **Sell your own plugin. Kanvaz never takes a cut.** Register card types, commands, or full themes through a real runtime API — there's no in-app marketplace standing between you and the people who'd pay for your plugin.
+- **100% offline, and it stays that way.** No account to lose access to, no subscription that stops working, no telemetry phoning home. The only network calls anywhere in the app are ones you click yourself.
+
+---
+
## Why Kanvaz
| | |
diff --git a/assets/screenshot-showcase-dark-v7.26.0.png b/assets/screenshot-showcase-dark-v7.26.0.png
new file mode 100644
index 0000000000000000000000000000000000000000..02041ca9f1b28c13413ce7a6c3a84e0f6a529823
GIT binary patch
literal 351491
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