← Back to work
Minerva's Home screen, with a writing streak and drafts saved per week
Kirkham Media Labs — Side Project

Minerva

2026 — Present · Free and open source (MIT)

Minerva is a desktop app for keeping a lifetime of writing in order. It keeps every draft, turns scanned or photographed notebook pages back into text, groups pieces into projects and manuscripts, and tracks where each piece has been submitted. It runs on Windows, Mac and Linux, and everything stays on your own computer.

The Problem

My writing lives in too many places: years of handwritten notebooks, Word files, notes apps, and half a dozen versions of the same poem. Writing apps assume you start fresh inside them, and submission trackers don't know what you've written. I wanted one place that works with the folders I already have, never deletes anything, and can read my handwriting.

What I Built

  • A library on plain folders. Each piece is a folder of ordinary text files, with older drafts kept in an Archive beside it, so the writing still opens without Minerva.
  • Scans to text. Pages scanned with a phone into Google Drive, Dropbox or OneDrive are copied in, read by an AI model (Claude, OpenAI, Gemini, or a free model running locally), proofread beside the original page, and filed as entries.
  • Projects and submissions. Pieces are grouped and ordered into manuscripts that export to Word, PDF or EPUB, and every submission is tracked with its fee, deadline and expected reply.
  • Everyday tools. Imports from Word, Google Docs, Evernote, Google Keep and Notion, grammar checks, find and replace across drafts, focus mode, narration and one-click backups.
Editing a poem in Minerva, with notes, tags and AI suggestions beside it
The editor, with notes, tags and optional AI suggestions beside the draft.

Under the hood it's a Python and Flask app shown in a native window with pywebview, packaged with PyInstaller. GitHub Actions builds and self-tests a Windows, Mac and Linux version on every change and publishes them together as a release, and about 270 automated tests run against a made-up sample library so no real writing ever enters the code.

Minerva's Submissions list with status, fees and expected reply dates
Submissions: where each piece is out, what it cost, and when to expect an answer.

What I Learned

Trust is the feature. A writer will only hand an app their life's work if it can't lose any of it, so Minerva never deletes or overwrites a file, and every AI suggestion waits for a person to accept it. Keeping the work in plain folders made the app easier to build and easier to trust. And a slow launch taught me to split the app into two processes and log everything, which turned a vague "it freezes sometimes" into a clear fix.