Why a Native App
Kosshi is built with Apple's frameworks — SwiftUI, AppKit, and UIKit. Not a web app running in a browser, and not a web app packaged as a desktop app.
This article explains what that means in practice and why it matters for an outliner.
What "native" means
A native app talks directly to the operating system. Text rendering, scrolling, and keyboard input go through the same path that the OS's own apps use — Notes, Reminders, and Xcode all work this way.
A web app runs inside a browser engine. Even when packaged as a desktop app using tools like Electron, the browser engine sits in between. Your input goes through the browser first, and the browser handles the display.
The difference is how directly your actions reach the screen.
Latency in a text editing tool
When you press a key, there is a small delay before the character appears. Research on human-computer interaction has shown that delays under 100 milliseconds feel instantaneous1. Above that, the tool starts to feel sluggish.
Most apps meet this threshold easily. But in a text editing tool — where you type continuously for minutes — even small differences in speed affect how the tool feels under your hands.
A native app hands your keystroke directly to the OS's text engine. A web app routes it through additional layers — the browser's event system, its rendering engine, and its display pipeline. Each layer is fast on its own, but they add up.
The difference on a single keystroke is hard to notice. Over a session of continuous typing, it shapes how the tool feels.
Why outliners are different
Outliners do more than edit text. You indent, outdent, move rows up and down, collapse, expand, and zoom in — often several times in a few seconds. Each of these changes the tree structure, and the app needs to update the screen to match.
A native app can update just the part of the screen that changed. If you moved one row, only that row and its neighbors are redrawn.
A browser is a general-purpose display engine. It doesn't know that only one row moved, so it often recalculates more broadly. The difference is small for a single operation, but when you're pressing the same shortcut five times in a row to move a block of text, you feel whether the tool keeps up.
The feel of smooth motion
Responsiveness isn't only about speed. It's also about how the interface moves.
When you collapse a section in an outliner, the rows below slide up. When you expand, they spread down. When you move a row, everything around it shifts to make room.
A native app can use the OS's animation system, which is synchronized to the display's refresh rate. Rows slide into position rather than jumping there — the motion feels natural, not instantaneous.
In a browser, animations depend on JavaScript and the browser's own rendering schedule. They can look smooth in many cases, but the connection between input and motion is less direct.
For an outliner, where you collapse and expand constantly, the quality of these transitions affects how the tool feels to use.
How Kosshi is built
Being native alone is not enough.
The OS's standard text editing components assume continuous text in a document, which doesn't fit an outliner's row-based structure. Kosshi has its own rendering engine — handling layout, cursor tracking, Markdown rendering, and images in a single pipeline. The editing logic and rendering share a single codebase across macOS and iOS. A feature or fix on Mac applies to iPhone automatically.
Trade-offs
A native Apple app runs only on macOS and iOS. Users on Windows, Android, or Linux cannot use it.
Web apps work on every platform with a browser. For teams that need cross-platform access or real-time collaboration, a web-based tool is the practical choice.
For a personal thinking tool, Kosshi chose responsiveness over platform reach. For help choosing, see Choosing an Outliner.
About Kosshi
Kosshi is a native outliner for macOS and iOS. Collapsing, moving, and restructuring respond to keyboard input without perceptible delay. It syncs between Mac and iPhone via iCloud. One-time purchase, no subscription.
For basic operations, see What Is an Outliner?. For detailed features, see the Guide.
Try Kosshi Free for 7 DaysFootnotes
-
Miller, R. B. (1968). Response time in man-computer conversational transactions. Proceedings of the Fall Joint Computer Conference, 33, 267–277. This research established that system responses under 100 ms are perceived as instantaneous by users. ↩