Case study Inkward
How an app learned to read handwriting
A journaling app from our own development: the OCR pipeline for real handwriting, the AI architecture behind it, and what client projects can take away from it
Inkward is an app we built ourselves: you write your journal by hand, on paper, on the iPad, or on an e-ink device such as the reMarkable, and the app reads your entries and mirrors back, in two or three sentences, what it finds in your own words. No coaching, no judging, no streaks. The apps for iOS, Android, Apple Watch, and Wear OS are fully native; all details are on inkward.life. This case study shows the technical implementation.
Handwriting is not print
Any text-recognition (OCR) engine reads printed text reliably these days. Real handwriting in a journal is a different matter: cramped, fast, full of abbreviations and personal words. A single engine does not produce usable results for that. Inkward therefore sends every page to several OCR engines, among them Google Vision, Azure, and OCR by the European provider Mistral; for photo uploads, the phone's text recognition adds one more voice. The referee is a Claude model by Anthropic: it receives the image of the page, all OCR results, and the user's personal dictionary, and reconstructs the text from them. Whatever is genuinely unreadable is marked as unreadable instead of guessed. In our tests this merge step reports a recognition confidence of 88 to 92 percent, well above what a single engine achieves on its own.
Before recognition comes rendering
On e-ink devices such as the reMarkable, the handwriting does not even exist as an image: it is vector data, individual strokes with pressure values. How they become an image decides the recognition rate. Inkward renders the strokes with pressure sensitivity, using a curve that mimics the ink flow of a real pen, smoothed by supersampling, at around 315 DPI, the resolution handwriting OCR needs. Pressure rendering and smoothing alone yielded up to 97 percent more recognized text in our tests. Photos of paper pages go the opposite way: the system's text recognition warns on the device when a shot is not readable enough, before anything is uploaded.
The device is not a requirement
Journaling apps usually tie their users to one input method. Inkward takes handwriting where it happens: as a photo of a paper page through the system's document scanner (VisionKit on iOS, ML Kit on Android), written directly on the iPad with the Apple Pencil on a PencilKit canvas, via cloud sync from the reMarkable or Supernote, and even by email to a personal drop-in address. Every path feeds the same pipeline. The uploads are built to be crash-safe: every page is stored locally first and then placed in a queue that survives crashes and app restarts.
Mirroring, not judging: two separate AI calls
The core idea of Inkward is a mirror, not a coach. Technically that means the analysis and the mirror text are produced in two separate Claude calls. The first reconstructs the text and extracts structured fields such as mood and energy. The second deliberately starts fresh and writes only the mirror: two or three sentences at most, no advice. There is a reason for the detour: a model that has just filled in a good dozen analysis fields stays in analysis mode, and early testers called the results “explaining instead of mirroring”. The second decision is just as deliberate: Inkward keeps no profile of the people who use it. The app knows only the entries themselves.
Privacy as architecture, not as a promise
A journal is the most private thing people write. That is why privacy at Inkward lives in the code: the central text content in the database, from the reconstructed text and the mirror to the raw results of the cloud OCR engines, is encrypted with AES-256-GCM, and a hard check prevents any of these fields from being stored in plain text by accident. Sync logs and diagnostics work with text lengths instead of content. Uploaded photos are deleted automatically after 30 days, and GDPR deletion removes all related data from every part of the database. Storage and operations run on Hetzner servers in the EU; the AI providers for recognition and analysis are bound by data-processing agreements.
From the app to visibility
As with all our projects, the work does not end at the build: the Inkward website is available in seven languages, with guides such as How to start journaling and free templates such as the five-year journal One line a day for reMarkable and Supernote, each with structured data and a clean hreflang setup. We apply the same combination of development and marketing to client projects.
What you can take away from this
If your product is going to use AI, it is not the model that decides the quality but the pipeline around it: how the data gets in, what happens with bad input, and how privacy is solved technically rather than legally. These are exactly the questions we answer for client projects too. How we handle deep operating-system integration is shown in our second case study: Callvent, phone calls become calendar events. And for the simpler case of bringing your existing website to the stores, there is our fixed-price offer: PWA to App Store.