Wealthfolio App is a Beautiful and Boring Investment Tracker, with Local Data Storage. No Subscriptions, No Cloud.
Visit the app website at Wealthfolio App.
- π Portfolio Tracking - Track your investments across multiple accounts and asset types
- π Performance Analytics - Detailed performance metrics and historical analysis
- π° Activity Management - Import and manage all your trading activities
- π― Goal Planning - Set and track financial goals with allocation management
- π Local Data - All data stored locally with no cloud dependencies
- π§© Extensible - Powerful addon system for custom functionality
- π Multi-Currency - Support for multiple currencies with exchange rate management
- π± Cross-Platform - Available on Windows, macOS, and Linux
Wealthfolio features a powerful addon system that allows developers to extend functionality:
- π Easy Development - TypeScript SDK with full type safety and hot reload
- π Secure - Comprehensive permission system with user consent
- β‘ High Performance - Optimized for speed with minimal overhead
- π¨ UI Integration - Add custom pages, navigation items, and components
- π‘ Real-time Events - Listen to portfolio updates, market sync, and user actions
- ποΈ Full Data Access - Access to accounts, holdings, activities, and market data
- π Secrets Management - Secure storage for API keys and sensitive data
Get started building addons: Addon Developer Guide
Documentation for all Activity types, including the required form fields, is available in docs/activities/activity-types.md.
See ROADMAP.md.
- Activity Types - Complete guide to all supported activity types and their required fields
- Roadmap - Future plans and development roadmap
- Addon Documentation Hub - Main entry point for addon development
- Developer Guide - Comprehensive guide from setup to advanced patterns
- API Reference - Complete API documentation with examples
- Permission System - Security and permission system guide
- Examples & Tutorials - Practical examples and step-by-step tutorials
- π Get Started with Addons
- π Security Best Practices
- π‘ Example Addons - Browse sample addons in the repository
- π οΈ Development Tools - CLI tools for addon development
Ensure you have the following installed on your machine:
-
Clone the repository:
git clone https://github.com/afadil/wealthfolio.git cd wealthfolio
-
Install dependencies using pnpm:
pnpm install
-
Run in Development Mode:
Build and run the desktop application using Tauri:
pnpm tauri dev
- Build for Production:
Build the application for production:
pnpm tauri build
For a consistent development environment across all platforms, you can use the provided DevContainer configuration. This method requires fewer manual setup steps and provides an isolated environment with all necessary dependencies.
- Docker
- Visual Studio Code
- Remote - Containers VS Code extension
- Pre-configured Tauri development environment
- X11 virtual display with VNC access (port 5900)
- Complete Rust development setup
- GPU support (via Docker's --gpus=all flag)
- Persistent data and build caches
- Essential VS Code extensions pre-installed
-
Clone the repository (if you haven't already):
git clone https://github.com/afadil/wealthfolio.git cd wealthfolio
-
Open in VS Code:
- Open VS Code
- Go to File > Open Folder
- Select the wealthfolio directory
-
Launch DevContainer:
- Press
F1
orCtrl+Shift+P
- Type "Remote-Containers: Reopen in Container"
- Press Enter
- Press
-
Wait for container build:
- VS Code will build and configure the development container
- This may take a few minutes on first run
-
Start Development:
- Once the container is ready, you can start development
- All necessary tools and dependencies will be available
Wealthfolio supports a powerful addon ecosystem that allows developers to extend functionality with custom features.
-
Create a new addon:
npx @wealthfolio/addon-dev-tools create my-addon cd my-addon npm install
-
Start development server:
npm run dev:server
-
Start Wealthfolio in development mode (in another terminal):
pnpm tauri dev
Your addon will be automatically discovered and loaded with hot reload support!
- π¨ UI Integration: Add custom pages and navigation items
- π Data Access: Full access to portfolio, accounts, and market data
- π‘ Real-time Events: React to portfolio updates and user actions
- π Secure Storage: Store API keys and sensitive data securely
- β‘ Hot Reload: Seamless development experience
- π Permission System: Transparent security with user consent
Check out the addons/ directory for sample addons including:
- Goal Progress Tracker: Visual goal tracking with calendar like interface
- More examples in the documentation
- Complete Developer Guide - Everything you need to know
- API Reference - Full API documentation
- Permission System - Security and permissions guide
- Examples & Tutorials - Step-by-step tutorials
- React: JavaScript library for building user interfaces.
- React Router: Declarative routing for React.
- Tailwind CSS: Utility-first CSS framework for styling.
- Radix UI/Shadcn: Accessible UI components.
- Recharts: Charting library built with React.
- React Query: Data-fetching library for React.
- Zod: TypeScript-first schema declaration and validation library.
- Tauri: Framework for building tiny, secure, and fast desktop applications.
- Rust: Systems programming language for core backend functionality.
- SQLite: Embedded database for local data storage.
- Diesel: Safe, extensible ORM and query builder for Rust.
- @wealthfolio/addon-sdk: TypeScript SDK for addon development with full type safety.
- @wealthfolio/addon-dev-tools: CLI tools and development server for hot reload.
- @wealthfolio/ui: Shared UI component library for consistent styling.
- Vite: Next-generation frontend tooling.
- TypeScript: Typed superset of JavaScript.
- ESLint: Pluggable linting utility for JavaScript and JSX.
- Prettier: Code formatter.
- pnpm: Fast, disk space efficient package manager.
- Turborepo: High-performance build system for JavaScript and TypeScript codebases.
wealthfolio/
βββ src/ # Main source code for the React application
β βββ addons/ # Addon system core functionality
β βββ components/ # React components
β βββ pages/ # Application pages and routes
β βββ hooks/ # Custom React hooks
β βββ lib/ # Utility libraries and helpers
βββ src-core/ # Core backend functionality (Rust)
βββ src-tauri/ # Tauri-specific code for desktop app functionality
βββ addons/ # Example and sample addons
β βββ goal-progress-tracker/ # Goal Progress tracker addon example
βββ packages/ # Shared packages and tools
β βββ addon-sdk/ # Addon SDK for developers
β βββ addon-dev-tools/ # Development tools and CLI
β βββ ui/ # Shared UI components library
βββ docs/ # Documentation
β βββ addons/ # Addon development documentation
β βββ activities/ # Activity types documentation
βββ public/ # Public assets
βββ db/ # Database files and migrations
βββ LICENSE # License file
βββ README.md # Project documentation
βββ ROADMAP.md # Future plans and roadmap
βββ components.json # Component configuration
βββ package.json # Node.js dependencies and scripts
βββ pnpm-lock.yaml # Lock file for pnpm
βββ postcss.config.js # PostCSS configuration
βββ tailwind.config.js # Tailwind CSS configuration
βββ tsconfig.json # TypeScript configuration
βββ vite.config.ts # Vite build tool configuration
All your financial data is stored locally using SQLite database with no cloud dependencies:
- Portfolio holdings and performance data
- Trading activities and transaction history
- Account information and settings
- Goals and contribution limits
API credentials are securely stored using the operating system keyring through the keyring
crate:
- Core App: Use
set_secret
andget_secret
commands for external services - Addons: Use the Secrets API (
ctx.api.secrets
) for addon-specific sensitive data - No Disk Storage: Keys never written to disk or configuration files
Addons operate under a comprehensive permission system:
- Automatic code analysis during installation
- User consent required for data access
- Risk-based security warnings
- Transparent permission declarations
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch
). - Make your changes.
- Commit your changes (
git commit -m 'Add some feature'
). - Push to the branch (
git push origin feature-branch
). - Open a pull request.
This project is licensed under the AGPL-3.0 license. See the LICENSE
file for details.
Enjoy managing your wealth with Wealthfolio! π