Personal product · 2026
Slote
Slote is a notes app where typing and handwriting share one canvas.
Visit product site ↗
01The idea
Slote exists because most note apps make you choose something you should not have to. Apple Notes and Samsung Notes are excellent right up until you change phones. OneNote follows you everywhere but brings a filing cabinet along. Notion is genuinely powerful and has a learning curve most people never finish climbing. And nearly every app that handles handwriting properly assumes you own a stylus.
So Slote is the app I wanted and could not buy: typed text and freehand ink sharing one canvas, the same notes on iPhone, Android, Windows and Mac, and finger and mouse treated as first-class input rather than a degraded fallback for people without hardware.
02What has been built
Roughly 245,000 lines of Dart across 1,054 files, organised into eight internal packages: a design system, a rich text engine, an ink and drawing layer, a zoom and pan viewport, and the shared plumbing underneath all of it.
Notes are written to local SQLite first and synced to Postgres after, so the app works on a plane and reconciles when it reconnects. Note content is encrypted on the client before it leaves the device. Sign-in uses native Google and Apple flows rather than a web redirect, because a browser bouncing you back into an app is the worst thirty seconds of any onboarding.
Ten server-side functions handle the things a client cannot be trusted with: billing webhooks, signed export URLs, share notifications, and garbage collection for orphaned images. Billing itself is split by platform because the platforms require it. In-app purchase covers iOS and Android; Stripe covers Windows and macOS.
03How it is built
405 test files, and CI that runs on every push. A maintained launch-readiness document tracks every open issue by severity, and resolved rows stay in the table for two releases, so there is a written record of what broke and why.
Partway through, I removed the WebView-based editor the app started with and replaced it with a Flutter-native one. That is an expensive decision to make in the middle of a project. The WebView cost was visible on every keystroke on lower-end Android, so it was the right call, and it still shipped behind a tagged rollback point in case it was not.
Fonts are bundled as files instead of fetched at runtime, so the first frame never waits on a network request. Small decision, and exactly the kind that separates an app that feels fast from one that benchmarks fast.
04Where it stands
In development, heading toward a v1 store release. It has not launched, and this page will keep saying so until it has. What is left is the unglamorous part: the full suite green on every platform, static analysis clean, and a migration path for notes created in the old editor.
Get notified at launch
One email when Slote reaches the app stores. Nothing else, and no newsletter.
