nmemmertandClaude Sonnet 4.6 8814423fa6 Fix modal overlays — replace deprecated Tailwind v4 bg-opacity syntax
All 11 modal backdrop divs used `bg-black bg-opacity-50` which Tailwind v4
dropped, causing solid-black overlays. Replaced with `bg-black/50` across
AuthModal, AccountManagement, EnvelopeCreate, EnvelopeEdit, GetPaid,
SetupWizard, TransactionEdit, and page.tsx.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-14 08:08:26 -04:00
2026-01-13 15:47:32 -05:00
2026-01-13 15:47:32 -05:00
2025-10-24 10:23:12 -04:00
2026-01-13 15:47:32 -05:00
2025-10-24 10:23:12 -04:00

Capsule by NeCloud

A modern, privacy-focused envelope budgeting application built with Next.js, TypeScript, and Tailwind CSS. Capsule helps you manage your finances using the traditional envelope budgeting method in a beautiful, digital format with complete control over your data.

🔒 Privacy-First Design: All your financial data is stored locally on your server in encrypted files. No cloud services, no data sharing, complete control over your information.

Features

🎨 Customizable Dashboard

  • Drag & Drop Sections: Rearrange dashboard sections exactly how you want them
  • Show/Hide Controls: Toggle visibility of dashboard components
  • 5 Summary Cards: Quick view of Assets, Debt, Balance, Envelopes, and Transactions
  • Analytics Charts: Income vs Expenses, Budget Alerts, Assets vs Debt breakdown
  • Quick Actions: One-click access to common tasks
  • Budget Progress: Visual tracking of monthly spending against budget

🔐 Security & Privacy

  • Secure Local Storage: File-based storage with AES-GCM encryption
  • User Authentication: Secure sign-up and login with password hashing
  • No Cloud Dependencies: Your data never leaves your server

💰 Smart Money Management

  • Envelope Budgeting: Create and manage budget envelopes for different spending categories
  • Multiple Account Support: Track checking, savings, credit cards, mortgages, loans, and investments
  • Account Normalization: Liabilities (credit cards, loans) automatically display as negative balances
  • Net Worth Tracking: Automatic calculation of assets minus debt
  • Get Paid Feature: Automatically distribute income across envelopes

📊 Transaction Management

  • Multiple Input Methods:
    • Manual Entry: Add individual transactions with full details
    • File Import: Import from bank exports (CSV, OFX, QFX, QBO)
    • Get Paid: Record income with automatic envelope distribution
  • Transaction Editing: Full edit capabilities with real-time updates
  • Recent History: Quick view of latest transactions
  • Smart Filtering: View transactions by account, envelope, or date range

📈 Analytics & Insights

  • Income vs Expenses: Monthly income and spending comparison
  • Budget Alerts: Notifications for envelopes over 80% or overspent
  • Daily Spending Chart: 7-day spending visualization
  • Envelope Progress: Color-coded spending progress for each category
  • Account Balances: Visual breakdown of all account balances

🎨 Beautiful Design

  • Capsule Branding: Modern cloud-themed design with professional color palette
  • Responsive Layout: Seamless experience on desktop, tablet, and mobile
  • Customizable Colors: Choose colors for envelopes and visual organization
  • Interactive Elements: Clickable cards, hover effects, and smooth transitions
  • Data Export: Export to CSV or JSON formats for backup or analysis

Brand Colors

  • Primary Blue: #1E73BE - Main brand color
  • Finance Green: #28A745 - Positive balances and income
  • Cloud Blue: #A7D8F8 - Secondary accents
  • Dark Navy: #0F2C4C - Text and headers
  • Neutral Gray: #F4F4F4 - Backgrounds

Getting Started

Option 1: Clone and Deploy (works for private/public repos)

git clone https://github.com/nmemmert/budget.git capsule-budget
cd capsule-budget
./deploy.sh

Option 2: One-Line Install (public repos only)

curl -fsSL https://raw.githubusercontent.com/nmemmert/budget/master/install.sh | bash

Access at: http://localhost:7654 or http://your-device-ip:7654

