SQLite or PostgreSQL
SQLite is the default and keeps the workspace in one database file. PostgreSQL is available for managed hosts without persistent local disk.
Storage without hand-waving
Keel makes the storage model inspectable. The live workspace, exported backups, optional cloud copies, and sign-in providers do different jobs. This page keeps those promises separate.
SQLite is the default and keeps the workspace in one database file. PostgreSQL is available for managed hosts without persistent local disk.
Snapshot backups can be encrypted with a passphrase. The live database is not end-to-end or application-encrypted. Use full-disk or volume encryption for storage-at-rest protection.
Backups can stay local or be copied to Google Drive, OneDrive, Azure Blob, or Cloudflare R2 after you configure that provider.
Use Keel's export or backup path rather than copying a database while it is being written. Restore a test copy before removing the old install.
The GitHub idea
A GitHub App could sign users in and write an encrypted vault file to a repository. That is technically real, but every sync becomes repository content activity. It brings permissions, rate limits, conflicts, repository history, and metadata leakage into a workflow that wants database semantics.
GitHub sign-in can identify a user without granting repository access. Storage permissions should be requested only if the user opts into that feature.
Ciphertext can hide note content, but repository existence, update timing, file size, commits, and access relationships remain visible to GitHub.
Concurrent devices can race or conflict, attachments grow history, and rekeying or deletion has to account for old commits.
Recommendation
The current site should remain a product, release, and deployment guide. It should not accept notes or require a user account. That gives Keel a trustworthy front door without creating a second, multi-tenant security product.
Static Cloudflare site, public source, downloads, install decision support, storage truth, security policy, and no account database.
GitHub sign-in for identity, browser-side encryption, ciphertext in dedicated object storage, explicit recovery design, and a security review before beta.