Open Net Worth
Open Net Worth is an open-source personal AI wealth assistant you run yourself: one ledger for your whole financial life, worked by an AI agent you control.
翻訳待ち
Non-profit crowdfunding platform sustaining the open source ecosystem.
翻訳待ち
Loading the full README. The saved excerpt is shown below.
LFX Crowdfunding enables open source projects to raise funds for development, security audits, mentorship programs, events, and community initiatives. This is the rewritten platform — a Kubernetes-native monorepo replacing the original AWS Lambda + DynamoDB system.
This repo is the standalone Crowdfunding UI and API — it is separate from LFX Self Serve. Crowdfunding data ("My Donations", "My Initiatives") that appears in Self Serve originates from this application.Read the full README ↗LFX Crowdfunding enables open source projects to raise funds for development, security audits, mentorship programs, events, and community initiatives. This is the rewritten platform — a Kubernetes-native monorepo replacing the original AWS Lambda + DynamoDB system.
Not the Self Serve integration
This repo is the standalone Crowdfunding UI and API — it is separate from LFX Self Serve. Crowdfunding data ("My Donations", "My Initiatives") that appears in Self Serve originates from this application.
Self Serve authenticates to the CF Go API using a user-issued access token obtained via a silent second
authorization_codeflow for the CF audience — the sameaccess:metoken the CF frontend uses. Seedocs/authentication-architecture.mdfor the full auth design.
lfx-crowdfunding/
├── backend/ # Go API service
│ ├── cmd/
│ │ ├── initiatives-api/ # HTTP API entrypoint
│ │ └── ledger-stats-sync/ # CronJob: syncs financial stats from Ledger HTTP API
│ ├── internal/
│ │ ├── domain/ # Domain models and repository interfaces
│ │ ├── service/ # Business logic / orchestration
│ │ ├── handler/ # HTTP handlers (Chi router)
│ │ └── infrastructure/ # DB, external clients, auth middleware
│ ├── db/
│ │ ├── migrations/ # SQL migration files (golang-migrate)
│ │ ├── scripts/ # One-time DynamoDB → Postgres migration (Python)
│ │ └── seed.sql # Development seed data
│ └── charts/ # Helm chart
├── frontend/ # Nuxt 4 frontend (Vue 3, TypeScript, Tailwind, PrimeVue)
├── docker-compose.yml # Local Postgres
└── backend/docs/
└── rewrite/ # Architecture decisions, open questions, migration plan
The platform is split into two independently deployable services:
Frontend — Nuxt 4 BFF. Handles Auth0 PKCE authentication, HTTP-only session cookies, and Stripe.js. Calls the Go API to serve pages.
Go HTTP API — Chi router. Owns all business logic: initiative CRUD, Stripe payment processing, webhook handling, email, and read-only Ledger integration.
Both are deployed as Kubernetes Deployments behind an Ingress. Background jobs run as K8s CronJobs.
See docs/architecture.md for the full system diagram and component breakdown.
| Document | Contents |
|---|---|
docs/architecture.md | System overview, component breakdown, data flows, integrations |
docs/authentication-architecture.md | Auth design — scopes, flows (CF frontend, Self Serve, RS M2M), Auth0 config |
docs/release-plan.md | Go-live release plan and smoke test checklist |
backend/docs/rewrite/01-current-system.md | Inventory of the current Lambda system — endpoints, DynamoDB tables, integrations |
backend/docs/rewrite/02-decisions.md | All architectural decisions with rationale |
backend/docs/rewrite/03-open-questions.md | Open questions with owners and blocking status |
backend/docs/rewrite/04-target-architecture.md | Target system design — tech stack, repo layout, API surface, K8s resources |
backend/docs/rewrite/05-migration-plan.md | Step-by-step migration and cutover plan |
| Concern | Choice |
|---|---|
| Framework | Nuxt 4 + Vue 3 |
| Language | TypeScript (strict) |
| Styling | Tailwind CSS + PrimeVue v4 |
| State | Pinia + Vue Query |
| Auth | OAuth2 PKCE, HTTP-only cookies |
| Payments | Stripe.js |
| Concern | Choice |
|---|---|
| Language | Go (latest stable) |
| Router | Chi |
| Database | PostgreSQL via pgx/v5 |
| Migrations | golang-migrate |
| Auth | Auth0 JWT middleware |
| Logging | slog (stdlib) |
| Tracing | OpenTelemetry |
crowdfunding schemalinuxfoundation/lfx-v2-argocd| Service | Direction | Purpose |
|---|---|---|
| Stripe | CF → Stripe | Charges, subscriptions, Stripe Connect |
| Stripe webhook | Stripe → CF | customer.subscription.deleted |
| Ledger Service | CF → Ledger (read-only) | Balance and transaction data |
| Ledger Service | Ledger → CF | Donation email callbacks (GET /v1/projects/{id}) |
| Reimbursement Service | Bidirectional | Expense policy management, beneficiary lifecycle |
| lfx-v2-email-service | CF → email-service (NATS) | Transactional email (review, approval, decline, donation receipts); templates live in backend/internal/infrastructure/clients/email_templates/ |
| GitHub | CF → GitHub | Repo stats, OAuth for project creation |
| Snowflake | Snowflake → CF | Mentorship program sync (inbound CronJob) |
| Snowflake | CF → Snowflake | Fivetran CF→Snowflake sync for LFX Self Serve |
| Auth0 | CF → Auth0 | JWT validation, user identity |
| Job | Schedule | Purpose |
|---|---|---|
ledger-stats-sync | Hourly | Syncs financial stats (balance, sponsors) from Ledger HTTP API into cached columns on initiatives |
This is the beginning of the README. Read the rest at the original. Read the full README ↗