Documentation

The complete guide to Porcfolio. From getting started to deep technical dives.

User Guide

Everything you need to know to manage your finances with Porcfolio.

Getting Started

Porcfolio is designed to be usable immediately after installation, with no account required for local-only use.

  • Installation: Download the latest release for Windows, macOS, or Linux from our Download page. The mobile app is coming soon to iOS and Android.
  • First Run: Upon launching, you can immediately start managing your wealth data! No log in is required to use the app freely, only for the Pro account.

Accounts & Transactions

Porcfolio supports a double-entry bookkeeping system under the hood, simplified for personal finance. You can manage different types of accounts:

Assets & Liabilities

Track what you own (Cash, Bank Accounts, Investments) and what you owe (Credit Cards, Loans). These accounts determine your Net Worth.

Income & Expenses

Track your cash flow. Categorize your earnings and spending to understand your financial habits.

Bank Synchronization (Pro)

Bank synchronization will be available soon for Pro users. The feature will use industry-standard providers so users can connect eligible institutions with secure, read-only access.

  • ✓Plaid (North America): Bank aggregation provider for US and Canadian institutions. Check coverage.
  • ✓Salt Edge (Europe & UK): Bank aggregation provider for European and UK institutions. Check coverage.

Note: Bank credentials will never be stored on our servers. They are handled directly by the aggregation providers and exchanged for secure tokens.

Technical Architecture

A deep dive into how Porcfolio works under the hood.

Data Model & Persistence

Porcfolio follows a Local-First architecture. The app remains fully functional without an internet connection.

  • Local Storage:

    We use Drift (an abstraction over SQLite) for persistent on-device storage. This ensures instant load times and offline capability.

  • Synchronization:

    When online, the app syncs with Supabase PostgreSQL. We use a custom sync engine that handles conflict resolution (typically Last-Write-Wins) to keep devices in sync.

Security & Privacy

Security is our top priority. We employ multiple layers of protection:

Row Level Security (RLS)

Database access is strictly controlled via PostgreSQL RLS policies. Users can strictly access only their own data. Even a compromised application server cannot bypass these database-level checks.

Encryption

Sensitive data (like bank connection tokens) is encrypted at rest using AES-256. All data in transit is encrypted via TLS 1.3.

Data Storage Locations

  • Local Device: All financial data (transactions, accounts, balances) is stored in a secure SQLite database on your device.
  • Cloud (Optional): If you enable sync, an encrypted copy of your data is stored in our Supabase PostgreSQL database.
  • Bank Credentials: For the planned bank-sync feature, credentials will never be stored by us. They will be securely handled by Plaid or Salt Edge, and we will only store read-only access tokens.
  • Payment Info: Processed and stored by Stripe/RevenueCat. We do not store credit card details.