Legal

Privacy Policy

How Ridgeline Budget handles your data — written to be read, not just agreed to.

Effective: March 23, 2026 Last updated: March 23, 2026

Overview

The short version: Your financial data is encrypted on your device before it ever reaches our server. We cannot read it. We collect only what is necessary to operate the service. We do not sell data, serve ads, or use third-party analytics trackers.

Ridgeline Budget is a personal household budgeting application operated by an individual developer. This policy explains what information is collected, how it is stored and protected, what rights you have over it, and how this application relates to major privacy regulations.

This policy applies to the Ridgeline Budget web application at app.ridgelinebudget.com and the associated marketing website at ridgelinebudget.com. It does not apply to third-party services linked from these sites.

How the Application Works

Understanding the architecture is essential to understanding the privacy model. Ridgeline Budget is a client-side-first application. All data processing — budgeting calculations, encryption, and decryption — happens in your browser. The server is a storage relay, not a data processor.

Guest mode (no account)

In guest mode, all data is stored exclusively in your browser's localStorage. Nothing is transmitted to any server. Your financial data never leaves your device.

Signed-in mode (synced)

When you create an account, your workspace data is encrypted in your browser before being sent to the server. The server stores an opaque, encrypted blob. The encryption key is stored only in your browser's localStorage — it is never transmitted to the server in any form.

The sync architecture uses an operation log (op_log) and a workspace state snapshot (workspace_state). Both tables store only encrypted ciphertext when encryption is enabled. The server cannot reconstruct any financial data from what it stores.

What the server can see

Even with full database access, the server (and the developer) can see only:

  • Your account email address and hashed password (managed by Supabase Auth)
  • Workspace identifiers (UUIDs) and workspace names
  • Timestamps of when operations were written
  • Encrypted ciphertext blobs prefixed with enc: — unreadable without your key
  • Passkey credential metadata (credential ID and public key only — never the private key)

If you choose no encryption, your financial data is stored as readable JSON on the server. This is clearly disclosed during setup. Encryption is strongly recommended and enabled by default for new workspaces.

What We Collect and Why

DataPurposeStored where
Email address Account identity, sign-in, password reset, partner invitation emails Supabase Auth (server)
Hashed password Authentication Supabase Auth (server) — bcrypt hash, never plaintext
Passkey credential Password-free authentication Server — credential ID and public key only. Private key never leaves your device.
Workspace financial data Core application function — budgets, income, expenses, history Encrypted in browser; encrypted ciphertext stored on server
Encryption key Encrypting and decrypting your data Browser localStorage only — never sent to server
Session tokens Maintaining your signed-in state Browser localStorage and server-side session record
Operation timestamps Conflict resolution for real-time sync Server — ISO timestamps only, no content
Subscriber status Tracking paid plan status, sponsor/partner relationship Server — plan tier and associated email
Debug logs Optional diagnostic output to your own browser console Browser only — never transmitted. Off by default.

We do not collect: IP addresses beyond what Supabase's infrastructure logs for security purposes, device fingerprints, behavioral analytics, browsing history, or any data for advertising purposes.

Encryption in Detail

Encryption is implemented entirely in your browser using the Web Crypto API — the same standard cryptography interface used by banks and password managers. No third-party encryption library is involved.

Encryption modes

ModeAlgorithmKey storageKey recovery
Random key AES-GCM-256, 96-bit random IV per operation Browser localStorage None — must transfer key manually to new devices
Passphrase AES-GCM-256, key derived via PBKDF2 (600,000 iterations, SHA-256) Browser localStorage after derivation Re-enter passphrase on any new device
None No encryption N/A N/A — data readable on server

What "end-to-end encrypted" means here

In this application it means the data is encrypted before it leaves your browser and decrypted after it arrives in your browser. The server never holds the key. This is structurally identical to end-to-end encryption in messaging applications — the transit layer and the storage layer both handle only ciphertext.

Important: If you lose your encryption key and have no backup, your data is permanently unrecoverable. We cannot reset or recover encryption keys. Export a data backup regularly via Settings → Data Backup → Export.

What encryption does not protect against

Encryption protects your data at rest on the server and in transit. It does not protect against malware on your own device that can read localStorage, or against someone who has physical access to an unlocked device where you are signed in.

Third-Party Services

Supabase

