Open-source Kickstarter alternative for indie games — Stripe + USDC
  • TypeScript 85.4%
  • Solidity 5.2%
  • Shell 5.1%
  • CSS 2.2%
  • JavaScript 1.6%
  • Other 0.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Thomas Vu a133c27237
Some checks failed
CI / typecheck (push) Failing after 5s
CI / forge (push) Failing after 3s
fix(escrow): snapshot fees, guard zero feeRecipient, align ABI
Harden CampaignEscrow against fee-recipient stranding and post-pledge fee
changes; extend Foundry tests and payments-web3 ABI for the new campaign
struct fields. Redeploy required for existing testnet instances.
2026-07-31 10:07:00 -04:00
.github/workflows test(012): webhook/settlement pure decisions + Foundry escrow suite 2026-07-29 23:40:02 -04:00
apps feat(discover): categorized filters for status, funding, platforms, progress 2026-07-30 10:53:22 -04:00
contracts fix(escrow): snapshot fees, guard zero feeRecipient, align ABI 2026-07-31 10:07:00 -04:00
docker fix(dx): Docker vendor, lint, fee docs, campaign pagination, drizzle 0.45.2 2026-07-29 12:30:09 -04:00
docs feat: USDC-only payments via Reown; add Gamefound to comparisons 2026-07-30 10:50:23 -04:00
env feat: USDC-only payments via Reown; add Gamefound to comparisons 2026-07-30 10:50:23 -04:00
packages fix(escrow): snapshot fees, guard zero feeRecipient, align ABI 2026-07-31 10:07:00 -04:00
plans docs(plans): mark wave 2 008-012 DONE 2026-07-29 23:41:19 -04:00
scripts feat: USDC-only payments via Reown; add Gamefound to comparisons 2026-07-30 10:50:23 -04:00
vendor/steez-ui chore: baseline before improve plan execution 2026-07-29 12:28:09 -04:00
.env.example feat: USDC-only payments via Reown; add Gamefound to comparisons 2026-07-30 10:50:23 -04:00
.gitignore feat(testnet): Base Sepolia-first env, deploy scripts, and doctor 2026-07-30 00:11:05 -04:00
.gitmodules test(012): webhook/settlement pure decisions + Foundry escrow suite 2026-07-29 23:40:02 -04:00
.npmrc chore: baseline before improve plan execution 2026-07-29 12:28:09 -04:00
AGENTS.md feat: USDC-only payments via Reown; add Gamefound to comparisons 2026-07-30 10:50:23 -04:00
CONTRIBUTING.md feat: USDC-only payments via Reown; add Gamefound to comparisons 2026-07-30 10:50:23 -04:00
LICENSE chore: baseline before improve plan execution 2026-07-29 12:28:09 -04:00
package.json feat: USDC-only payments via Reown; add Gamefound to comparisons 2026-07-30 10:50:23 -04:00
pnpm-lock.yaml feat: USDC-only payments via Reown; add Gamefound to comparisons 2026-07-30 10:50:23 -04:00
pnpm-workspace.yaml chore: baseline before improve plan execution 2026-07-29 12:28:09 -04:00
README.md feat: USDC-only payments via Reown; add Gamefound to comparisons 2026-07-30 10:50:23 -04:00
start.sh feat: USDC-only payments via Reown; add Gamefound to comparisons 2026-07-30 10:50:23 -04:00
tsconfig.base.json chore: baseline before improve plan execution 2026-07-29 12:28:09 -04:00
vitest.config.ts test: add vitest baseline and money/auth unit tests 2026-07-29 12:32:13 -04:00

Fund Indies

Open-source Kickstarter alternative for indie games — self-host your campaigns, accept USDC via Reown (Base + Ethereum), keep full control of your data.

Crowdfunding without the platform tax. MIT licensed.

Features

  • All-or-nothing or flexible funding per campaign
  • USDC pledges via Reown wallet + escrow (Base Sepolia / Base / Ethereum)
  • No card processor — crypto only
  • Single-tenant self-host (primary). DEPLOY_MODE=multi is reserved but not implemented yet
  • Reward tiers, stretch goals, campaign updates
  • Game-oriented fields (platforms, Steam / itch links, early access)
  • Docker Compose one-command deploy

Quick start (local dev)

./start.sh
# first run creates env/testnet.local.env — fill Reown id + deployer key, re-run

./start.sh --deploy-escrow   # optional: deploy CampaignEscrow to Base Sepolia

Or step-by-step:

pnpm install
cp env/testnet.env.example env/testnet.local.env
# edit env/testnet.local.env → Reown WALLETCONNECT_PROJECT_ID, DEPLOYER_PRIVATE_KEY

pnpm testnet:doctor
pnpm testnet:up
pnpm testnet:deploy-escrow && pnpm testnet:sync-env
pnpm dev

Full runbook: docs/testnet.md · ./start.sh --help

Prerequisites

# 1. Install
pnpm install

# 2. Env (or use env/testnet.local.env + pnpm testnet:sync-env)
cp .env.example .env

# 3. Database
docker compose -f docker/docker-compose.yml up -d postgres

# 4. Build packages + migrate + seed
pnpm -r --filter './packages/*' build
pnpm db:migrate
pnpm db:seed

# 5. Run API + web
pnpm dev

Docker (full stack)

cp .env.example .env
docker compose -f docker/docker-compose.yml up --build

App: http://localhost:8080

Configuration

Variable Description
DEPLOY_MODE single (default). multi logs a boot warning and is not implemented
PLATFORM_FEE_BPS Platform fee in basis points (default 100 = 1%)
USDC_ENABLED true to enable crypto pledges
WALLETCONNECT_PROJECT_ID Reown Cloud project id
ESCROW_CONTRACT_ADDRESS Deployed CampaignEscrow
WEB3_CHAIN_IDS Comma-separated (e.g. 84532 Base Sepolia)

Webhooks (local)

stripe listen --forward-to localhost:3001/api/webhooks/stripe

UI (Steez)

The web app is skinned with @steez-ui/react — a futuristic hypebeast design system (minimal cyber chrome, signal green).

pnpm install   # uses vendor/steez-ui tarball via apps/web package.json

Optional registry install (Forgejo behind Cloudflare Access): use pnpm install:with-registry with CF_ACCESS_* + FORGEJO_TOKEN set.

Monorepo layout

apps/web          Vite + React UI (Steez UI)
apps/api          Hono API + settlement cron
packages/db       Drizzle schema + migrations
packages/shared   Zod schemas, money helpers
packages/config   Env parsing
packages/payments-web3
contracts/        Foundry USDC escrow
docker/           Compose + nginx

Smart contract

contracts/src/CampaignEscrow.sol holds USDC until deadline, then:

  • Success → transfer to creator (minus optional fee)
  • Fail → backers claimRefund
# with Foundry installed
cd contracts && forge build

Multi-tenant mode

Not implemented. DEPLOY_MODE=multi does not enable Connect onboarding or tenant isolation; the API prints a console warning at boot. Use DEPLOY_MODE=single for production self-host. Multi-tenant is on the roadmap.

License & disclaimer

MIT. This software is infrastructure — operators and creators are responsible for local crowdfunding, consumer, and tax law. Not a securities or equity crowdfunding product.

Roadmap

  • Campaigns, tiers, stretch goals, updates
  • Settlement job (USDC logical + optional finalize)
  • USDC escrow contract + demo pledges
  • Multi-tenant marketplace mode
  • Reown AppKit wallet connect + USDC pledge UI
  • Email receipts (SMTP)
  • Digital key fulfillment vault