Kalam is an offline-first note-taking application designed for instant capture and long-form structured writing. Notes are stored locally for speed and reliability, organized through folders and tags, and composed using a flexible block-based editor that scales from quick ideas to complex documents.
Offline-first
Block-based editor
Local-first performance
Encrypted backups
Used to build and maintain cross-platform mobile apps with predictable performance.
Managed backend services for auth, data storage, messaging, and analytics in mobile apps.
Local persistence layer for Flutter apps, optimized for fast access and offline usage.
Architecture layer for structuring Flutter apps with clear separation of concerns.
Most note-taking apps optimize for one of two extremes:
either fast capture with limited structure, or powerful organization that introduces friction during everyday use.
In practice, this leads to inconsistent behavior. Users capture fewer notes over time because quick thoughts feel costly to record, while longer notes require workarounds to stay organized.
Kalam was built to resolve this tension by combining instant, offline capture with a system that supports structured, long-form content without slowing users down.
The core problem was designing a note-taking system that remains fast at the moment of capture while still supporting complex, structured notes over time.
Key constraints:
Most existing tools solved only part of this problem.
Kalam was designed as a local-first system, with all notes stored on device to guarantee speed and availability. Cloud functionality is limited to encrypted backups rather than real-time syncing, reducing complexity while preserving data safety.
To support both simple and complex content, notes are composed using a block-based model. Each block represents a specific content type, allowing users to structure notes incrementally instead of committing to a rigid format upfront.
The architecture emphasizes:
This allows quick capture to remain lightweight while enabling deep structure when needed.
Instead of treating a note as a single text document, Kalam models notes as ordered collections of blocks.
Blocks are designed around real usage patterns:
Because blocks are composable, users can evolve a note naturally over time, from a single line into a detailed document, without changing tools or workflows.
Organization is intentionally flexible.
Users can combine:
Personalization is treated as a functional feature rather than decoration. Visual customization helps users recognize notes quickly and reduces cognitive load when navigating large collections.
Theme, color, and typography options are designed to remain lightweight and not impact performance or readability.
Kalam supports multiple ways to move content out of the app without locking users into a proprietary system.
Notes can be:
Shared notes preserve structure and metadata, allowing collaboration or migration without manual rework.
All backups are encrypted before leaving the device, and restores remain fully user-controlled.
Kalam is used as a daily note-taking tool rather than a temporary capture app, validating the balance between speed and structure.
If revisiting early versions, I would introduce schema migration tooling sooner to simplify long-term evolution of block types.
2 Jan 2025
Runs smoothly, works fully offline, and feels reliable for daily note-taking. The dynamic theme is a nice touch.
23 Mar 2024
The block system makes organizing different kinds of notes easy without slowing things down.
12 Jul 2023
Very useful for regular notes. Simple to use, but still powerful.