Why a Native App
Kosshi is built with Apple frameworks, including SwiftUI, AppKit, and UIKit. It is neither a browser-based web app nor a web app packaged as a desktop app.
Kosshi chose to be native because responsiveness and fluid interaction matter deeply in an outliner.
Keeping thought in motion
Using an outliner involves more than typing. You indent, move, collapse, expand, and zoom into sections, often several times in a few seconds. Each action is small, but waiting after each one interrupts the flow of thought.
Kosshi aims to make a row move when you press the key and make surrounding rows follow immediately when you collapse a section. The goal is to let you focus on the outline rather than notice the tool.
To support that experience, Kosshi connects text input, scrolling, keyboard commands, and drawing to Apple frameworks and designs them for Mac, iPhone, and iPad.
Interaction made for Apple devices
A Mac app does not feel at home because of appearance alone. Text selection and input methods, keyboard shortcuts, trackpad scrolling, context clicks, drag and drop, menus, and windows all contribute to the experience.
Apple frameworks connect these interactions to macOS and iOS input, accessibility, and appearance settings. They also make it easier to adopt new behavior as the operating systems evolve.
Being native does not make an app pleasant to use by itself. It gives Kosshi the foundation on which to refine the interaction it wants to provide.
The feel of smooth motion
Responsiveness is not only about how quickly an action finishes. It is also about how the interface moves.
Collapse a section, and the rows below move up. Expand it, and the rows spread down. Move a row, and the surrounding rows make space for it.
Kosshi combines Apple's animation and drawing systems with its custom renderer to bring these changes to the screen. The aim is not merely to replace one state with another, but to let you follow where a row moved.
In an outliner, where collapsing and moving rows happen constantly, these small transitions build confidence in every action.
How Kosshi is built
Native frameworks provide the foundation, but they do not determine performance by themselves.
Standard text editing components are designed mainly for continuous documents. An outliner instead manages many rows in a hierarchy, collapsing them and moving whole sections at a time.
Kosshi has a custom renderer designed around those operations. It handles row placement, the cursor, Markdown, and images as one coordinated process. The path from a keystroke to measuring rows and redrawing the affected area is designed specifically for an outliner.
The core editing and drawing code is shared across macOS and iOS. Parts that differ between devices, such as input and windows, are implemented for each platform.
Keeping a large outline responsive also depends on how its data is organized. That mechanism is described in How Kosshi Handles Large Outlines.
Trade-offs
As a native app for Apple devices, Kosshi is not available on Windows, Android, or Linux.
A web-based tool is a better fit when the same data must be available across many platforms or when real-time collaboration is required.
As a tool for personal thinking, Kosshi chose responsiveness and interaction on Apple devices over broader platform support. This is a design trade-off, not a universal answer for every use case.
For help choosing, see Choosing an Outliner.
About Kosshi
Kosshi is a native outliner for macOS and iOS. Its custom renderer is designed for responsive keyboard editing and structural changes. It syncs across Mac, iPhone, and iPad via iCloud.
For basic operations, see What Is an Outliner?. For detailed features, see the Guide.