The backend database, authentication, and serverless functions run on Supabase (supabase.com), which is hosted on AWS infrastructure. Supabase processes your email address, hashed credentials, and encrypted workspace data as a data processor on our behalf. Supabase is SOC 2 Type II certified and GDPR-compliant. Their privacy policy is available at supabase.com/privacy.

Google Fonts

The marketing website loads fonts (Instrument Serif, DM Sans, JetBrains Mono) from Google Fonts. This causes your browser to make a request to Google's servers, which may log your IP address. Google's privacy policy applies to this request. The application itself (app.ridgelinebudget.com) does not load any external font resources.

No analytics, no advertising

Ridgeline Budget does not use Google Analytics, Mixpanel, Amplitude, Segment, Sentry, Hotjar, Intercom, or any other third-party analytics, error tracking, or behavioral monitoring service. There are no advertising networks, no tracking pixels, and no data brokers involved.

No cookies

This application does not use HTTP cookies. Authentication sessions and encryption keys are stored in localStorage, which is not transmitted with every request the way cookies are. There is no cookie banner because there are no cookies to consent to.

Data Retention

Active accounts

Your account data is retained for as long as your account exists. Workspace data (encrypted) is retained indefinitely to support the app's multi-year history feature.

Account deletion

You can permanently delete your account at any time via Settings → Account → Delete Account. Deletion requires typing DELETE to confirm. Upon deletion, your account record, all workspace memberships, all encrypted workspace data, and all operation log entries are permanently removed from the server. This action is irreversible.

Workspace removal

Deleting a workspace removes all associated data from the server immediately. If you are a member (not the owner) and are removed from a workspace, your access is revoked but the workspace data remains for the owner.

Guest mode data

Guest mode data lives only in your browser's localStorage. Clearing your browser data, using a private window, or switching browsers removes it permanently. There is no server copy to delete.

Backups

Supabase maintains infrastructure-level backups as part of its standard operations. These backups are encrypted at rest and are used only for disaster recovery purposes, not for data analysis. Point-in-time recovery is available for a limited window per Supabase's standard retention policies.

Your Rights and Controls

Regardless of where you live, you have the following practical controls over your data:

  • Access: Your financial data is always accessible to you in the app. You can export a full JSON backup at any time via Settings → Data Backup → Export.
  • Correction: All data in the app is editable directly. There is no data we hold about you that you cannot see and change yourself (except infrastructure logs maintained by Supabase).
  • Deletion: Delete your account via Settings → Account → Delete Account. This permanently removes all server-side data.
  • Portability: The JSON export format is human-readable and can be used independently of this application.
  • Encryption control: You choose your encryption mode and hold your key. You can change or remove encryption at any time in Settings → Encryption.
  • Collaboration revocation: Workspace owners can remove members at any time. Members can leave a workspace at any time.
  • Passkey management: Register and delete passkeys at any time via Settings → Passkeys.

GDPR (European Union & UK)

If you are located in the European Economic Area (EEA) or the United Kingdom, the General Data Protection Regulation (GDPR) or UK GDPR applies to your personal data.

Legal basis for processing

Processing activityLegal basis
Account creation and authenticationContract performance (Art. 6(1)(b)) — necessary to provide the service you signed up for
Storing encrypted workspace dataContract performance (Art. 6(1)(b)) — core function of the service
Sending partner invitation emailsLegitimate interests (Art. 6(1)(f)) — necessary to fulfil the collaboration feature you initiated
Subscriber / payment statusContract performance (Art. 6(1)(b)) — necessary to manage paid plan access

Your GDPR rights

  • Right of access (Art. 15): You can export all your data at any time. To request any data held outside the app (e.g. Supabase Auth records), contact us at the address below.
  • Right to rectification (Art. 16): All app data is editable directly. Contact us to correct account email or metadata.
  • Right to erasure (Art. 17): Delete your account in-app. All server-side personal data is permanently removed.
  • Right to data portability (Art. 20): Export your data as JSON at any time. Format is machine-readable and documented.
  • Right to object (Art. 21): We do not process data for direct marketing or profiling. There is nothing to object to beyond the service itself.
  • Right to restriction (Art. 18): Contact us to discuss restrictions on specific processing activities.

Data transfers outside the EEA

Supabase hosts data on AWS infrastructure, which may involve servers outside the EEA. Supabase relies on Standard Contractual Clauses (SCCs) approved by the European Commission for international data transfers. Details are available in Supabase's Data Processing Agreement.

