Skip to content
/ pachira Public

(🚧 WIP) Simple local-first app for managing personal finances

License

Notifications You must be signed in to change notification settings

9aia/pachira

Repository files navigation

Pachira Finance Tracker

A minimal offline-first finance tracking app built with Nuxt 4, designed for static deployment to Cloudflare Pages.

Features

  • Subscriptions Management: Track recurring subscriptions with flexible billing intervals
  • Variable Charges: Record one-time or yearly expenses
  • CSV Import/Export: Import data from CSV files (supports Portuguese and English headers)
  • JSON Export: Full backup of all data
  • Offline-first: All data stored locally in IndexedDB
  • Responsive Design: Works on mobile, tablet, and desktop

Tech Stack

  • Framework: Nuxt 4 (SSG mode)
  • UI: Nuxt UI + Tailwind v4
  • Database: Dexie (IndexedDB)
  • Forms: TanStack Form + Zod validation
  • Tables: TanStack Table
  • CSV: PapaParse
  • Deployment: Cloudflare Pages (static)

Development

Prerequisites

  • Node.js 20+ or Bun
  • pnpm 10+

Setup

# Install dependencies
pnpm install

# Start development server
pnpm dev

# Build for production
pnpm generate

# Preview production build
pnpm preview

Deployment to Cloudflare Pages

Via GitHub Actions (Recommended)

  1. Push to main branch
  2. GitHub Actions will automatically build and deploy
  3. Set these secrets in your GitHub repository:
    • CLOUDFLARE_API_TOKEN: Your Cloudflare API token
    • CLOUDFLARE_ACCOUNT_ID: Your Cloudflare account ID

Manual Deployment

# Generate static site
pnpm generate

# Deploy to Cloudflare Pages (requires wrangler CLI)
npx wrangler pages deploy .output/public --project-name=pachira

Cloudflare Pages Configuration

  • Build command: pnpm generate
  • Build output directory: .output/public
  • Node version: 20+

Data Storage

All data is stored locally in your browser's IndexedDB. Your data:

  • Never leaves your device
  • Persists across sessions
  • Can be exported at any time
  • Is automatically backed up when you export

Import/Export

Import

  • Supports CSV files
  • Headers can be in English or Portuguese
  • Always adds data to the database (no merge/replace)
  • Edit imported data in the app

Export

  • Export all data to CSV or JSON
  • CSV format: Good for spreadsheet analysis
  • JSON format: Full backup of all data

Data Models

Subscription

  • Name, Person, Price, Half Price
  • Billing Interval (in months)
  • Start Date, End Date (optional)
  • Active/Inactive status
  • Calculated monthly costs

Variable Charge

  • Name, Person, Cost, Half Cost
  • Year, Month (optional - null = yearly charge)

Future Enhancements

  • Period-based views (week/month/year)
  • Charts and visualizations
  • PWA features (service worker, installable)
  • Cloud sync
  • Advanced filtering and search
  • Comparison features

License

MIT

About

(🚧 WIP) Simple local-first app for managing personal finances

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published