Synaplan
Open-source AI platform for companies: self-hosted AI agents, GDPR-compliant chatbot widget, RAG knowledge base, WhatsApp and Outlook AI, MCP, multi-model routing. Docker, Kubernetes or hosted in Germ
A free desktop app for journalists and researchers that keeps contacts, outreach and source relationships encrypted on your own computer.
BusinessTypeScript · CSSGitHub @tomcardosoOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
A secure, collaborative source management tool for journalists and researchers.
Taken from the repository README
Loading the full README.
Read the full README ↗Source and contact management for journalists and researchers — local-first, encrypted, no cloud.
All names and details in the screenshot are fictional and generated for demonstration purposes only.
All data lives in an encrypted SQLite database on your own machine. There are no accounts, no sync servers, and no telemetry of any kind. The encryption key is derived from your master password with Argon2id on every unlock and is never written to disk.
Sourcerer is built around the workflow of investigative reporting: you manage a global contact book, then organise sources into projects with per-project status, priority, outreach history, and reporter attribution. You can log interactions, set reminders, and track exactly who owns each relationship and when it was last touched.
Deduplication surfaces likely-duplicate contacts via fuzzy name matching and exact email/phone signals, then presents them side-by-side so you can merge or dismiss each pair with one click.
A browser extension (Chrome and Firefox) captures full-page screenshots from any browser tab and links them to a contact record. Screenshots are encrypted on disk with the same key as the database. Export to CSV, Excel, or vCard; import from CSV or vCard (.vcf).
Contacts
Projects
Outreach
Alerts
Security
.sourcerer bundle (database, key file, screenshots) that you can store anywhere — local drive, external drive, or cloud-synced folderImport / Export
Chrome extension · Firefox extension
Sourcerer is an Electron + React + TypeScript application built with electron-vite. The database is SQLite encrypted with better-sqlite3-multiple-ciphers (SQLCipher AES-256-CBC). All communication between the renderer and the main process goes through a typed preload bridge — nodeIntegration is off, the renderer sandbox is on. The master password is never stored; the key is derived fresh on each unlock with Argon2id.
All data lives in a self-contained .sourcerer vault bundle — a directory containing the encrypted database, the Argon2 salt file, and any screenshots captured by the browser extension. The vault can be placed anywhere: a local folder, an external drive, or a cloud-synced folder. On macOS, Finder presents the bundle as a single opaque file.
Collaboration works by putting a second SQLCipher database in a cloud-synced folder. There is no server, and no third party ever holds a key — which is the point, but it bounds what sync can guarantee.
Shared projects are eventually consistent, provided collaborators don't write within the same cloud-sync upload window. Cloud providers replicate whole files and fork on concurrent writes; they never merge. Two simultaneous saves produce a provider-level "conflicted copy" next to the real file, and the losing side's changes are not in the file Sourcerer goes on to read.
Conflicts that do get reconciled resolve last-write-wins by wall-clock timestamp at second granularity. Those clocks belong to the collaborators' machines and nothing arbitrates between them, so a badly skewed clock can resolve a conflict backwards.
This is a limitation of the substrate, not of the merge logic, and it is permanent for as long as the design stays serverless. In practice: work a few minutes apart, and don't treat a shared project as the only copy of something you can't lose.
Pre-built binaries for macOS (Apple Silicon), Windows (x64), and Linux (x64) are published with each release.
macOS
Sourcerer-<version>-arm64.dmg..dmg and drag Sourcerer to your Applications folder.Windows
Sourcerer Setup <version>.exe.Linux
Sourcerer-<version>.AppImage.chmod +x Sourcerer-*.AppImage./Sourcerer-*.AppImageNo installation required. The AppImage runs on any x64 Linux distribution with glibc 2.17+ (Ubuntu 18.04+, Fedora 27+, Debian 9+, and equivalents).
Prerequisites: Node 20+, npm
git clone https://github.com/tomcardoso/sourcerer.git
cd sourcerer
npm install
npm run rebuild # compiles native SQLite and Argon2 modules for Electron
npm run dev
If you see a
NODE_MODULE_VERSIONmismatch error, runnpm run rebuildagain.
Running tests (before the Electron rebuild):
npm run rebuild:node # compile native modules for system Node
npm test
npm run rebuild # restore Electron-targeted binaries before npm run dev
Inspecting the database (TablePlus, DB Browser, sqlite3, etc.):
npm run rebuild:node # only needed once, or after switching between dev and Electron
npm run db:export # prompts for your app password, writes sourcerer-plain.db
The exported file is a standard unencrypted SQLite database. Delete it when you're done — it contains all your source data in plaintext. (*.db is in .gitignore so it won't be committed accidentally.)
AGPL-3.0 — see LICENSE.