Skip to content
Stephan-ThomasPublic

About

No description, website, or topics provided.

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

💧 DripForge — Open-Source Funding Intelligence Platform

DripForge is an open-source funding intelligence platform built directly on top of the Drips Protocol v2.

It answers the fundamental sustainability question for open-source software:

"Where is this project's funding coming from, where is it streaming, who is contributing the work, and which upstream dependencies are being supported?"


Key Features

  • 🔗 EVM Wallet Connection: Connect with RainbowKit, Wagmi v2, and Viem across Ethereum Mainnet, Sepolia, Optimism, and Arbitrum.
  • 💧 Drips Protocol v2 Event Indexer: Native RPC event decoder and checkpoint manager tracking StreamsSet, SplitsSet, Given, ReceivedStreams, Split, and OwnerUpdated.
  • 🏷️ Transparent Data Provenance: Explicit LIVE, DEMO, and UNAVAILABLE badges on every metric. Zero silent fallback to mock data in live mode.
  • 📦 Multi-Ecosystem Dependency Analysis: Manifest extraction for npm (package.json), Cargo (Cargo.toml), PyPI (pyproject.toml, requirements.txt), and Go (go.mod).
  • 🌊 Interactive Funding Flow Graph: Multi-tier distribution visualization (Sponsors → Drips Hub → Maintainers & Dependencies → Contributors) built with @xyflow/react.
  • 🤖 Algorithmic Split Recommender: Multi-factor advisory engine (50% PRs, 30% commits, 20% issues) with automated bot exclusion and non-binding maintainer advisory status.
  • 📊 Deterministic Funding Health Score: Mathematically verified 0–100 score (weights sum strictly to 100%) with explicit experimental badge.
  • ⚠️ Herfindahl-Hirschman Concentration Index: Real-time HHI concentration metrics distinguishing observed on-chain state from recommended splits.
  • 🔒 Cryptographic GitHub Webhooks: X-Hub-Signature-256 HMAC validation using timingSafeEqual with idempotency logging in webhook_events.
  • 🛡️ Production Hardening: Hybrid in-memory/Redis caching with stale-while-revalidate, IP rate limiting (200 req/min), and 3-state Circuit Breakers.
  • ⚡ Zero-Setup Local Dev: Embedded WASM PostgreSQL (@electric-sql/pglite) for instant development without external database dependencies.

Monorepo Architecture

DripForge/
├── apps/
│   ├── web/           # Next.js 14 App Router, Tailwind CSS, RainbowKit, XYFlow
│   └── api/           # Express REST API, rate limiter, circuit breakers, cache
├── packages/
│   ├── shared/        # Types, split recommender, health score formula, HHI
│   ├── db/            # Drizzle ORM schema, PGlite / Postgres client, migrations
│   ├── drips/         # Drips v2 event indexer, token normalizer, live provider
│   └── github/        # Multi-manifest parsers, webhook processor, Octokit REST
├── docs/              # System architecture, ADRs, and integration specifications
└── tests/             # Vitest test suite (51 tests) & concurrency load test runner

Getting Started

Prerequisites

  • Node.js: v18.18+ (Node v20+ recommended)
  • pnpm: v9+ (corepack enable pnpm or npm install -g pnpm)

Installation

# 1. Clone the repository
git clone https://github.com/Stephan-Thomas/DripForge.git
cd DripForge

# 2. Install workspace dependencies
pnpm install

# 3. Setup environment variables
cp .env.example .env

Development Server

Run both the API server (http://localhost:3001) and the Next.js web application (http://localhost:3000):

pnpm dev

Running Automated Tests

# Run complete test suite (51 tests across 11 test suites)
pnpm test

# Run high-concurrency load benchmark (100 req/sec)
node tests/load/run-load-test.cjs

Production Build

pnpm build

Environment Variables Reference

Variable Description Default / Example
PORT API server listen port 3001
DATABASE_URL PostgreSQL connection string (PGlite embedded if omitted) postgresql://...
DRIPS_DATA_MODE Drips provider mode (LIVE or DEMO) DEMO
GITHUB_DATA_MODE GitHub provider mode (LIVE or DEMO) DEMO
RPC_URL_SEPOLIA Ethereum Sepolia RPC URL for live on-chain indexer https://sepolia.infura.io/v3/...
RPC_URL_MAINNET Ethereum Mainnet RPC URL https://mainnet.infura.io/v3/...
GITHUB_TOKEN GitHub Personal Access Token for live repository metadata ghp_...
GITHUB_WEBHOOK_SECRET Secret key for GitHub webhook HMAC verification super_secret_webhook_key
NEXT_PUBLIC_APP_URL Web frontend URL http://localhost:3000
NEXT_PUBLIC_API_URL Backend API URL http://localhost:3001

License

MIT © Stephan Thomas & DripForge Contributors

About

No description, website, or topics provided.

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages