Projects · Local-first software

fp-crm

A local desktop CRM for a solo fee-only financial planning practice. It is built as a practical prototype for keeping clients, accounts, notes, correspondence, attachments, tasks, documents, and follow-up workflows in one encrypted local system.

⚙️ GitHub repo
App typeDesktop CRM
StackTauri 2 + React
StorageSQLCipher SQLite

Purpose

fp-crm is meant to reduce repetitive hand-work in a financial planning practice: every call, meeting, email, internal note, task, account, and attachment should live against the right client instead of being scattered across email folders, spreadsheets, and Word templates.

Because the information sits in one structured store, questions like “who have I not touched in six months?”, “what needs follow-up?”, or “which routine documents can be generated from existing data?” become much easier to answer.

Core features

Client records

Clients, members, accounts, notes, attachments, tasks, planner profile data, and history are organized in one local app.

Email ingestion

A dedicated records mailbox can be processed over IMAP so forwarded or BCC’d client correspondence gets filed as notes against matching clients.

Backups

The app writes encrypted backup snapshots hourly and on app close. The backup folder can live inside OneDrive or another cloud-sync directory, but fp-crm itself does not hold cloud credentials.

Document workflow

The intended direction is to populate routine forms and documents from already-entered client data, reducing manual copy/paste.

Privacy and security posture

Local-first

Normal operation does not call internet services. Client data lives on the user's computer, not in a vendor cloud database.

Encrypted data

The database uses SQLCipher. The app password derives the encryption key, and backups are encrypted before any cloud-sync client sees them.

No outbound email

Email ingestion is receive/process only. A CI guard fails the build if outbound-email libraries are added to package.json or Cargo.toml.

Compliance-minded retention

Notes and attachments are designed around soft-delete/audit behavior rather than casual permanent deletion.

Install / update model

The Windows install flow is built around a GitHub Actions workflow that produces an MSI installer. A collaborator can ask Claude Code to run the build, download the artifact, and launch the installer. Updates are installed over the previous version while preserving app data.

Developer loop: npm run tauri dev starts the local Vite + Tauri development loop. First run compiles SQLCipher/OpenSSL and can take 15–20 minutes; subsequent runs are faster.

Current status

Prototype

Rich enough for hands-on use and feedback, but still a prototype: rough edges and missing features are expected and useful.

Private project

The repository is private/not for distribution. The README is the main install and configuration guide.

Technical notes

Source: github.com/rousegordon-ops/fp-crm, README and repo state at commit d6ea38d.