Rocky Linux + Cockpit + Podman

sudo dnf install -y podman podman-compose cockpit cockpit-podman git
sudo systemctl enable --now cockpit.socket

git clone https://github.com/nmemmert/budget.git capsule-budget
cd capsule-budget
./deploy.sh

Manage the container in Cockpit at https://your-server:9090 under Podman Containers.

Manual Installation (Development)

If you want to run from source:

  1. Clone the repository:
git clone https://github.com/nmemmert/budget.git
cd budget
  1. Install dependencies:
npm install
  1. Run the development server:
npm run dev
  1. Open http://localhost:7654 in your browser

First Time Setup

  1. Create Account: Click "Sign Up" to create your secure account
  2. Setup Wizard: Complete the guided setup:
    • Add your first account (checking, savings, etc.)
    • Create initial budget envelopes with default budgets
    • Configure income allocation rules
  3. Customize Dashboard: Click the ⚙️ Customize button to:
    • Drag and drop sections to rearrange
    • Show or hide dashboard components
    • Create your perfect financial overview

Dashboard Customization

Available Sections

  1. Summary Cards - Quick overview of total assets, debt, balance, envelope count, and transaction count
  2. Analytics Charts - Six detailed charts including income/expenses, alerts, and spending patterns
  3. Budget Progress - Visual progress bar showing monthly budget utilization
  4. Quick Actions - Fast access buttons for common tasks
  5. Recent Transactions - Latest 5 transactions with edit/delete options

How to Customize

  • Click ⚙️ Customize at the top of the dashboard
  • Drag & Drop: Click and hold the ⋮⋮ handle to drag sections
  • Up/Down Arrows: Use ▲ ▼ buttons for precise positioning
  • Toggle Visibility: Check/uncheck boxes to show or hide sections
  • Your preferences are automatically saved

Storage System

This application uses a local file-based storage system instead of cloud databases:

  • All user data stored in /data directory as encrypted JSON files
  • User credentials hashed with SHA-256
  • Budget data encrypted with AES-GCM encryption
  • Complete data portability and privacy

For detailed information about the storage system, see FILE_STORAGE.md.

Available Scripts

  • npm run dev - Start the development server on port 7654
  • npm run build - Build the project for production
  • npm run start - Start the production server
  • npm run lint - Run ESLint for code quality checks

Project Structure

src/
├── app/
│   ├── layout.tsx           # Root layout with Capsule branding
│   ├── page.tsx             # Main dashboard with customization
│   ├── globals.css          # Global styles with brand colors
│   └── api/
│       ├── auth/            # Authentication endpoints
│       └── data/            # Data persistence endpoints
├── components/
│   ├── AccountManagement.tsx    # Account CRUD operations
│   ├── DashboardCharts.tsx      # Analytics visualizations
│   ├── DataInput.tsx            # Transaction entry forms
│   ├── EnvelopeCreate.tsx       # Envelope creation
│   ├── EnvelopeEdit.tsx         # Envelope editing
│   ├── GetPaid.tsx              # Income distribution
│   ├── SetupWizard.tsx          # First-time setup flow
│   ├── TransactionEdit.tsx      # Transaction editing
│   └── ...                      # Additional components
├── lib/
│   ├── authService.ts       # Authentication logic
│   ├── dataService.ts       # Data persistence layer
│   ├── fileStorage.ts       # Encrypted file storage
│   └── crypto.ts            # Encryption utilities
data/                         # User data storage (gitignored)
public/
├── capsule-icon.svg         # App favicon
└── images/
    └── capsule-logo.svg     # Brand logo

Technologies Used

  • Next.js 16 - React framework with App Router and Turbopack
  • TypeScript - Type-safe JavaScript
  • Tailwind CSS 4 - Utility-first CSS framework with custom properties
  • React 19 - UI library with modern hooks
  • Node.js Crypto - AES-GCM encryption and SHA-256 password hashing
  • ESLint - Code quality and consistency

Key Features in Detail

Envelope Budgeting System