Data Protection Officer

Ridgeline Budget is operated by an individual developer and does not meet the thresholds requiring a formal Data Protection Officer appointment under Art. 37 GDPR. Privacy inquiries should be directed to the contact address below.

CCPA / CPRA (California)

If you are a California resident, the California Consumer Privacy Act (CCPA) as amended by the California Privacy Rights Act (CPRA) grants you specific rights.

Categories of personal information collected

CategoryExamplesCollected?
IdentifiersEmail address, account IDYes
Financial informationBudget data, income, expense recordsYes — encrypted; we cannot read it
Internet / network activityBrowsing history, interaction dataNo
Geolocation dataPrecise locationNo
Biometric informationFingerprints, facial dataNo — passkeys use device-local biometrics; biometric data never leaves your device
Inferences / profilesConsumer profiles, preferencesNo
Sensitive personal informationFinancial account detailsYes — encrypted before transmission; inaccessible to us

Sale or sharing of personal information

Ridgeline Budget does not sell personal information and does not share personal information with third parties for cross-context behavioral advertising purposes. We do not have actual knowledge that we sell or share the personal information of consumers under 16 years of age.

Your CCPA rights

  • Right to know: This policy and your in-app data export describe all personal information collected. Submit requests to the contact address below.
  • Right to delete: Delete your account in-app (Settings → Account → Delete Account) or submit a deletion request to us.
  • Right to correct: Update your data directly in the app or contact us for account-level corrections.
  • Right to opt out of sale/sharing: Not applicable — we do not sell or share personal information.
  • Right to limit use of sensitive personal information: Your financial data is encrypted and inaccessible to us. No further limitation is possible or necessary.
  • Right to non-discrimination: Exercising any of these rights will not affect your access to the service.

We will respond to verified consumer requests within 45 days. Requests may be submitted to the contact address below. We may need to verify your identity before fulfilling a request.

Other Privacy Regulations

🇨🇦 PIPEDA / Law 25 (Canada / Québec)

Canadian users have rights to access and correct personal information held about them. Québec's Law 25 additionally requires privacy impact assessments for new personal information technologies. Contact us to exercise these rights. Data may be processed on servers outside Canada (AWS via Supabase).

🇦🇺 Privacy Act (Australia)

Australian users have rights under the Australian Privacy Act 1988 and the Australian Privacy Principles. You may request access to or correction of your personal information by contacting us. The app does not collect sensitive information as defined under Australian law beyond encrypted financial data we cannot access.

🇧🇷 LGPD (Brazil)

Brazilian users have rights under the Lei Geral de Proteção de Dados. Legal basis for processing is contract performance and consent. You may exercise access, correction, deletion, portability, and objection rights by contacting us.

🇺🇸 Other US State Laws

Virginia (VCDPA), Colorado (CPA), Connecticut (CTDPA), Texas (TDPSA), and other US state privacy laws grant similar rights to access, correct, delete, and opt out of sale/profiling. We do not sell data or engage in targeted advertising. Exercise rights via the contact address below.

Across all jurisdictions, our core commitments are the same: we collect the minimum data necessary, we do not sell or share it, your financial data is encrypted and inaccessible to us, and you can delete everything at any time.

Children's Privacy

Ridgeline Budget is intended for use by adults managing household finances. The service is not directed to children under 13 years of age (or under 16 in the EEA and UK), and we do not knowingly collect personal information from children.

If you believe a child has provided personal information through this service, please contact us immediately and we will delete it. The COPPA (Children's Online Privacy Protection Act) safe harbor provisions do not apply to this service as it is not directed at children.

Changes to This Policy

We may update this policy from time to time. If changes are material — meaning they meaningfully expand the data we collect, change who we share it with, or reduce your rights — we will notify signed-in users by email and update the effective date at the top of this page.

Continued use of the service after the effective date of any changes constitutes acceptance of the updated policy. The previous version of this policy will always be available upon request.

Contact

For privacy-related questions, data requests, or to exercise any rights described in this policy, contact us at:

Ridgeline Budget

Operated by an individual developer

For privacy inquiries: privacy@ridgelinebudget.com

We aim to respond to all privacy inquiries within 14 days. For formal GDPR or CCPA requests, we will respond within the legally required timeframe (30 days for GDPR, 45 days for CCPA) and may ask you to verify your identity before fulfilling the request.