Skip to content

Repository files navigation

SatSight - Bitcoin Standard Personal Finance

SatSight Logo

View your entire financial life in Satoshis.
A premium personal finance app for people who want to live on a Bitcoin standard.


Overview

SatSight is a Monarch Money / Mint-inspired personal finance app that lets you track all your expenses, budgets, and net worth denominated in Satoshis (sats). Connect your bank accounts via Plaid, visualize your spending with beautiful charts, and toggle seamlessly between Sats and USD views.

Key Features

  • Sats-First View: Default to viewing everything in Satoshis with real-time BTC price conversion
  • Bank Account Linking: Connect checking, savings, credit cards, and investments via Plaid
  • Beautiful Charts: Spending breakdowns, net worth trends, and category analysis
  • Budget Tracking: Set and track budgets by category with visual progress bars
  • Dark/Light Modes: Premium Bitcoin-orange themed UI with both modes
  • Cross-Platform: React web app + React Native mobile app

Tech Stack

Layer Technology
Mobile React Native + Expo
Web React + Vite + TailwindCSS
Backend Supabase (PostgreSQL, Auth, Edge Functions)
Charts Recharts (web) / Victory Native (mobile)
State Zustand + React Query
Bank Linking Plaid
Payments Stripe
BTC Price CoinGecko API

Project Structure

satsight/
├── apps/
│   ├── mobile/          # React Native (Expo) app
│   └── web/             # React + Vite web app
├── packages/
│   └── shared/          # Shared types, utils, stores, API
├── supabase/
│   ├── migrations/      # Database schema
│   └── functions/       # Edge functions (Plaid webhooks, etc.)
└── package.json         # Monorepo root

Getting Started

Prerequisites

  • Node.js 18+
  • pnpm 8+
  • Supabase CLI (optional, for local development)
  • Expo CLI (for mobile development)

Installation

  1. Clone the repository

    git clone <repo-url>
    cd satsight
  2. Install dependencies

    pnpm install
  3. Set up environment variables

    Create .env files in apps/web/ and configure:

    VITE_SUPABASE_URL=your_supabase_url
    VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
    VITE_PLAID_CLIENT_ID=your_plaid_client_id
    VITE_STRIPE_PUBLISHABLE_KEY=your_stripe_key
  4. Set up Supabase

    • Create a new Supabase project at supabase.com
    • Run the migration in supabase/migrations/00001_initial_schema.sql
    • Enable Google OAuth in Authentication settings (optional)
  5. Run the web app

    pnpm dev:web

    Open http://localhost:3000

  6. Run the mobile app

    pnpm dev:mobile

    Scan the QR code with Expo Go

Development

Commands

Command Description
pnpm dev:web Start web development server
pnpm dev:mobile Start Expo development server
pnpm build:web Build web app for production
pnpm lint Run ESLint across all packages
pnpm typecheck Run TypeScript checks

Adding New Features

  1. Shared types and utilities go in packages/shared/
  2. Web-specific code goes in apps/web/src/
  3. Mobile-specific code goes in apps/mobile/src/ or apps/mobile/app/

Design System

Colors

  • Primary: Bitcoin Orange #F7931A
  • Background (Dark): #0A0A0A
  • Cards (Dark): #171717
  • Success: #22C55E
  • Error: #EF4444

Typography

  • Display: SF Pro Display / Inter
  • Body: System fonts with fallbacks

API Integrations

Plaid

Used for bank account aggregation. Requires:

  • Plaid API keys (Development or Production)
  • Webhook endpoint for transaction updates

Stripe

Used for subscription billing. Requires:

  • Stripe publishable key (client)
  • Stripe secret key (server)
  • Webhook secret for subscription events

CoinGecko

Free API for Bitcoin price data. No API key required for basic usage.

Roadmap

Phase 1 (MVP) ✅

  • Monorepo setup
  • Authentication (Supabase)
  • Dashboard with mock data
  • Sats/USD currency toggle
  • Beautiful charts
  • Mobile app structure

Phase 2 (In Progress)

  • Plaid integration
  • Real transaction syncing
  • Stripe subscription billing
  • Budget creation/editing

Phase 3 (Future)

  • AR Price Scanner (camera mode)
  • Investment tracking
  • Goals and savings targets
  • AI-powered insights
  • Export/Reports

Contributing

Contributions are welcome! Please read our contributing guidelines before submitting PRs.

License

MIT License - see LICENSE file for details.


Built with ₿ by Bitcoiners, for Bitcoiners.

About

Satellite tracking application

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages