One native Mac app for the whole practice: leads, scopes, deposits, sign-offs, change requests, handoffs and invoices. The CRM lives in a SQLite file on your own machine. Specs and proposals are plain Markdown you can grep, edit in any editor, and hand straight to a coding agent. Nothing syncs anywhere you did not ask it to.
Every freelance disaster is a skipped step. Otter makes each one a gate with a checklist, tracks how long work has sat in a stage, and nudges when something goes quiet — but any gate can be overridden with a reason, and the override is recorded.
Is this real work, for a client who can pay?
Written, with what is explicitly out of scope.
Money before build. No exceptions worth making.
Requirements agreed in writing, then frozen.
Milestones, time and the files in one workspace.
Every change request priced against the original.
Deliverables, credentials, documentation, done.
Ask for the testimonial and portfolio permission.
Kanban board · days-in-stage badges · nudge rules · a ranked NOW list of five things · quick-capture hotkey into the inbox
Everything Otter manages stays in formats that outlive it: a SQLite file, a folder of Markdown, your own repositories.
Leads from Fiverr, Twine, LinkedIn and plain referral, moving through the stage gates with interactions, checklists and nudges. Stored in local SQLite via GRDB — one file, yours.
Proposals, scopes, requirements and meeting notes are Markdown in a folder you choose, watched live. Grep them, edit them anywhere, feed them to an agent.
Invoices are built from append-only per-repo LEDGER.md files, parsed exactly.
Invoiced rows become immutable; an ambiguity is an error, not a guess.
The official GitHub API, official LinkedIn posting OAuth, and parsing of your own notification emails. No scraping, no credential replay, no stored marketplace passwords.
A live, read-only view of each project repo: recent commits, metrics, progress notes and the tail of its ledger — so the business view and the code view agree.
Testimonials and portfolio permissions are captured at close-out, while the client is still delighted, rather than chased down six months later.
These are architectural, not preferences — they constrain what Otter is permitted to do with your business.
Otter is a working tool for River.io LLC first and a product for other freelancers second. It is not on the Mac App Store yet and there is no public download — if the shape of it is interesting to you, write and say so.