This is a large, actively maintained Ruby on Rails 8.1 monolith serving as a self-hostable personal finance management platform (a community fork of Maybe Finance). Its architecture is a classic MVC monolith with a Hotwired Turbo/Stimulus frontend, a Sidekiq background job layer, and a REST API consumed by Tauri desktop and Flutter mobile clients. The system is built around a PostgreSQL database with extensive use of UUIDs, JSONB, and pgvector for AI features. The core functionality revolves around aggregating financial data from over 20 external providers (Plaid, SimpleFin, Coinbase, etc.) using a sophisticated, extensible adapter pattern. It provides comprehensive budgeting, investment tracking, net worth calculations, bill management, and a powerful rule engine for automating transaction categorization and enrichment. A standout feature is its integrated AI assistant, which leverages OpenAI and Anthropic models for natural language queries, auto-categorization, and financial insights, backed by a structured evaluation framework. The codebase demonstrates exceptionally high craftsmanship in several areas. The Provider adapter pattern, Rule Engine, and AI Assistant framework are all cleanly abstracted, loosely coupled, and highly reusable. The custom Design System (DS:: components) provides a consistent, accessible UI toolkit. The balance calculation engine and financial modeling code show deep domain expertise. While the sheer number of provider integrations introduces some duplication, the core architectural patterns are genuinely exceptional and worth studying. The project is actively maintained with frequent commits, extensive CI/CD, and a large community. Technical drift is low, as the codebase actively migrates to modern libraries (e.g., GoodJob to Sidekiq) and adapts to provider API changes. The primary risks are the operational complexity of managing 20+ provider integrations and the dependency on external LLM APIs for AI features.
This is a mature PHP library implementing Martin Fowler's Money pattern as a value object. It provides a `Money` class that stores amounts as numeric strings in the smallest currency unit (e.g., cents), ensuring precision and avoiding floating-point errors. The library includes a rich set of features: arithmetic operations (add, subtract, multiply, divide, mod), comparison, allocation (by ratios or to N targets), aggregation (min, max, avg, sum), formatting (decimal, Intl, Bitcoin), parsing (decimal, Intl, Bitcoin), currency conversion via exchange rate providers (FixedExchange, Swap, Exchanger, IndirectExchange), and a `Teller` facade for migrating legacy float-based code. It supports multiple currency repositories (ISO 4217, Bitcoin, crypto-currencies from Binance) and offers pluggable calculators (BCMath required, GMP optional). The architecture is interface-driven with clean separation of concerns, extensive test coverage, and static analysis integration. It is not a data research project; it is a pure application library for monetary value handling.
VeighNa (formerly vnpy) is a mature, open-source quantitative trading framework written in Python. It provides a complete ecosystem for developing, backtesting, and executing algorithmic trading strategies across multiple asset classes including Chinese futures, stocks, options, and global markets via interfaces like CTP, XTP, Interactive Brokers, and more. The system is built on an event-driven architecture with a central MainEngine that orchestrates gateways (exchange connections), apps (strategy modules), and engines (services such as order management, logging, email, and WeChat notifications). It offers both a full-featured PySide6 desktop GUI and headless/scriptable operation, making it suitable for both manual and automated trading. The framework includes a dedicated alpha research module (vnpy.alpha) for factor-based strategy development, featuring built-in factor datasets (Alpha101, Alpha158), machine learning models (Lasso, LightGBM, MLP), and a backtesting engine. This gives the repository a hybrid character: primarily an application framework for trading, but with significant data/research capabilities for quantitative analysis. The codebase demonstrates strong engineering practices with plugin-based design, abstract interfaces for databases and datafeeds, and reusable utility classes like BarGenerator, ArrayManager, and OffsetConverter. However, some modules are monolithic and tightly coupled, and the large ecosystem of external gateway packages introduces version compatibility risks.
Hyperswitch is a composable open-source payments infrastructure built in Rust that provides a modular platform for processing payments through multiple connectors. The system handles the complete payment lifecycle including authorization, capture, refunds, and dispute management, while offering features like intelligent routing, 3DS authentication, revenue recovery, and analytics. Built with a microservices architecture using Actix-web, it features a plugin-based connector system, event-driven design with Redis/Kafka, and comprehensive SDK support for web and mobile platforms. The codebase demonstrates strong engineering practices with typesafe ID generation, robust encryption utilities, and well-abstracted interfaces that promote reusability and maintainability.
global-stock-data is a comprehensive financial data pipeline designed for AI coding assistants to access US and Hong Kong market data. It implements a 13-layer architecture that fetches data from 11 diverse sources including exchanges (CBOE), regulatory bodies (SEC, FINRA), financial data providers (Eastmoney, Yahoo Finance), and macroeconomic sources (Treasury, CFTC). The system normalizes data from various formats (JSON, CSV, text) into consistent schemas for real-time quotes, historical prices, technical indicators, fundamentals, options data, SEC filings, short volume, and macroeconomic indicators. Unlike a traditional application, it functions as a reusable data toolkit where each layer can be independently accessed to solve specific financial data acquisition problems.
This is a React Native SDK (v13) that wraps Plaid's native LinkKit SDK (iOS) and sdk-core (Android) using Expo Modules. It provides a session-based API for integrating Plaid Link flows—standard account linking, identity verification, Layer (phone-based), headless (no UI), and embedded search—as well as FinanceKit sync for Apple Card data on iOS. The architecture is a TypeScript layer with native implementations in Swift and Kotlin. Key entry points are async session creator functions (`createPlaidLinkSession`, `createPlaidIdentityVerificationSession`, etc.) that return session objects with `open()`/`start()` methods, and a React Native component `PlaidEmbeddedSearchView`. The SDK does not handle link token generation; developers must obtain tokens from their own backend. It supports both Expo managed (development builds) and bare React Native workflows, with CI testing on Expo 52+ and React Native 0.76+. The codebase is well-structured with comprehensive TypeScript types, contract tests that validate native-to-JS payload keys, version sync tests, and migration diagnostics that provide helpful errors for removed v12 APIs.
Fincept Terminal is a native C++20/Qt6 desktop financial intelligence platform, open-sourced under AGPL-3.0, with a proprietary Enterprise edition. It functions as a comprehensive trading, research, and analytics terminal supporting equities, options, futures, crypto, forex, and prediction markets. The architecture is a modular monolith: a single Qt Widgets process with embedded Python 3.11 for scripting, SQLite for persistence, and a DataHub pub/sub system for real-time data flows. Key entry points are the main window (WindowFrame) and screen router (DockScreenRouter), with over 100 data connectors, 20+ broker integrations, backtesting engines (QuantConnect/LEAN compatibility), AI agents (LangGraph/Agno-based), and extensive analytics (corporate finance, portfolio optimization, options pricing, economic indicators). The repository is actively maintained with a monthly release cycle, but contains a very large codebase with some boilerplate and incomplete features, making it powerful but complex to reuse partially.
Qlib is an open-source, AI-oriented quantitative investment platform developed by Microsoft. It covers the full pipeline for quantitative research and trading: data ingestion and feature engineering (Alpha158, Alpha360, high-frequency), model training (traditional ML like LightGBM/XGBoost, deep learning in PyTorch including LSTM, GRU, Transformer, GATs, and reinforcement learning), backtesting with realistic costs and slippage, portfolio optimization, and online serving for production-like deployment. The platform is highly modular and config-driven, with a core library (qlib) and a separate contrib layer for community extensions. It includes a CLI (qrun) for running full workflows from YAML configs, extensive experiment tracking via MLflow, and a rich set of evaluation metrics. While primarily a library/application, it also functions as a research benchmark suite with many example models and data collectors for global markets. The codebase is active and well-maintained, though some components (e.g., TFT model, older RL code) show signs of technical drift due to dependency version locks and deprecated patterns.
CCXT is a cryptocurrency exchange trading library that provides a unified API for over 100 exchanges across 7 programming languages (TypeScript/JavaScript, Python, PHP, C#, Go, Java). The core is written in TypeScript from which all other language bindings are transpiled. It implements both REST and WebSocket APIs for market data, trading, and account management. The library normalizes exchange-specific data formats into a common schema, enabling cross-exchange arbitrage and analytics. Key architectural patterns include a base Exchange class with exchange-specific subclasses, a pro/ subdirectory for WebSocket-enabled exchanges, static_dependencies/ for vendored third-party code (ethers, starknet, bip39, etc.), and an extensive test suite with both static and live tests. The repository includes a playground (Next.js web IDE), CLI tool, documentation site (Fumadocs), CI/CD for all languages, and Docker development environment.
This repository is a comprehensive .NET SDK for the Alpaca Markets API, providing both REST and WebSocket clients for algorithmic trading, market data retrieval (stocks, crypto, options), and account management. The architecture is a layered client library with core (`Alpaca.Markets`) and extensions (`Alpaca.Markets.Extensions`) NuGet packages, targeting multiple .NET frameworks (netstandard2.0/2.1, net462, net8.0, net10.0). Entry points include configuration classes that instantiate typed clients (e.g., `IAlpacaTradingClient`, `IAlpacaDataClient`, `IAlpacaCryptoDataClient`, `IAlpacaOptionsDataClient`) via environment-specific base URLs (live, paper). The library supports advanced order types (bracket, OCO, trailing stop), real-time streaming with automatic reconnection, and efficient pagination using `IAsyncEnumerable`. The codebase exhibits high craftsmanship with clean separation of interfaces, messages, and parameters; fluent builder patterns for orders; and robust testing infrastructure using mocks. The extensions package adds DI integration (`AddAlpaca*Client`), Polly-based retry, and reusable subscription management. While the SDK is actively maintained and well-tested, it relies on Newtonsoft.Json (rather than System.Text.Json) and maintains compatibility with older frameworks, adding complexity. A minor risk is dependency on internal Alpaca API endpoints that could change, but the library's design isolates these concerns.
Akaunting is a self-hosted accounting and invoicing platform for small businesses and freelancers. It manages invoices, bills, banking transactions, transfers, reconciliations, multi-currency, multi-tax, recurring documents, and financial reports. It includes a customer portal for invoice viewing and payment, and supports multi-company, multi-user with role-based permissions. The system is highly internationalized with 40+ language locales. The architecture is built on a custom PHP framework (Illuminate) that extends Laravel conventions. It uses an event-driven architecture with domain events, listeners, and a job queue for async processing. The frontend combines Blade templates, Vue.js components, and Livewire for interactivity. Multi-tenancy is achieved through company scoping via a global query scope. The system is extensible via a module system with an app store, and includes a CLI for maintenance tasks. Key entry points include the installation wizard (controllers under Install/), authentication flows, and core CRUD controllers for sales, purchases, banking, and settings. Data flows typically involve controllers dispatching jobs that emit events, which listeners handle to update related entities, send notifications, or trigger side effects. Reports use a filter/group/rows event system for extensibility. Import/export is handled via Excel with multi-sheet support. External dependencies include PHP 8.1+, Node 18-20, and a database (MariaDB, MySQL, PostgreSQL, SQLite). It uses Laravel Mix for asset compilation, integrates with payment gateways, email services, and error trackers (Sentry, Bugsnag), and relies on a module marketplace at api.akaunting.com.
Ghostfolio is an open-source wealth management application that enables individuals to track and analyze their personal investment portfolios. It supports multiple asset classes (stocks, ETFs, cryptocurrencies, bonds, real estate) and integrates with numerous financial data providers (Yahoo Finance, CoinGecko, Alpha Vantage, etc.) to automatically fetch market prices, historical data, and asset profiles. The system provides comprehensive portfolio performance calculations (ROAI, TWR, MWR), benchmark comparisons, dividend tracking, and a rule-based X-ray analysis for risk assessment (currency/asset class/regional cluster risk, emergency fund coverage, fee ratios). It also includes a FIRE calculator, watchlist, and import/export functionality for activities. The architecture follows a full-stack monorepo pattern using Nx, with an Angular 22 frontend (standalone components, Material Design, Chart.js) and a NestJS 11 backend (Prisma ORM with PostgreSQL, Redis caching, Bull queues for background data gathering). Authentication supports JWT, OAuth (Google, OIDC), API keys, and WebAuthn passkeys. The system is self-hostable via Docker Compose and includes a premium subscription tier managed through Stripe. The codebase is modular with shared libraries (`libs/common` for DTOs, interfaces, utilities; `libs/ui` for reusable Angular components) and a clear separation of concerns across API modules, services, and queue processors. Key highlights include a pluggable data provider abstraction, an abstract portfolio calculator with caching and retry logic, a comprehensive permission and scope system for fine-grained access control, and a rich UI component library with Storybook documentation. The project is actively maintained with frequent releases, extensive Prisma migrations, and a large test suite for portfolio calculations and import validation. While the codebase shows some technical drift (proliferation of environment variables, deprecated endpoints, and multiple data provider integrations), the overall engineering quality is strong, with well-structured modules and reusable patterns that could be extracted for other financial applications.
This repository is the official Mollie API client for Node.js (TypeScript), providing a typed SDK for integrating with the Mollie payment platform. It exposes a factory function `createMollieClient()` that returns an object with resource binders (e.g., `payments`, `orders`, `customers`, `refunds`, `settlements`), each offering CRUD operations and additional actions like cancellation or refunding. The architecture follows a clean layered design: resource-specific binders delegate to a shared `TransformingNetworkClient` that handles HTTP requests, response transformation, pagination, idempotency keys, retries, and throttling. Data models are separated into raw API interfaces and sealed helper-enriched types, with embedded/linked resource access abstracted through helper classes. The SDK supports both API key and OAuth authentication, callback-style and Promise-based APIs, and includes extensive test suites (unit, integration, and cross-runtime compatibility for Node, Bun, and Deno). The codebase is well-structured, uses modern TypeScript features, and includes a custom iteration API for paginated resources. Notable internal patterns include a generic Binder base class, parameter default injection, a throttling utility, and a rich set of type utilities (Maybe, Nullable, Seal, Xor).
EasyInvoicePDF is a free, open-source, browser-based invoice generator that creates PDF invoices with live preview, no sign-up required, and no ads. Built with Next.js (App Router), React 19, TypeScript, Tailwind CSS, and shadcn/ui, it runs entirely client-side for the public editor—invoice data stays in localStorage and is never uploaded to a server. The application supports 10 languages, 120+ currencies, two PDF templates (default and Stripe-inspired), QR codes, multi-page PDFs, and shareable compressed URLs. A private server-side API (Bearer token + Upstash rate-limited) handles monthly recurring invoice generation via Trigger.dev cron, uploading PDFs to Google Drive, emailing via Resend, and sending Telegram notifications. The codebase also includes extensive SEO landing pages, a changelog, a founder page, and comprehensive testing (Vitest unit tests, Playwright e2e with PDF screenshot baselines). Architecture: The app uses two root layouts—unprefixed English-only routes (/) and locale-prefixed routes (/[locale]) for i18n via next-intl. The main invoice form is a large client component with react-hook-form and Zod validation, debounced autosave, and template/language switching. PDF rendering uses @react-pdf/renderer on the client for live preview and on the server for automation. External dependencies include Upstash Redis (rate limiting, queue), Resend (email), Google Drive (archive), Telegram (notifications), Sentry (error tracking), Umami (analytics), and Trigger.dev (scheduled tasks). The repository also contains a rich ecosystem of agent skills (Vercel React best practices, composition patterns, SEO audit, etc.) used in development workflows. Key data flows: User fills form → state stored in localStorage and optionally shared via compressed URL → PDF preview rendered client-side via @react-pdf/renderer → download or share. For monthly automation: Trigger.dev cron triggers server-side PDF generation → upload to Google Drive → email via Resend → Telegram notification. The backend API also supports a preview endpoint for sample PDFs and a Telegram webhook for on-demand generation.
OpenBB is an open-source financial data platform that provides a unified, multi-interface access layer to over 20 data providers (FMP, FRED, CBOE, Yahoo Finance, Intrinio, etc.) through a modular provider-extension architecture. The core library (`openbb_core`) defines a standardized Fetcher pattern (transform_query -> extract_data -> transform_data), Pydantic-based standard models for equities, derivatives, fixed income, economics, and more, and a command routing system exposed via a Python SDK (OBBject), a REST API (FastAPI), a CLI (argparse translator), a desktop app (Tauri + React), and an MCP (Model Context Protocol) server for AI agents. The platform includes domain-specific extensions (equity, crypto, economy, quantitative, technical analysis, charting) and a cookiecutter template for scaffolding new providers or OBBject extensions. While the codebase is large and actively maintained, there is notable technical drift in the form of hardcoded API URLs, mixed sync/async extraction, deprecated endpoints, and code duplication across many provider implementations. The charting extension's plugin-based technical indicator system, the country/exchange validation utilities, and the LRU cache with TTL are high-craftsmanship, reusable components that demonstrate non-obvious software engineering skill.
PayKit is an open-source, embedded billing framework for TypeScript applications. It provides a core library (`paykitjs`) that handles subscription management, metered usage tracking, feature entitlements, and webhook processing – all backed by PostgreSQL and currently integrated exclusively with Stripe as the payment provider. The monorepo includes a CLI for project scaffolding and migration, a client SDK, a dashboard plugin (`@paykitjs/dash`), a documentation website (Next.js + Fumadocs), a demo application, and a webhook tunnel worker (Cloudflare Workers + Durable Objects). The architecture is modular: a core `createPayKit()` instance orchestrates services for customers, subscriptions, entitlements, products, and invoices, each following a service pattern with Drizzle ORM models. A plugin system allows custom endpoints, and a provider abstraction (currently only Stripe) handles payment operations. The codebase is well-structured with TypeScript end-to-end, extensive E2E testing against Stripe test clocks, and a clean separation of concerns. However, it is in alpha stage, has duplicated UI component libraries across apps, and is tightly coupled to Stripe – factors that limit immediate reuse without adaptation.
Morphir is a FINOS-hosted toolchain for capturing business logic as a language-agnostic Intermediate Representation (IR). It compiles source code (Elm, Gleam) into a typed IR, supports code generation for multiple backends (OpenAPI, Avro, Python, Rust), evaluates IR expressions, manages packages with TUF-signed metadata, and runs a conformance test kit (MCK) to verify IR adapter implementations. The architecture is a monorepo with a Rust CLI (`morphir`), a web UI server (JSON-RPC over WebSocket), a Docusaurus documentation website, and submodules for language backends. Key entry points include the CLI binary (`crates/morphir/src/main.rs`), the MCK engine (`crates/morphir-mck/src/lib.rs`), and the web UI server (`crates/morphir/src/commands/ui/server.rs`). The system relies on external compilers (Elm, Gleam), WASM extensions, and subprocess adapters for conformance testing. The repository is actively maintained with recent commits, low technical drift, and a well-structured codebase.
Xian Contracting is a Python-based smart contract development and execution framework that enables developers to write smart contracts in Python with a secure, metered runtime environment. The system features a modular architecture with components for compilation, execution, storage, and a standard library providing blockchain primitives. Key capabilities include Python-native smart contract authoring, deterministic execution with resource metering to prevent abuse, a secure storage system using Variables and Hashes, and restricted imports to prevent malicious code execution. The framework provides a ContractingClient as the primary interface for deploying and interacting with contracts, and includes comprehensive testing across unit, integration, performance, and security dimensions.
This repository contains the backend API for a trading platform, specifically QuantDinger. It handles strategies, indicators, and market data, and has various tests and scripts for ensuring the quality and functionality of the code.
HyperView is a CLI-driven toolkit for downloading TradingView market data, backtesting Python trading strategies with TradingView-parity fill assumptions, and optimizing parameters via Bayesian search (Optuna). The system is organized as a monolith with subcommands: download-data, backtest, hyperopt, pine-optimize, pine-batch-optimize, list-data, list-strategies. It features a pluggable strategy framework with auto-discovery, 20+ TA-Lib indicator wrappers, a backtester that simulates intrabar SL/TP paths, and a two-stage Pine input optimizer that exports optimized Pine scripts with injected best parameters. The codebase is well-structured with dataclasses, type hints, and a rich CLI output using the `rich` library. It includes unit tests for the Pine optimization pipeline and CLI parser. The repository is primarily an application, though it contains data engineering patterns in its downloader and caching layers.