The envelope method divides your income into categories (envelopes), each with a budget allocation. When you spend money, it's deducted from the appropriate envelope, helping you stay within your budget limits.

Automatic Income Distribution

The "Get Paid" feature automatically splits your paycheck across envelopes based on percentages you set during setup. For example:

  • Rent: 40%
  • Groceries: 15%
  • Savings: 20%
  • etc.

Visual Progress Tracking

Each envelope shows:

  • Allocated amount (your budget)
  • Spent amount (what you've used)
  • Remaining balance
  • Progress bar with color coding (green → yellow → red as you approach limits)

Smart Alerts

Get notified when:

  • An envelope reaches 80% of its budget
  • An envelope is overspent
  • Your daily spending exceeds normal patterns

How to Use

Dashboard Navigation

The dashboard provides a complete overview of your finances:

  • Summary Cards: Click any card to navigate to the detailed view

    • Assets → View all asset accounts
    • Debt → View all liability accounts
    • Balance → View all accounts
    • Envelopes → Manage budget envelopes
    • Transactions → View transaction history
  • Analytics: Monitor your financial health with real-time charts

    • Income vs Expenses (current month)
    • Budget Alerts (overspent or near-limit envelopes)
    • Assets vs Debt breakdown with Net Worth
    • Envelope spending progress
    • Account balance distribution
    • Daily spending trends (last 7 days)

Managing Money

  1. Record Income:

    • Click "💰 Get Paid" button
    • Enter amount and select deposit account
    • Funds are automatically distributed to envelopes based on allocation percentages
  2. Track Expenses:

    • Use "Manual Entry" for individual transactions
    • Import bank files for bulk transaction entry
    • Assign each expense to an envelope for tracking
  3. Monitor Budgets:

    • View envelope spending progress in real-time
    • Get alerts when approaching or exceeding budget limits
    • Track monthly spending against allocated amounts

Account Types

Capsule supports multiple account types with automatic balance normalization:

  • Assets (positive balances):

    • Checking accounts
    • Savings accounts
    • Investment accounts
  • Liabilities (negative balances):

    • Credit cards
    • Mortgages
    • Loans

Your Net Worth is automatically calculated as: Total Assets - Total Debt

Data Import

Supported File Formats

  • CSV: Comma-separated values with columns: Date, Amount, Description, Category (optional)
  • OFX/QFX: Standard bank export formats from most financial institutions
  • QBO: QuickBooks Online format
  • PDF: Coming soon (statement parsing)

CSV Format Example

Date,Amount,Description,Category
2024-01-15,-25.50,Weekly groceries,Groceries
2024-01-16,-12.00,Gas station,Transportation
2024-01-17,1500.00,Salary deposit,Income

Advanced Features

Transaction Editing

  • Click the edit icon (pencil) next to any transaction to modify its details
  • Update amount, description, date, and envelope assignment
  • Changes automatically update envelope spending calculations

Envelope Management

  • Click "Add Envelope" to create new budget categories
  • Choose from multiple colors for visual organization
  • Set custom budget allocations for each envelope

Data Export

  • Export all transactions and envelopes to CSV for spreadsheet analysis
  • Export to JSON format for data backup or integration
  • Includes complete transaction history and envelope details

Deployment

Capsule is designed for self-hosted deployment on Rocky Linux, ZimaOS, and similar platforms.

Quick Deploy:

./deploy.sh

See DEPLOYMENT.md for detailed Podman/Docker deployment instructions.

Features:

  • Podman/Docker containerization for easy deployment
  • Persistent data storage in ./data directory
  • Health checks and auto-restart
  • Encrypted local storage (no cloud required)

Access:

  • Default port: 7654
  • Local: http://localhost:7654
  • Network: http://your-device-ip:7654

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Run tests and linting
  5. Submit a pull request

License

This project is licensed under the MIT License.

S
Description
No description provided
Readme
2.2 MiB
0 Stars 1 Watchers 0 Forks
Languages
TypeScript 96.3%
Shell 3%
CSS 0.4%
JavaScript 0.2%
Dockerfile 0.1%